From d6bc330769d5fe382778521b24dec465a70f9cd6 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 01:03:56 -0700 Subject: [PATCH 01/21] Bootstrap Phase 4 current verification Owner-approved P4-W01 only. Preserve all product bytes and current refusals. SIT-Phase-Unit: P4-W01 --- PHASE_4_PLAN.md | 529 + README.md | 20 +- phase4/ci_review.md | 93 + phase4/implementation_evidence.json | 137 + phase4/report_contract_coverage.json | 13665 ++++++++++++++++ tests/contract/test_phase2_transition.py | 5 +- tests/contract/test_phase3_transition.py | 36 +- tests/contract/test_verification_boundary.py | 894 +- .../test_analytical_installed_runtime.py | 6 +- tests/scaffold/test_ci_contract.py | 143 +- tests/scaffold/test_imports.py | 11 +- tests/scaffold/test_layer_boundaries.py | 20 +- tests/scaffold/test_module_manifest.py | 23 +- .../test_no_runtime_implementation.py | 73 +- tests/security/test_preparation_inertness.py | 15 +- tools/check_scaffold_boundary.py | 654 +- 16 files changed, 15787 insertions(+), 537 deletions(-) create mode 100644 PHASE_4_PLAN.md create mode 100644 phase4/ci_review.md create mode 100644 phase4/implementation_evidence.json create mode 100644 phase4/report_contract_coverage.json diff --git a/PHASE_4_PLAN.md b/PHASE_4_PLAN.md new file mode 100644 index 0000000..edae70c --- /dev/null +++ b/PHASE_4_PLAN.md @@ -0,0 +1,529 @@ +# Source Integrity Toolkit 下一阶段实施计划 + +## 文档控制 + +| 项目 | 内容 | +| --- | --- | +| 建议仓库文件名 | PHASE_4_PLAN.md | +| 阶段建议编号 | Phase 4 / P4 | +| 阶段名称 | 公共内存审计与正式报告 | +| 修订 | 0.1 | +| 日期 | 2026-10-11,America/Los_Angeles | +| 状态 | 待项目所有者批准;计划草案,未开始实施 | +| 当前授权 | 起草下一阶段计划,列清工作单元、可修改文件及验收标准 | +| 实施基线 | PR #35 已验收并合并后的 main:fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c | +| 当前交付 | 本计划一份;不修改仓库,不创建远程分支或 PR | +| 审批对象 | 本文件最终交付的准确字节及以下范围、接口选择、工作单元和验收门槛 | + +本计划用 Phase 4 作为新阶段的建议编号。冻结的 Phase 0 规范没有预先规定所有后续阶段编号。编号、阶段拆分和下列 Python 接口实现选择均属于本次提交审阅的工程方案。 + +## 1. 决策摘要与阶段成果 + +建议按 **10 个顺序工作单元、1 条实施分支、1 个实施 PR、最终候选的一轮四环境完整验收** 执行。工作单元是可检查的内部检查点,不默认各建一个 PR、各增加一层历史验证框架。失败修复或影响可执行行为的后续变更,仍须针对实际最终候选重新取得相应证据。 + +本阶段使调用者可以在 Python 内存中提交一个 dossier,通过 audit_bundle 得到符合 sit-report/0.1 的不可变报告,并取得内容一致、字节规则确定的 JSON 与 Markdown。分析、披露选择、正式报告组装和两种编码均在同一次调用的既有预算内完成。 + +完成后必须具备: + +1. 所有 15 个分析家族、57 个字段及所需非结果、原因、前提、范围、人口集合和见证,都能通过正式公共报告表达。 +2. 公共报告与已验收分析语义一致;报告模块不能重算、增强或删减分析结论。 +3. JSON 和 Markdown 使用同一份冻结逻辑文档,保留相同的实质信息及披露范围。 +4. 公开的 audit_bundle、类型、异常和只读编码访问方法具有明确行为。 +5. 原始私有准备/分析接口继续满足已验收行为;文件 API 与 CLI 实际审计仍保持拒绝。 +6. 当前验证体系沿用 VC 已实现的直接行为控制,不恢复旧测试加载器、逆向补丁或全历史阶段重演。 + +**本阶段完成的含义:公共内存审计与报告通过验收。v0.1 的文件工作流和正式发布仍有后续工作。** + +后续路线仅作依赖说明,不在本计划实施授权内: + +| 顺序 | 交付内容 | 启动条件 | +| --- | --- | --- | +| 已完成 | Phase 3 私有分析核心、VC 验证整合及 PR #35 合并 | 已有接受记录 | +| 本次建议 | 公共内存审计、报告契约、披露、JSON/Markdown、公共边界验证 | 本计划获准后启动 P4-W01 | +| 后续实现阶段 | 安全文件捕获、Linux/Windows native adapter、私有目录和完整报告对发布、audit_file、CLI | 单独制定范围与平台验收计划 | +| 后续发布阶段 | 用户全流程、支持平台证据、安装与发布材料、最终验收及 v0.1 发布 | 所有拟发布功能及相应义务实际完成 | + +后续阶段编号、工作单元数量及发布渠道留给对应计划确定。 + +## 2. 已接受基线与证据边界 + +| 项目 | 已核实状态 | +| --- | --- | +| PR | [PR #35](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/pull/35),已验收并正常 merge | +| 当前 main / 新阶段锚点 | fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c | +| tree | f6fbb8965520f33a09ca38cf413e11ca561110dd | +| 两个 merge parents | 2413a29b839b7e1de8f76a449762f031de19d52b;ce05c5dda9368182dbee074253d3a7c829af7719 | +| 直接验收的 VC 候选 | ce05c5dda9368182dbee074253d3a7c829af7719,与 merge 的 tree 完全一致 | +| VC 验收运行 | [38128491330,attempt 1](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/38128491330),四环境成功,原始凭据已审阅 | +| merge 后 push 运行 | [38164028893,attempt 1](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/38164028893),四环境全部成功 | +| VC 验收集合 | 每环境 3,724 个独立测试及另计 431 个成功 subtest events;73 个测试文件 | +| 仓库 | 211 个 tracked files,48 个产品模块;包版本 0.1.0.dev0 | +| 实际已完成 | 15 家族的私有核心及 228 项字段义务的核心层证据;公共报告、文件和发布条款仍分别待完成 | + +3,724/431 是已接受候选的历史实测,不作为新阶段必须保持或增加的数量门槛。新的删除、替换或合并必须逐项说明保障去向。新阶段验收使用新候选的实际集合、实际 JUnit 和实际运行凭据。 + +README、PHASE_3_COMPLETION.md 和 VC 完成文件包含创建时的待验收措辞。后来的所有者接受、PR #35 和 merge 记录补充其状态;不通过改写旧文件消除历史痕迹。实施阶段可在 README 更新当前状态及功能说明。 + +沿用以下证据限制: + +- 四个原始 H7 完整案例在既有预算下可能真实中断。有限完成案例及内部已提交观察不能被称为原始 H7 全字段公共报告完成。 +- 既有 CI 上传 JSON/XML/log 凭据,未上传 wheel/sdist 原始文件或原始 GitHub event payload。成员清单和安装验证不等于完整压缩包逐字节可复现。 +- W08 临时压缩包会被清理;其成员哈希交叉核对与 W14 精确归档记录的证明范围不同。 +- VC 原始 event 摘要在 runner 组间不同的原因未知;已核实语义绑定,不补造换行或序列化解释。 +- W01 至 W07 的历史原始 ZIP 和部分旧 W08 profile 凭据缺失;既有失败及未完成运行继续按原性质保留。 +- 本次协作模型交叉检查属于工具辅助审阅,不代表外部人类审计。 + +## 3. 控制依据与本次工程选择 + +### 3.1 冻结依据 + +本计划从已接受规范落实行为,不重新解释六篇理论论文,也不修改理论文本。出现确切语义冲突时才回到相应源条款及其来源映射。 + +以下链接均固定到本阶段基线: + +| 依据 | 使用范围 | +| --- | --- | +| [OBSERVABILITY_AND_REPORTING.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/OBSERVABILITY_AND_REPORTING.md) §§12–19 | 状态、16 个根成员、嵌套对象、57 字段、引用、见证及两种格式 | +| [REPOSITORY_ARCHITECTURE.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/REPOSITORY_ARCHITECTURE.md) §§17–19、21 | 内存输入、J 编码、局部 ID、输出字节、调用结果、统一预算 | +| [GOVERNANCE_AND_HANDOFF.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/GOVERNANCE_AND_HANDOFF.md) §22 | 精确 Markdown、取消、去重、数值及见证精化 | +| [PRIVACY_AND_DATA_HANDLING.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/PRIVACY_AND_DATA_HANDLING.md) §§4、6–10 | 字段最少披露、诊断、保留、渲染、资源配额 | +| [VALIDATION_PLAN.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/VALIDATION_PLAN.md) §§10–17 | 228 项 P/N/M/B 义务、26 个共享家族、嵌套成员及反例 | +| [THEORY_TO_CODE_TRACEABILITY.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/THEORY_TO_CODE_TRACEABILITY.md) | 35 条 Trace 及各字段的原有语义 owner | +| [V0.1_PRODUCT_SPEC.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/V0.1_PRODUCT_SPEC.md)、SUCCESS_CRITERIA.md | 产品边界、hero 意义与最终发布目标 | +| [VERIFICATION_CONSOLIDATION_PLAN.md](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/VERIFICATION_CONSOLIDATION_PLAN.md) §§3、7–9、11 | 当前直接验证、凭据强度和下阶段启动边界 | +| PHASE_3_COMPLETION.md、phase3/obligation_coverage.json、phase3/delivery_manifest.json | 已完成核心义务及尚待公共报告/文件/发布的逐项区分 | +| DEPENDENCY_STRATEGY.md、LICENSING_NOTES.md | 零第三方运行时依赖、冻结工具链及许可边界 | + +VC 计划引用的 SOURCE_INTEGRITY_VERIFICATION_GOVERNANCE.md 不在本次仓库清单中。本次没有声称读取该缺失文件;直接采用可核实的已批准 VC 计划及既有接受记录所载规则。 + +治理 §22 已解决的后续精化继续有效。例如取消单独交付 AuditCancelled;精确代码围栏方案控制 Markdown;公开 options 不增加可调预算。无需为旧文档的历史待办表述重新打开这些已决选择。 + +### 3.2 本计划提交批准的具体工程选择 + +| 编号 | 本次选择 | +| --- | --- | +| P4-D01 | Phase 4 只开放内存审计与正式报告;文件、native adapter、CLI 实际审计及发布后置 | +| P4-D02 | 使用既有 48 模块布局;仅第 5.1 节 12 条产品路径可以修改,不新增产品模块或依赖 | +| P4-D03 | 公共返回类型为 AuditReport,代表既有 16 根成员的冻结逻辑文档;新增两个只读字节方法 | +| P4-D04 | 包根公开 AuditReport、AuditAbort、AuditCancelled、AuditUsageError;保留原有 audit_bundle、audit_file、__version__ | +| P4-D05 | 报告两种编码及一致性检查在调用返回前使用原有同一预算完成;返回后方法只读取私有不可变缓存 | +| P4-D06 | 一条 phase4/public-report 分支及一个实施 PR;10 个内部单元;按风险验证,最终 exact candidate 四环境验收 | + +这些是本计划的实现安排。它们不新增报告字段、分析指标、Reason code、网络能力或自动匿名化行为。 + +## 4. 对外行为与必须保持的边界 + +### 4.1 公共 API + +保留签名: + +~~~python +audit_bundle(bundle, *, options=None) -> AuditReport +audit_file(input_path, output_directory, *, options=None) +~~~ + +audit_bundle 的根输入为精确 built-in dict,递归允许类型、并发修改前提、复制和大小规则沿用架构 §17。不接受自定义 mapping、子类、生成器、Decimal、回调或文件路径作为 dossier。 + +options 仅允许 None,或只含 raw_file_digest 的精确 built-in dict;值必须为精确 bool,默认 false。对象模式的 true、未知键、不合类型及任何回调/时钟/预算/输出 profile/子集选择均为安全 usage failure,必须先于 dossier 访问。检查选项不得调用恶意键或值的 repr、迭代、相等或其他自定义协议。 + +AuditReport: + +- 是实际逻辑 envelope,不额外包一层文件 transport。 +- 16 个根成员以只读命名属性访问,例如 report.results;嵌套 JSON 对象为项目持有且不暴露可变 backing 的不可变 Mapping[str, value],数组为 tuple,标量为 str、bool、int、None。分数保留整数 numerator/denominator。当前正式字段不导出任意扩展里的非整数数值原子,不增加 opaque 公共数值类型或通用 serializer。 +- 16 个根成员及所有嵌套内容只读;不持有调用者可变容器、完整准备快照、原始输入树、私有索引或执行预算。 +- to_json_bytes()、to_markdown_bytes() 返回同次调用预先完成的 immutable bytes;不重新编码、不访问时钟、不做 I/O、不再启动分析。 +- 私有缓存和 Python 方法不是 schema 成员,不能被通用对象序列化泄漏。 +- 只有逻辑报告、两种完整编码及必要一致性验证全部完成后才交付对象。部分编码不能构成成功返回。 +- 支持语法拒绝和处理诊断的合法 envelope;“有报告对象”不代表输入已接受或分析完成。 + +新增 Python 类型与方法的具体声明属于本计划批准范围。内部 report renderer 不再另行扩成接受任意对象的公共序列化服务。 + +AuditUsageError 建议继承 ValueError,使用固定消息 Invalid audit invocation. 和 transport code invalid_invocation。该 code 不进入报告的 40 个 Reason vocabulary。异常不携带输入值、未知键、路径或原生 exception repr。 + +AuditAbort、AuditCancelled 采用已批准架构和治理的字段及结果语义;本阶段 publication_state 始终为 not_published。包根的 __all__ 精确为上表七个名字,顺序由实现声明固定并测试;版本继续为 0.1.0.dev0。 + +audit_file 原有立即拒绝及参数不触碰保证继续保持;cli.py 原有审计拒绝、退出 1、无输入读取和无报告写出保持。其后续真实退出码映射不在本阶段启用。 + +### 4.2 正式报告投影 + +16 个根成员按冻结表保持: + +~~~text +contract_version, report_kind, report_id, run, input_identity, +input_validation, scopes, populations, basis_index, capabilities, +checks, observability_domains, results, findings, reasons, release_limits +~~~ + +必须显式建立私有对象到公开契约的投影,不可对 _AnalyticalOutcome、dataclass 或私有记录执行通用递归 dump: + +- 私有 prepared/raw source 不进入报告。 +- 私有 Scope.operation_anchor 参与身份排序;公共 Scope 仍使用既有成员,实际 operation 语义通过契约要求的目标和 payload 保留。 +- 私有 Finding.result_refs、native_records 不直接变成公开 Finding 成员。 +- Result.witness_refs 必须解析为本报告 Finding IDs;见证内容进入其契约位置,不增加根级 witnesses 数组。 +- 原私有 domain 按 inquiry 分组;公共普通 audit envelope 只有五个全局 domain 条目,跨 inquiry 正确归并引用。not_applicable 继续存在于 Result/Capability,不额外塞进不含此字段的 domain 契约。 +- 每个 inquiry 的 15 家族 Capability 保持四类 Result 的精确分区。空 subject 不自动成为成功、独立或已完整覆盖。 +- basis_index 从已接纳不可变记录中有界提取规定的 basis、asserter、method、support、availability、scope/time、lifecycle、qualification 和 checks;不重新作来源资格判断。 +- 诊断 envelope 的各分析数组按规范为空,不用空数组暗示真实世界没有问题。原因、状态和安全诊断保留。 + +报告 schema 采用与既有 bundle schema 一致的声明风格,关闭固定对象键;规范定义的字典和多态 payload 逐类型约束。只用仓库内本地引用,不引入运行时 schema 文件读取、远程 $ref 或第三方 validator 依赖。schema 结构验证与跨引用、语义一致性验证分别有直接测试;不以 schema 通过代替分析正确。 + +### 4.3 身份、排序及精确编码 + +report_id 固定为 SIT-RPT-000001,只标识同次调用内的单一文档。其他对象使用既有八类前缀及至少六位序号,按语义键排序后编号;不使用随机数、输入哈希或发现顺序。 + +相同解释对象按完整无 ID 语义体及 anchor 去重。不同输入 ID 永不合并;相同 Result slot 的不同值为内部契约错误。Reason/Result 循环引用通过 anchor keys 排序,不递归展开完整链接对象。所有引用在交付前闭合。 + +JSON 为 J(冻结文档) 加一个 LF。保持 Unicode scalar key order、既有控制字符转义、源原生有序数组、可移植整数、精确数值原子及原始分数分子/分母;JSON 不输出可选 display_decimal。不能将 26/36 仅替换成 13/18 或浮点近似。 + +Markdown 精确采用治理 §22.2:固定标题、状态行、16 根节顺序、pretty-J 围栏;每个 Result 的完整对象和 Reason details;available fraction 的六位 half-up decimal 行;interval endpoints 不另加该行。围栏长度为 max(3, 正文最大连续 backtick 长度 + 1)。不可信数据只能进入已编码代码块,不能决定标题、链接、HTML 或图片。 + +run 时间按 SIT-RP-0.1 固定 unknown/null/not_recorded_by_SIT-RP-0.1;工具版本为实际安装版本。in_process 的 raw_file_digest 为 null,并给出规定的说明;不计算对象指纹来代替文件摘要。 + +同一规范化输入、真实工具版本/profile、source mode 和完成状态应生成相同字节。真实时限中断可能因机器而异;不要求把不同完成状态伪造成相同输出。 + +### 4.4 披露与资源 + +披露由 runtime/disclosure.py 统一选择,两个 renderer 只使用同一份已选择的文档。禁止自动复制整条输入记录、excerpt、contact locator、actor display_name、identity_key、任意 extensions、绝对路径或身份映射。 + +契约要求的 IDs、method、context、native outcomes、qualification、共同来源与未知限制仍须保留。字段可能具有识别性;不得声称输出已匿名或可直接公开。需要另一个可分享快照时,沿用调用者准备新快照并重新审计的规则。 + +全过程使用同一 ledger、同一开始时刻及同一应急储备: + +| 控制 | 保持的上限 | +| --- | ---: | +| 每 capability/scope job | 1,000,000 work units | +| 全调用,含应急预留 | 10,000,000 work units | +| 一次应急预留 | 1,024 units,包含在上项内 | +| 应急诊断 | 4,096 bytes | +| 协作式时限 | 60 秒 | +| retained witnesses / member occurrences | 20,000 / 100,000 | +| 每种报告编码,分别计算 | 67,108,864 bytes | +| 其他 WU9-L01 至 L10 | 全部保持冻结数值及计数规则 | + +在操作前计费,等于上限允许,下一单位触发停止。访问、复制、排序比较、数值转换、字符扫描、编码、引用检查和 parity 检查均按架构 §19 计费。不得通过第二次 budget、隐式重试、跨 job 语义缓存或未计费的收尾扩大范围。 + +当前 _run_analysis 把预算保留在内部并消耗 finalization 路径。本阶段必须调整运行时组合,使正式报告继续取得原有受限 finalization port;不能先调用 _analyze_value 再新建 report budget。旧私有入口保留原有返回和停止语义。 + +为 WU9-L14 增加明确的输出限额传播及固定受限 port 能力;报告模块不能取得时钟、文件、原生加载或任意 runtime 操作权限。两个格式分别测量编码后字节;不能为了适配长度截断、删原因、丢未知字段或保留单边成功编码。 + +私有见证预留与最终 Finding 必须对账。同一已保留见证的链接复用不重复增加 witness 数;正式投影实际新增的 witness/member occurrence 按 L13 计入,不能漏算,也不能把全部私有预留再完整扣一遍。遍历、复制和输出的工作量仍分别收费。中断后的 L14 或其他收尾失败不得覆盖首先确立的停止原因及真实接纳状态。 + +| 情况 | 必须交付的实际状态 | +| --- | --- | +| 完成,包括合法 unavailable | completed audit envelope | +| 结构拒绝 | 可交付时为 validation_diagnostics,rejected | +| 接纳前资源中断 | 可交付时为 processing_diagnostics/interrupted/not_completed | +| 接纳后局部 job 中断,尚能完整收尾 | interrupted audit;只保留已原子提交的完整结果,未做部分 not_evaluated | +| 全局/时限/输出边界使合规收尾不可能 | 安全 AuditAbort;保存真实接纳状态,不交付片段 AuditReport | +| 实际运行缺陷 | 安全 failed processing envelope 或 AuditAbort/execution_failed | +| 调用者取消 | 独立 AuditCancelled,保留真实 input/publication state,不制造报告原因 | +| 非法可信调用选项 | AuditUsageError,尚未访问 dossier | + +首先安全确立的停止原因控制后续交付。源记录中的 failed/unknown 是证据数据,不得决定 toolkit 的处理成功或失败。 + +## 5. 精确路径上限 + +下列编号只是本计划的路径索引,不进入产品。实施中某单元可修改的文件为第 6 节列出的编号集合;“允许”不意味着必须改动。新增测试使用列明文件,不能自行扩成 tests/**、src/**、tools/**。 + +所有未列路径继续冻结。已有文件不移动、不删除;新增文件不替换旧义务记录。批准后的本计划按准确字节冻结,除非得到明确修订。 + +### 5.1 产品路径,共 12 条 + +| ID | 路径 | 唯一允许目的 | +| --- | --- | --- | +| P01 | src/source_integrity_toolkit/contracts/report.py | 正式不可变报告类型、契约验证、投影辅助;保存旧私有契约 | +| P02 | src/source_integrity_toolkit/contracts/execution.py | 公共安全 transport 异常及受限报告收尾 port;保存旧私有停止语义 | +| P03 | src/source_integrity_toolkit/reporting/assemble.py | 有界 envelope、ID、引用、去重、domain/capability 组合 | +| P04 | src/source_integrity_toolkit/runtime/disclosure.py | 同一规定字段披露选择 | +| P05 | src/source_integrity_toolkit/reporting/escaping.py | 固定 J 字符编码及 Markdown 围栏安全 | +| P06 | src/source_integrity_toolkit/reporting/json_report.py | 正式 JSON 字节及有界编码 | +| P07 | src/source_integrity_toolkit/reporting/markdown_report.py | 固定 Markdown 字节及与同一 envelope 的一致性 | +| P08 | src/source_integrity_toolkit/runtime/resources.py | 原预算的报告计费、L14 与收尾边界;不改数值 | +| P09 | src/source_integrity_toolkit/runtime/diagnostics.py | 安全公开停止映射;不泄漏原生异常或改变旧私有交付 | +| P10 | src/source_integrity_toolkit/runtime/boundary.py | 单一执行上下文贯通,公共内存组合及保留旧私有入口 | +| P11 | src/source_integrity_toolkit/api.py | 激活 audit_bundle;audit_file 函数保持原有字节和立即拒绝 | +| P12 | src/source_integrity_toolkit/__init__.py | 明确七项公开名字、正确当前说明;无导入时执行 | + +其余 36 条产品路径与基线字节一致。包括全部 analysis、graph、validation 产品模块、io 下所有模块、cli.py、contracts/bundle.py/evidence.py/results.py/constants.py 和其余 package __init__.py。不修改算法、词汇常量、输入 schema、包版本或模块清单。 + +### 5.2 当前验证控制,共 8 条 + +| ID | 路径 | +| --- | --- | +| V01 | tools/check_scaffold_boundary.py | +| V02 | tests/contract/test_verification_boundary.py | +| V03 | tests/scaffold/test_ci_contract.py | +| V04 | tests/scaffold/test_imports.py | +| V05 | tests/scaffold/test_module_manifest.py | +| V06 | tests/scaffold/test_no_runtime_implementation.py | +| V07 | tests/scaffold/test_layer_boundaries.py | +| V08 | .github/workflows/phase1-ci.yml | + +这些路径只执行第 7 节的当前阶段迁移和直接控制。V08 仅允许必要的阶段身份、名称、凭据接线或上下文协调;不得更改 pins、权限、平台、Python minor、步骤数、触发器种类、预算、凭据通配范围或留存天数。无必要时保持原字节,phase3 字样可以作为既有凭据路径保留。 + +### 5.3 既有混合测试的限定迁移,共 11 条 + +| ID | 路径 | 允许修改的部分与保留要求 | +| --- | --- | --- | +| T01 | tests/scaffold/test_api_stubs.py | W08 改 bundle refusal 参数化及 unchanged-input 断言;保留 audit_file 拒绝和两函数参数签名 | +| T02 | tests/scaffold/test_packaging.py | W08 更新 test_wheel_installs_without_developer_tools 内公共调用预期;保留构建、成员、重建、安装、CLI 拒绝 | +| T03 | tests/security/test_scaffold_inertness.py | PROBE 中 bundle outcomes、对应计数和 hostile bundle mutation;保留全部效果 observer、file/CLI 拒绝和负向证明 | +| T04 | tests/security/test_preparation_inertness.py | test_whole_package_guard_rejects_forbidden_implementation_in_temporary_copy 的上下文和仍受保护 mutation 目标 | +| T05 | tests/integration/test_preparation_capability_boundary.py | 保留准备层分界;只迁移末尾 bundle refusal 及公开名字预期 | +| T06 | tests/contract/test_analytical_observability.py | 保留私有 immutable/no-public-report/no-options 断言;只迁移 bundle refusal、__all__ 和当前公开边界 | +| T07 | tests/contract/test_phase2_transition.py | 保留 W08 安装准备见证;仅更新当前阶段绑定、public bundle 交付和 receipt 断言 | +| T08 | tests/integration/test_analytical_installed_runtime.py | PROBE 的公开名字、bundle 调用和 receipt;完整保留原 hero、有限完成、非法输入、effects 和包字节见证 | +| T09 | tests/contract/test_phase3_transition.py | 剩余 source-extension 测试的 VC 上下文及 api 未激活预期;数据不能授权阶段或伪造 PC 完成的断言保留 | +| T10 | tests/contract/test_input_schema_mapping.py | test_no_runtime_schema_or_source_reads 中 report-schema 不存在断言转为本地 schema 正确存在;保留产品无 schema/source 文件读取 | +| T11 | tests/scaffold/test_contract_catalogs.py | test_schemas_are_documentation_only 中 report schema 清单及 README 状态;冻结的源和历史 catalog 保持 | + +T07/T08 在 W01 仅更新当前上下文绑定,保留两个 API 的立即拒绝。到 W08 时,不能仅把 public_refusals 从 2 改成 1;须同时加入真实 audit_bundle 有效公共交付及两个编码的独立预期,并与 V03 receipt 校验原子更新。 + +V04–V07、V02 中把 api/reporting 当作永久未激活槽位的 fixture,可以在 W01 迁移成阶段相关断言或仍受保护的文件/native 槽位。仍须有活动报告代码的直接效果反例,不能把该项保障整体删除。 + +### 5.4 新测试及新案例,共 20 条 + +| ID | 路径 | 内容 | +| --- | --- | --- | +| N01 | tests/contract/test_report_contract.py | 根/嵌套 schema、状态组合及安全类型 | +| N02 | tests/contract/test_report_assembly.py | 私有到公共的显式投影、引用、domain/capability | +| N03 | tests/contract/test_report_identity.py | 语义排序、ID、去重、同 slot 冲突 | +| N04 | tests/contract/test_json_report.py | 精确 J 与 JSON 字节 | +| N05 | tests/contract/test_report_parity.py | 全部实质字段一致、mutant 拒绝及精确 Markdown | +| N06 | tests/contract/test_public_api.py | 公开签名、类型、methods、options、结果 | +| N07 | tests/contract/test_public_report_obligations.py | 57 字段/228 义务的公共层逐项断言 | +| N08 | tests/security/test_report_disclosure.py | 必需披露与禁止自动导出字段的双向 canary | +| N09 | tests/security/test_rendering.py | 围栏、HTML/链接/图片、控制符、多语言 | +| N10 | tests/security/test_report_resource_limits.py | L14、单一 ledger、计费与各阶段停止 | +| N11 | tests/security/test_public_api_boundary.py | hostile options/inputs、无效果、安全异常 | +| N12 | tests/integration/test_public_audit.py | 真实 audit_bundle 全路径、原 hero 和有限案例 | +| N13 | tests/integration/test_report_determinism.py | 置换、重复调用、污染、字节稳定及合法差异 | +| N14 | tests/integration/test_public_installed_runtime.py | 各构建形态真实离线安装后的公共行为 | +| N15 | tests/fixtures/micro/phase4_public_cases.json | 独立命名有限 dossier 及冻结来源/差异说明 | +| N16 | tests/fixtures/adversarial/phase4_report_cases.json | 合成隐私与呈现 canary、异常和反例资料 | +| N17 | tests/golden/phase4_report_expectations.json | 独立人工推导的语义与投影 oracle | +| N18 | tests/golden/phase4_reference_report.json | 一个有界完整参考 envelope 的预期 JSON 字节 | +| N19 | tests/golden/phase4_reference_report.md | 同一独立 oracle 的预期 Markdown 字节 | +| N20 | tests/contract/test_report_test_oracles.py | oracle 正例可接受及单属性 mutant 可拒绝的自检 | + +N15–N19 在产品实现被用来生成预期之前先完成独立预期和来源依据。修正 oracle 必须指明源条款及原错误,不得通过重录实际输出消除差异。不修改既有四个 hero、原 logical golden 或 Phase 3 案例。N20 验证测试 oracle 的判别能力,不另建一个会扩大生产能力的 public validator。 + +### 5.5 schema 与阶段记录,共 8 条 + +| ID | 路径 | 处理 | +| --- | --- | --- | +| D01 | PHASE_4_PLAN.md | W01 加入获准准确字节;此后冻结 | +| D02 | schemas/report/sit-report-0.1.schema.json | 新增正式报告结构 schema | +| D03 | schemas/report/README.md | 更新该 schema 的真实范围和限制 | +| D04 | phase4/report_contract_coverage.json | 新增公共投影、逐条 report 义务及来源/测试位置;不是 runtime authority | +| D05 | phase4/implementation_evidence.json | 各单元简明执行记录、测试替代去向及真实状态;不是权限授予源 | +| D06 | phase4/ci_review.md | 一次当前迁移、有限工具链评估与凭据限制 | +| D07 | PHASE_4_COMPLETION.md | 最终范围、测试事实、未完成项及所有者验收提交 | +| D08 | README.md | 真实阶段状态、公开调用示例、当前完整验证命令及未完成功能 | + +共计 59 条路径上限:12 产品、8 当前控制、11 混合测试、20 新测试/案例、8 schema/记录。路径编号区间在后文仅代表此处逐条列出的封闭集合,不是目录通配权限。 + +D04/D05/D06 不导入产品、不通过设置 approved=true 获得权限。旧 phase2/phase3/scaffold catalogs、manifests、transition ledger、VC map/completion 及冻结规范全部保持。没有新的通用 manifest 框架或可无限追加的迁移链。 + +## 6. 十个顺序工作单元 + +每个单元开始前,核对已批准计划、实际前一检查点与该单元路径集合。完成时在 D05 记实际变更、直接检查、反例、失败及停止状态。D05 是各单元共同可写的唯一记录;禁止通过共同记录改变本计划权限。 + +审批整个阶段并授权连续执行后,在既定范围内无需逐项重新取得同一种授权。仅授权某一单元时,完成该单元后按用户指令继续。任何阶段合并与正式发布不由自动测试代为授权。 + +### P4-W01:当前基线与验证切换 + +- **前提:** 本计划获准,main 仍为第 2 节锚点;若已变化,先检查新变化,不能默默重新设锚点。 +- **可修改:** V01–V08,T04、T07、T08、T09,D01、D04、D05、D06、D08。 +- **工作:** 一次性切换到 P4 当前授权;建立所有十个单元的精确路径及产品激活表。迁移现有 context/receipt 身份,但保持两个 audit API 的当前拒绝。D04 只建立尚未完成的义务骨架及来源定位。D08 只更新接受事实和计划状态。 +- **验收:** 基线正例先通过;错误 repo/base/head/footer、提前激活、越权路径、脏 index/worktree、隐藏中间改动及 merge side 均拒绝;旧历史加载与阶段重演仍为零;无产品字节变化。 +- **停止点:** 当前 P4 验证能直接执行;不把 W01 称为公共功能已完成。 + +### P4-W02:正式报告契约、schema 与独立参考预期 + +- **可修改:** P01、P02,T10、T11,N01、N15、N17、N18、N19、N20,D02、D03、D04、D05。 +- **工作:** 定义不可变 AuditReport 和安全 transport 声明、局部引用/嵌套对象;建立 closed schema;显式记录每个私有到公共映射和既有规范来源。N18/N19 为小型可完整运行案例的独立精确预期。 +- **验收:** 正常契约各变体先通过,随后拒绝缺失/额外成员、非法状态组合、错误类型、错命名空间和错误值;16 根字段及嵌套成员逐项覆盖;没有虚构的新 metric/Reason/root 字段;旧私有类型仍通过原测试。 +- **停止点:** 没有公共 audit 执行,API 仍拒绝;类型存在不代表可构造已完成审计。 + +### P4-W03:正式组装、稳定 ID 与引用闭合 + +- **可修改:** P01、P03,N01、N02、N03、N15、N17、N20,D04、D05。 +- **工作:** 用有界内部结果建立 root/run/input 元数据;按语义 anchor 排序、去重、命名,组合 scopes/populations/checks/basis/capabilities/domains/results/findings/reasons;对披露输入使用显式内部契约。 +- **验收:** 多 inquiry 仍只有五个普通报告 domain;15 家族和四态分区一致;所有输入/报告引用独立闭合;不同输入 ID 不合并;相同 slot 异值失败;Reason 循环不递归爆炸;发现顺序、输入数组置换不影响应当稳定的身份;原生有序数组不乱序。 +- **停止点:** 对外入口仍拒绝。该单元的项目内可信构造 fixture 不能代替真实调用证据。 + +### P4-W04:统一披露与隐私边界 + +- **可修改:** P01、P03、P04,N02、N08、N15、N16、N17、N20,D04、D05。 +- **工作:** 显式逐字段实现 basis/disclosure/witness 选择;接通组装的唯一披露来源。禁止通用 dataclass/source record 输出。 +- **验收:** 整记录、excerpt、contact/display_name/identity_key/extensions/path canary 不自动输出;必需 IDs、method/context/native outcome/qualified limitations canary 正确保留;共同来源、未知祖先和受保护关系不被改成独立;当前输出无匿名化或可公开保证。 +- **停止点:** 若某个必要解释与允许披露确实矛盾,停止受影响投影并提交具体条款问题,不能静默删信息。 + +### P4-W05:精确 JSON 与有界编码 + +- **可修改:** P01、P02、P05、P06、P08、P09,N04、N10、N16、N17、N18、N20,D04、D05。 +- **工作:** 实现 J 字符、键序、精确数值和单 LF;通过受限 port 逐步计算编码字节、传播 L14。P02/P08/P09 只增加该输出边界的当前契约,不改预算数值或 private 停止语义。 +- **验收:** 逐字节匹配独立参考;portable integer/bool、原始分数、极小 exact decimal、控制字符、合法多语言和 ordered arrays 正确;不调用自定义 default/repr;JSON 大小低于/等于/超过限额及中途停止有证据。 +- **停止点:** 未完成 Markdown/运行时组合,不交付公共 AuditReport。 + +### P4-W06:精确 Markdown 与两种格式一致性 + +- **可修改:** P05、P07,N05、N09、N10、N16、N17、N19、N20,D04、D05。 +- **工作:** 精确实现固定布局、pretty-J、变长围栏、Reason details 和 available fraction 的 decimal 行;两个 renderer 只消费同一冻结契约。 +- **验收:** 独立预期逐字节匹配;测试独立解析 Markdown 规定区块,对照逻辑 oracle 与 JSON;删除未知字段/原因/反证/分母/qualification 的 mutant 被拒绝;反引号、HTML、图片、autolink、换行、ANSI/bidi 不能逃出数据位置;两种格式各自长度边界和 no-clipping 均覆盖。 +- **停止点:** 无任意原文标题、无启用网络或浏览器的报告元素。 + +### P4-W07:单次预算贯通与真实停止交付 + +- **可修改:** P01、P02、P03、P04、P05、P06、P07、P08、P09、P10,N01、N02、N08、N10、N11、N12、N15、N16,D04、D05。 +- **限制:** P03–P07 只用于组合和计费/停止接线,不借此修改已验收字段或编码规则。 +- **工作:** 捕获、全结构/有限 job 计划、分析、披露、组装、ID、两编码、必要一致性检查共享同一 ledger/deadline/reserve;保留原有 private preparation/analysis 返回与行为。 +- **验收:** 禁止 second-budget/restart;在每个阶段注入有限内部时钟/配额/故障,核对第一原因、accepted/not_completed、无私有输入泄漏和 partial-report 拒绝;取消独立;原私有同输入回归保持;无 native/file/network 权限穿透;成功返回前两份 bytes 完整且不持有原始源树/预算。 +- **停止点:** 仅项目内部公共组合路径可测试;api.py 仍拒绝。 + +### P4-W08:激活公共 audit_bundle 并迁移旧拒绝断言 + +- **可修改:** P01、P02、P10、P11、P12,V03,T01、T02、T03、T05、T06、T07、T08,N06、N11、N12、N14、N15、N16,D04、D05、D08。 +- **限制:** P01/P02/P10 只处理公开类型及 trusted invocation 接线;V03 只处理新公共成功见证与保留 file 拒绝的 receipt 对账,不扩大权限或改预算。 +- **工作:** 激活精确签名、七项公开名字、只读缓存方法、使用错误;原拒绝测试迁移为直接有效/无效/恶意调用断言。三种已安装分发形态的当前 receipts 同步记录真实公共返回及 audit_file 拒绝。 +- **验收:** 用户确实可 import、提交有限有效 dossier、读取 16 根逻辑 envelope 和两 bytes;None/{} / false 等价;true/未知键/恶意类型在 dossier 访问前安全拒绝;冻结输入及嵌套数据不变;所有已公开失败类型安全;反复读取 bytes 不触发新工作;audit_file 和 CLI 全部旧拒绝保障仍过。 +- **停止点:** README 如实标明内存可用、文件/CLI 审计未完成,保持 dev 版本。 + +### P4-W09:公共语义义务与独立反例闭合 + +- **可修改:** N01–N13、N15–N20,D04、D05。 +- **工作:** 对 57 字段的 228 项原义务逐项记录 core evidence、public-envelope evidence、rendering evidence 以及尚未适用的文件/发布条款;加入真实 public pipeline 和独立期望;执行原四个 hero 的公共路径。显式 sweep 24 PC、40 Reason codes、22 finding conditions 和 6 observation kinds,逐项记录公开保留、拒绝或尚不允许触发的条件,保留来源原生状态与 toolkit 状态的区别。 +- **验收:** 所有本阶段字段/嵌套/共享义务都有来源到实际断言的映射;原 49 个 output-mutant negatives 从符合完整公共契约的报告开始,单改指定属性后拒绝;8 个 input-delta negatives 保留其不同性质;先验证 unchanged conforming baseline;不能以永远拒绝的 oracle 通过负向检查。 +- **原 hero:** 使用原输入及不变预算,记录真实完成或停止,校验停止前后状态与无错误 salvage。用独立命名的有限真实 API 案例完成各字段的公共正/负/缺失/边界证明;不称其为原始 H7 全字段完成。 +- **停止点:** 若发现产品缺陷,回到原 owner 单元的精确范围修复并重新验证受影响检查;W09 不直接取得产品路径权限。改变阶段编号或 footer 不能掩盖未经授权的修复。 + +### P4-W10:安装、四环境终验与交接 + +- **可修改:** N14,D04、D05、D06、D07、D08。 +- **工作:** 固定完整候选;验证 clean offline installed 的实际公共报告、既有私有见证及 file/CLI 拒绝;完成四环境、范围、原始凭据、义务映射和停止限制审阅。 +- **验收:** 第 8 节所有技术门槛通过,最终准确 head 有四 profile 成功和原始记录;新包源模块及实际运行一致;无依赖/算法/冻结规范偷改;报告真实剩余工作。 +- **停止点:** 提交所有者验收。未获合并指令前保持实施 PR 可审阅;不打版本 tag、不上传 release、不启动后续 native/CLI 阶段。 + +若后期失败要求回到已完成单元,记录“回到 P4-Wxx 的哪项修复”及实际提交,按该单元原路径/目的限制执行。已实现功能状态不回退;不能用回退编号解除当前活跃功能的安全检查。需要原单元范围以外的文件或语义变化时,提交明确修订。 + +## 7. 验证启动、执行与减负规则 + +### 7.1 本次计划交付与实施启动 + +当前 VC guard 只承认 verification/consolidation、VC footer 及原 VC 精确路径。新 PHASE_4_PLAN.md 的 planning-only PR 会被该 guard 拒绝。 + +因此本次只交付外部计划稿。批准后由 W01 在 phase4/public-report 分支完成一个原子 bootstrap:加入获准计划的准确字节,同时切换当前 guard 和直接测试。不冒用 VC、不把计划 PR 伪装成旧单元、不先合并未经允许的红灯变更。 + +W01 外部审核基准是已接受 merge/tree/parents、所有者实际批准和准确计划字节。计划的 SHA-256 由批准后的文件计算并钉住;本文件不写自己的哈希,避免循环引用。新的策略源码、候选记录或 footer 自述不能单独证明授权。任何 branch protection 或必需检查保持有效。 + +### 7.2 当前授权与产品激活 + +- 使用真实平台事件、repo、base/head、branch、run/attempt 及 checkout;要求同仓库 phase4/public-report -> main。 +- 单元标记读取已校验实际 head commit message 中唯一精确行 SIT-Phase-Unit: P4-Wnn,nn 仅限 01–10。PR 事件先核实 head SHA,再读取其真实 Git commit;不从候选 dossier、环境任意值或 PR 标题推断。push 还要求实际 event 的 head_commit.id/message 与该 commit 相符。拒绝重复、混合 VC/P2/P3、未知单元或实际 head 不一致。 +- 每个实施提交记录修改所归属的单元;检查从 fdad8c3 起每个提交及每条 parent edge 的文件和许可目的,包含中间越权后恢复及 merge sides。每个单元第一次出现须按 W01 至 W10 的依赖顺序,不能跳过前置检查点。修改权限按该提交的 owner 单元,已激活功能状态按经过验证的祖先检查点单调保持;例如 W08 后的 W02 修复仍验证七项 exports 和公共成功行为。 +- 已批准完整计划中的激活表是先决条件,单元标签本身不给予新权力。W02 之前不得加入产品行为;P03 从 W03、P04 从 W04、P05/P06 从 W05、P07 从 W06、P10 从 W07、P11/P12 从 W08 才取得相应行为。P01/P02 从 W02,P08/P09 从 W05 仅取得限定报告支持。 +- 修复可回到已获准单元的路径目的,但当前验证必须继续覆盖已实现功能;不得把阶段上下文降级来重新接受旧拒绝或跳过公共行为。 +- 接受锚点之前不重演历史开发步骤;保留 frozen baseline 和当前范围检查,拒绝不完整/替换/伪造 Git history、dirty index/worktree、未允许 untracked 代码及候选遗漏。 +- 继续在现有工具与 test_verification_boundary.py 内维护直接正反例,不新增 test_phase4_transition.py、旧源码 loader 或自证 approval registry。 +- 旧保障转成当前行为的去向记录在 D05,一次审查后保留;不成为未来每日历史 replay 的输入。 + +**合并的归属规则:** 正常最终 merge 的 tree 必须与已验收候选 tree 一致。先按各原 owner 单元验证候选及 side ancestry 的全部提交,再确认相对 main parent 的累计差异只继承这些已验证变化;不能把该累计差异全部当作 W10 新修改。分支内 merge 同样区分继承变化与新变化,不整体豁免 merge。任何冲突解决或 merge 新增字节仍须归属实际有权的单元并通过其范围及行为检查;这会形成新候选,需要重新验证,不能直接引用旧候选验收。W10 不因此扩大到任意产品文件。 + +### 7.3 local 与 hosted 验证 + +保留单一本地完整入口: + +~~~sh +python -m pip install -r requirements-dev.txt +python -B tests/scaffold/test_ci_contract.py --local --evidence-dir ../sit-p4-local-evidence +~~~ + +每次使用新的证据目录。local 记录实际本地源码、工具、完整集合及结果,不伪造 GitHub event。它不能代替 hosted 的外部上下文和四 profile 门槛。裸 pytest 的默认 scaffold 范围仍不能宣称完整验证。 + +既有矩阵及限额不变: + +| 配置 | 要求 | +| --- | --- | +| OS × Python | ubuntu-24.04 / windows-2025 × 3.11 / 3.13 | +| suite / job | 2,400 秒 / 50 分钟 | +| 依赖 | requirements-dev.txt 与 build pins 原字节;零第三方 runtime dependencies | +| Actions | 三个原 immutable pins;read-only token;不保留 checkout credentials | +| 检查目录 | scaffold、security、contract、unit、integration 五目录全部收集 | +| 对账 | 精确 collected identities 与 JUnit 对齐;successful subtests 单独记录 | +| 失败 | failure/error/skip/incomplete 不算成功;保持 timeout 与异常的原始 stdout/stderr/status | +| 凭据 | 真实 head、run/attempt、profile 和事件语义绑定;evidence/upload 保留 always() | +| 安装包 | 六份既有构建 inventory、三种分发形态的干净离线安装与模块哈希;原准备/分析见证保留,增加公共实际行为 | + +新 report schema 是仓库开发契约资料,本阶段不改变 MANIFEST.in 或包数据规则,也不声称 wheel 内含该 JSON schema。已安装产品不读取仓库 schema 或测试文件。 + +可在不同单元只运行有明确影响范围的直接检查,报告其实际范围。完整候选终验必须运行全套;不人为加新一层每日完整矩阵,也不跳过 GitHub 已配置的必需工作流。阶段开发中若有 hosted 运行,同样按真实结果记录。 + +Documentation-only 仅允许最终单独改动 PHASE_4_COMPLETION.md 和 phase4/implementation_evidence.json 两个非执行记录,且当时变化区间每个 parent edge 都只含这两条路径。它仍检查权限、实际 checkout、冻结字节和当前范围,明确说明未运行完整测试。 + +README 是包 metadata;本计划、schema、coverage/test oracle、guard、test、workflow、产品代码均走 full。记录不得被产品、授权策略、收集选择或打包读取后还声称 documentation-only。空、未知、混合或中间 executable 后恢复的改动走 full。 + +### 7.4 工具链与执行凭据 + +W01 对既有 pins 的当前官方安全通告/可用性作一次有界评估,记录时间、适用性和无法确认部分。不因有新版本就升级。发现必要升级时提交明确依赖修订,不绕过安装版本 gate 或悄悄使用预装工具。 + +最终运行保存 collection、JUnit、原始日志、实际版本、before/after tracked-byte 对账、six inventories、准备/分析/公共 installed receipts 和失败状态。公共 receipt 必须绑定实际 module hashes、输入/独立预期及两种编码结果,不能仅记录 audit_bundle 被调用过。 + +尽量在现有 installed receipt 中整合公共见证,复用同一已构建分发形态,避免再加一套重复构建矩阵。N14 可提供调用和断言,不能把未执行的助手函数视作安装证据。 + +上传范围仍为现有 JSON/XML/log。任何 archive 或原始 event 未上传的事实在完成记录明示;不宣称完整 archive 重现或原事件字节已独立复核。真实失败保存后按原因修复,不用无说明重试覆盖原尝试。 + +## 8. 阶段验收门槛 + +必须全部满足以下技术门槛,再提交所有者验收: + +| 门槛 | 必须提供的证据 | +| --- | --- | +| G01 范围与来源 | 精确锚点/获准计划、59 路径上限及各单元 purpose 审查;36 非授权产品路径和全部其他冻结文件字节不变 | +| G02 原核心保持 | 既有准备/分析语义、graph/lineage/来源独立性/缺失信息/修正结果直接测试继续有效 | +| G03 报告契约 | 三类 report kind、所有合法 run/input 与 Result 状态组合、16 根及所有嵌套成员、正确 schema 和引用闭合 | +| G04 每字段公共覆盖 | 57 字段/228 原 ID 保留逐项来源,明确完成公共 envelope/rendering 条款及仍延期条款;24 PC、40 Reasons、22 conditions、6 observation kinds 显式 sweep,含 dormant 禁用条件;非测试数总结 | +| G05 反例有效性 | 49 output-mutant 和 8 input-delta negatives 按原类别测试;oracle 先接受 conforming baseline,再拒绝指定单属性错误 | +| G06 ID 与确定性 | 全语义身份/去重、不同输入 ID 保留、跨 inquiry、引用循环、输入置换、合法有序数组及重复运行控制 | +| G07 精确双格式 | 独立 golden 的精确字节、Markdown 独立区块对账、所有原因/未知/反证/分母/限制保留 | +| G08 隐私与效果 | 双向 canary、惯常及恶意 Unicode/markup、无原始输入泄漏、无文件/网络/native/模型/日志行为 | +| G09 单预算与停止 | 一个 ledger/deadline/reserve,L14 两种编码分别边界,逐阶段取消/故障/中断,真实接纳状态及无 partial success | +| G10 真实 API | 七项 export、签名、options 优先校验、深不可变、两只读 bytes 方法、safe failures 和未触碰 audit_file/CLI | +| G11 实际案例 | 有限完整公共正例及各义务;四个原 hero 的真实公共执行状态和限制,不以组件/fixture 代替原 hero 完成 | +| G12 安装/平台 | 四 profile 的实际安装包源字节、准备/分析/公共见证及无开发目录依赖;不宣称 native 文件平台认证 | +| G13 最终 head | 一个固定最终 executable candidate 的完整四环境成功,准确集合/JUnit/subtests、无 fail/error/skip/incomplete;原始凭据核对 | +| G14 交接与接受 | D07 如实列出能力、未完成项和证据限制,提供用户接受对象;所有者明确验收单独记录 | + +G04 不自动把所有 228 项完整 release obligation 宣告关闭。公共层已经验证的子条款、文件模式/发布尚未验证的子条款必须分栏。26 个共享验证家族及 35 条 Trace 也只按实际覆盖范围记账,特别保留 SIT-VG023 文件/内存等价和 SIT-VG026 发布条款的未完成部分。 + +若最后一次完整运行后只追加允许的非执行接受记录,可用外部 PR 记录和文档 successor 说明直接测试 head 与相同 executable bytes;不得把 successor 的有限检查叫作其全套运行。新增代码/schema/README/测试或改变实质行为后,最终 candidate 必须重新完成所需全矩阵。 + +## 9. 停止条件、修复与审批 + +以下情况停止受影响工作,提出具体、最小修订: + +- 需要修改被冻结的分析语义、输入/图模块、原 hero 或逻辑 oracle,或新增指标/字段/Reason。 +- 需要第 5 节以外文件、新产品模块、新依赖、Action/dependency pin、权限/平台/预算变化。 +- 正式 report 形状无法保留已批准含义,或允许披露与必需依据存在具体冲突。 +- 现有计费使本阶段必要的有限案例也无法合规完成,且修复超过许可范围。 +- 无法取得实际基线/原始凭据、需要放宽 branch protection、无法证明旧安全保障的当前等价。 +- 某环境不能满足必需能力;不得静默 xfail、skip、换平台或泛化其他环境成功。 + +正常范围内的实现缺陷、文档错误和测试接线可以按 owner 单元修复,不需要为同一已授权事项重复审批。保留失败证据和修复依据;不强推 main、不 reset 接受历史、不删除旧证据。 + +本轮起草任务到可审阅计划交付结束。建议批准指令: + +**“批准 PHASE_4_PLAN.md,启动 P4-W01。”** + +如希望按上述十个单元连续执行,可明确增加“按计划继续至 P4-W10”;期间仅在真实范围/语义/权限阻塞或需要所有者最终验收时暂停。接受整个阶段、合并实施 PR 和正式发布保持各自明确授权。 + +## 10. 本计划起草核验记录 + +- 从 GitHub 克隆并检查实际 fdad8c3 与 tree f6fbb89;211 tracked files,读取本计划所引冻结规范和相关当前产品/测试源码。 +- 核实 PR #35 的所有者接受与 merge,核实 merge 后四环境 CI 已成功;新功能尚未执行测试。 +- 将报告契约、运行时预算和验证迁移分成三项只读协作审查,合并其具体发现。 +- 找到并列明既有 public refusal、schema absence、__all__、protected slot、runtime-to-report 依赖与 installed receipt 的实际迁移点。 +- 明确私有源树、native_records、per-inquiry domains、witness references 和 full-body dedup 不能直接拷贝为公共报告。 +- 交付前检查路径编号、单元范围、59 条路径的存在/新增归类、重复/未定义编号、链接/Markdown 结构、仓库未改动及文件 SHA-256。 +- 本轮没有产品实现、仓库写入、新 CI、远程 PR、发布或原理论论文修改。基线成功只支持基线状态,不能作为 Phase 4 功能已完成的证据。 + diff --git a/README.md b/README.md index 3ac8dcd..cdd3b16 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A local, supplied-evidence toolkit for examining source lineage, evidence independence, external presence and corrective capacity in AI-native information systems. -**Status: Phase 3 private analytical core accepted through [PR #34](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/pull/34). Verification consolidation is in progress; its final four-environment gate and owner acceptance remain pending. Public auditing remains unavailable.** The package remains installable as `0.1.0.dev0`. The private core implements fifteen analytical families in twenty-nine active modules; nineteen protected modules retain their accepted bytes. Public audit calls raise `NotImplementedError`; CLI auditing refuses with exit 1 without reading dossiers or producing reports. +**Status: Phase 3 private analysis and verification consolidation are accepted; [PR #35](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/pull/35) is merged. [Phase 4](PHASE_4_PLAN.md) is approved, and P4-W01 is the current verification bootstrap. Public auditing remains unavailable.** The package remains installable as `0.1.0.dev0`. This work unit changes verification and planning records while preserving all 48 product modules at the accepted merge. Both public audit calls still raise `NotImplementedError`; CLI auditing still refuses with exit 1 without reading dossiers or producing reports. ## Intended purpose @@ -23,13 +23,17 @@ The private analysis accepts exact built-in values or supplied UTF-8 bytes and e All 228 field obligations have accepted owner-local core evidence. W14 added source-clause and counterexample checks. W15 identified and repaired the missing `dimension_not_selected` distinction for empty dimension selection, with exact paired value/UTF-8 tests and separate absent-subject/incomplete-role controls. The 228 historical rows remain unchanged and do not close public-envelope, rendering or release clauses. See [phase3/obligation_coverage.json](phase3/obligation_coverage.json) for the per-obligation evidence and remaining duties. +The accepted Phase 4 entry is `fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c`, tree `f6fbb8965520f33a09ca38cf413e11ca561110dd`. It is the normal merge of PR #35 and preserves the directly tested VC candidate's exact tree. The owner approved the exact [PHASE_4_PLAN.md](PHASE_4_PLAN.md) bytes and authorized P4-W01 only. The plan's authoring-time draft header is historical; the later approval and current execution are recorded separately in [phase4/implementation_evidence.json](phase4/implementation_evidence.json). + +P4-W01 establishes the ten work units' closed path and activation policy, current event/history checks, retained direct test controls and a [pending report coverage map](phase4/report_contract_coverage.json). It implements no report schema, renderer, public audit or native adapter. Later units will introduce the frozen report contract, privacy projection, JSON/Markdown and finally `audit_bundle` under their approved scopes when the owner authorizes their execution. The report coverage map starts with all 228 public-envelope/rendering obligations pending; inherited private-core evidence does not close them. File auditing, CLI auditing and release remain later work. + ## Developer installation and checks Use a complete Git checkout and a clean CPython 3.11 or 3.13 development environment. Install the existing pinned development requirements, then use the single current verification entry: ```sh python -m pip install -r requirements-dev.txt -python -B tests/scaffold/test_ci_contract.py --local --evidence-dir ../sit-local-evidence +python -B tests/scaffold/test_ci_contract.py --local --evidence-dir ../sit-p4-local-evidence ``` Choose a new evidence directory for each attempt. The entry verifies the actual tool versions, current module/workflow boundaries and frozen Phase 0 baseline, explicitly collects all five directories (scaffold, security, contract, unit and integration), runs the complete suite with third-party pytest plugin autoload disabled, and reconciles exact collected identities with JUnit. Successful subtest events are counted separately. It checks tracked bytes before/after and retains raw logs, failure records, distribution inventories and available installed-runtime evidence. Missing directories, an empty collection, failure/error/skip outcomes or incomplete evidence fail the command. The complete-suite process budget is 2,400 seconds. @@ -44,15 +48,17 @@ Bare `pytest` retains its older scaffold-only configuration. Use the current ent [Current verification](.github/workflows/phase1-ci.yml) keeps Ubuntu 24.04 and Windows Server 2025, each with Python 3.11 and 3.13, immutable Action pins, read-only permissions, no stored checkout credentials, a 50-minute job budget and the 2,400-second suite budget. The seven existing workflow stages remain visible. Evidence reconciliation and artifact upload run with `always()`; the existing fourteen-day retention and `sit-p3/evidence` receipt destination remain intact. -CI resolves the actual GitHub event, base and checked-out head. A consolidation PR must use the same-repository `verification/consolidation` branch targeting `main`; a main push requires the exact `SIT-Verification-Unit: VC` footer and matching event head. These labels do not grant authority: the accepted Phase 3 anchor, approved consolidation plan, every post-anchor commit and actual index/worktree must also pass the current scope checks. Missing or inconsistent external context fails closed. +CI resolves the actual GitHub event, base and checked-out head. Phase 4 uses the same-repository `phase4/public-report` branch targeting `main`, with one exact `SIT-Phase-Unit: P4-Wnn` footer identifying a real approved work unit. The accepted PR #35 merge, exact approved plan, every post-anchor commit and parent edge, stage activation and actual index/worktree must independently pass. Footer text, dossier extensions and candidate records cannot grant authority. Missing or inconsistent external context fails closed; prior VC labels cannot authorize Phase 4 work. -Risk routing uses every parent edge in the actual event change interval, including intermediate edits restored before the final head and merge sides. Only changes confined to the two exact non-executable consolidation records, `VERIFICATION_CONSOLIDATION_COMPLETION.md` and `verification/consolidation_map.json`, can use the explicit documentation scope. That scope still checks current authority, complete history, checkout, frozen bytes, module boundaries and workflow policy, and reports that no full suite was run. It does not acquire test tools or claim package/installed-runtime execution. Empty, unknown or mixed changes require the full scope. README changes also require the full scope because README is package metadata. File suffixes and candidate declarations cannot select the reduced route. +Risk routing uses every parent edge in the actual event change interval, including intermediate edits restored before the final head and merge sides. After verified activation reaches W10, only changes confined to the two exact non-executable Phase 4 records, `PHASE_4_COMPLETION.md` and `phase4/implementation_evidence.json`, can use the explicit documentation scope. That scope still checks current authority, complete history, checkout, frozen bytes, module boundaries and workflow policy, and reports that no full suite was run. It does not acquire test tools or claim package/installed-runtime execution. Empty, unknown or mixed changes require the full scope. README changes also require the full scope because README is package metadata. File suffixes and candidate declarations cannot select the reduced route. Full scope requires all five test directories, exact collection/JUnit identity reconciliation, separately observed subtests, unchanged tracked bytes, pinned installed tools, package inventories and both current-head installed receipts. Each attempt binds evidence to its actual head, event, run/attempt and matrix profile. Raw partial output and failure records remain evidence of failure. A successful documentation check or local check is never reported as full-matrix acceptance. -The accepted Phase 3 anchor is `2413a29b839b7e1de8f76a449762f031de19d52b`, with the same tree as directly tested head `90684996eac568af6129973764fe40f3b666a15f`. [Run 36736103966, attempt 1](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/36736103966) passed all four original profiles with 3,963 tests and 428 separate subtest events each. Those are historical Phase 3 results. The completed consolidation candidate still requires its own same-head four-environment run and raw-evidence audit in VC-06. Changes to executable verification, semantics, security, platform behavior, loading or packaging require that gate; strictly explanatory records use the explicit limited scope above. CI success does not automatically authorize acceptance, merge, a next implementation phase or release. +The accepted Phase 3 anchor was `2413a29b839b7e1de8f76a449762f031de19d52b`, with the same tree as directly tested head `90684996eac568af6129973764fe40f3b666a15f`. [Run 36736103966, attempt 1](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/36736103966) passed all four original profiles with 3,963 tests and 428 separate subtest events each. The later VC candidate `ce05c5dda9368182dbee074253d3a7c829af7719` passed [run 38128491330, attempt 1](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/38128491330), with 3,724 tests and 431 separate successful subtest events per profile; raw evidence was reviewed and the owner accepted VC-06. [Main-push run 38164028893, attempt 1](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/38164028893) also passed all four profiles after PR #35 merged. These are accepted baseline results, not Phase 4 implementation evidence or a test-count floor. + +Phase 4 records each current candidate's actual collection and result. Its final executable candidate requires all four hosted profiles and raw-evidence review. Local checks and documentation-only checks retain their limited meaning. CI success does not automatically authorize owner acceptance, merge, another work unit or release. -Current progress, collection changes and local evidence are in [VERIFICATION_CONSOLIDATION_COMPLETION.md](VERIFICATION_CONSOLIDATION_COMPLETION.md) and the one-time [consolidation map](verification/consolidation_map.json). The map is a review artifact and is never imported by current verification. Historical stage evidence remains in [PHASE_3_COMPLETION.md](PHASE_3_COMPLETION.md), [phase3/implementation_evidence.json](phase3/implementation_evidence.json) and their immutable Git history. The complete pre-retirement test implementation is available at `3ac5128e4744e2d3708400e3cb1875a9cd4ed0e1`; inspect any historical replay in an isolated checkout with its original tooling and label it as historical investigation. Earlier failed attempts and missing W01-W07 raw ZIPs and some W08 profile artifacts remain disclosed. +Current Phase 4 work and actual validation status are in [phase4/implementation_evidence.json](phase4/implementation_evidence.json); the scoped verification and toolchain review is in [phase4/ci_review.md](phase4/ci_review.md). [VERIFICATION_CONSOLIDATION_COMPLETION.md](VERIFICATION_CONSOLIDATION_COMPLETION.md) and the one-time [consolidation map](verification/consolidation_map.json) preserve their original checkpoint wording; later PR acceptance and merge records establish VC completion. These maps are review artifacts, never product input or an approval switch for current verification. Historical stage evidence remains in [PHASE_3_COMPLETION.md](PHASE_3_COMPLETION.md), [phase3/implementation_evidence.json](phase3/implementation_evidence.json) and their immutable Git history. The complete pre-retirement test implementation is available at `3ac5128e4744e2d3708400e3cb1875a9cd4ed0e1`; inspect any historical replay in an isolated checkout with its original tooling and label it as historical investigation. Earlier failed attempts and missing W01-W07 raw ZIPs and some W08 profile artifacts remain disclosed. Existing CI artifacts contain JSON/XML/log records, not the wheel/sdist archive bytes or original GitHub event payloads. W08 temporary-archive member corroboration and W14 exact archive records have different evidence scope; no whole-archive reproducibility claim is made. The different VC event digests between runner groups have no established byte-level explanation. Windows Server component tests do not certify a future Windows 11/NTFS native adapter. Public audit/report output, CLI auditing, native file adapters and release remain unfinished. The product's 60-second cooperative deadline and existing work quotas are unchanged; a safe resource interruption is not certification of unperformed analysis. @@ -60,7 +66,7 @@ Windows Server component tests do not certify a future Windows 11/NTFS native ad Start with [V0.1_PRODUCT_SPEC.md](V0.1_PRODUCT_SPEC.md), [DEFINITIONS_AND_UNITS.md](DEFINITIONS_AND_UNITS.md), [CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md](CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md) and [OBSERVABILITY_AND_REPORTING.md](OBSERVABILITY_AND_REPORTING.md). [THEORY_SOURCE_MAP.md](THEORY_SOURCE_MAP.md), [THEORY_TO_CODE_TRACEABILITY.md](THEORY_TO_CODE_TRACEABILITY.md) and [VALIDATION_PLAN.md](VALIDATION_PLAN.md) preserve source interpretation, responsibilities and future behavior tests. Historical catalogs and the approved plans remain unchanged; implementation evidence is tracked separately. -See [CONTRIBUTING.md](CONTRIBUTING.md) and [SECURITY.md](SECURITY.md). Do not post private evidence, credentials or protected-source identities in this public repository. Use fictional development examples. Private vulnerability reporting remains subject to the existing unverified-channel limitation. Build/test tools and their original reviews remain in [scaffold/toolchain_review.md](scaffold/toolchain_review.md) and [scaffold/ci_toolchain_review.md](scaffold/ci_toolchain_review.md); the current scoped transition is recorded in [phase3/ci_review.md](phase3/ci_review.md). +See [CONTRIBUTING.md](CONTRIBUTING.md) and [SECURITY.md](SECURITY.md). Do not post private evidence, credentials or protected-source identities in this public repository. Use fictional development examples. Private vulnerability reporting remains subject to the existing unverified-channel limitation. Build/test tools and their original reviews remain in [scaffold/toolchain_review.md](scaffold/toolchain_review.md) and [scaffold/ci_toolchain_review.md](scaffold/ci_toolchain_review.md); the historical Phase 3 transition remains in [phase3/ci_review.md](phase3/ci_review.md), and current Phase 4 findings are recorded separately. ## License diff --git a/phase4/ci_review.md b/phase4/ci_review.md new file mode 100644 index 0000000..eba67ae --- /dev/null +++ b/phase4/ci_review.md @@ -0,0 +1,93 @@ +# Phase 4 W01 current CI migration review + +Reviewed 2026-10-14 UTC. Owner approved the exact PHASE_4_PLAN.md bytes and started P4-W01. This record is evidence only and grants no authority. + +The accepted anchor is fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c, tree f6fbb8965520f33a09ca38cf413e11ca561110dd, with ordered parents 2413a29b839b7e1de8f76a449762f031de19d52b and ce05c5dda9368182dbee074253d3a7c829af7719. Approved plan SHA-256: 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48. + +## Migration + +The existing guard now uses same-repository phase4/public-report to main, actual hash-verified commit footers, all-parent scope checks, exact ten owner scopes, and monotonic ancestor activation. Earlier-unit repairs keep the current activation state. Inherited merge bytes must come from separately validated parent histories; novel bytes require the merge owner's scope. Main-push merge trees must equal their candidate parent tree; owner acceptance and exact tested-candidate identity remain separate requirements. No pre-anchor source loading, inverse patching or historical stage execution is introduced. + +The workflow bytes, seven steps, runner/minor matrix, action pins, read-only permissions, suite 2,400 seconds/job 50 minutes and 14-day artifacts remain unchanged. Existing phase3 artifact labels and sit-p3 paths are retained. Only PHASE_4_COMPLETION.md and phase4/implementation_evidence.json qualify for the documentation route, determined from every parent edge of the actual interval after verified activation reaches W10. Earlier record-only updates remain full risk. README affects packaging and remains full risk. + +Installed receipts bind actual head, owner unit and activation stage. At W01 both public APIs still refuse and all private preparation/analytical/effect/installed-package witnesses remain. P4-W08 must atomically add real public success and both encodings with the retained audit_file refusal. No receipt count edit alone can establish that future behavior. + +Current implementation validation is in progress. No local run is claimed to be hosted four-profile evidence, and W01 does not claim public reports or phase completion. + +## Bounded toolchain review + +P4-W01 bounded toolchain applicability review +Reviewed 2026-10-14 UTC. Working notes for phase4/ci_review.md. +Author: collaborating instance of the same assistant, using shared repository and freshly retrieved official sources. No independent external security review. No repository edits, package installation, dependency upgrade or workflow mutation performed by this reviewer. + +Outcome +No mandatory dependency/action replacement was identified for the inspected current verification path. This conclusion has the specific limits below. It does not establish that these pins, their transitive components, runner images, or arbitrary uses are vulnerability-free. The next hosted run must supply actual resolution, non-yanked status, hashes, installed versions, pip check and Python/image versions. Existing preinstalled packages are not that evidence. + +Current reviewed workflow +.github/workflows/phase1-ci.yml retains ubuntu-24.04 and windows-2025 x CPython 3.11/3.13, read-only contents permission, exact-candidate checkout, persist-credentials false, no dependency cache, no supplied secrets or publishing, 50-minute job timeout and 14-day JSON/XML/log retention. The cumulative suite has its separate finite timeout. The current source driver downloads binary wheels only from explicit PyPI, verifies selected names/versions and PyPI hashes/non-yanked status, then installs offline. Package tests build this repository with direct setuptools.build_meta, inspect exact regular members and reconstruct its own sdist using tarfile.extractfile. This review does not extend that use to untrusted third-party source archives. + +Exact release availability/declared compatibility +Each listed release page was opened on 2026-10-14; each exposes a platform-independent wheel. Declared Python requirements admit both chosen minors. Presence of a wheel listing is not a performed network download or installation gate. +- setuptools 84.0.0, Python >=3.10: https://pypi.org/project/setuptools/84.0.0/ +- pytest 9.1.1, Python >=3.10: https://pypi.org/project/pytest/9.1.1/ +- iniconfig 2.3.0, Python >=3.10: https://pypi.org/project/iniconfig/2.3.0/ +- packaging 25.0, Python >=3.8: https://pypi.org/project/packaging/25.0/ +- pluggy 1.6.0, Python >=3.9: https://pypi.org/project/pluggy/1.6.0/ +- Pygments 2.20.0, Python >=3.9: https://pypi.org/project/Pygments/2.20.0/ +- Windows-only colorama 0.4.6, Python >=2.7 excluding 3.0 through 3.6: https://pypi.org/project/colorama/0.4.6/ +Newer releases appear for some packages, including Pygments 2.21.0 and packaging 26.3. Existence of a newer version does not authorize replacing the retained pins. + +Exact action definitions +All three action.yml files were freshly retrieved successfully via the GitHub connector on 2026-10-14 after the web renderer returned DisabledError. Each specifies Node 24. No audit of their entire bundled JavaScript/transitive component tree was performed. +- https://github.com/actions/checkout/blob/3d3c42e5aac5ba805825da76410c181273ba90b1/action.yml +- https://github.com/actions/setup-python/blob/5fda3b95a4ea91299a34e894583c3862153e4b97/action.yml +- https://github.com/actions/upload-artifact/blob/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a/action.yml +Their official security overview pages were retrieved and displayed no published repository advisories: +https://github.com/actions/checkout/security +https://github.com/actions/setup-python/security +https://github.com/actions/upload-artifact/security +This observation is restricted to those overview pages and is not a claim that no vulnerability exists elsewhere or in bundled dependencies. + +GitHub guidance +https://docs.github.com/en/actions/reference/security/secure-use was retrieved 2026-10-14. It recommends least-privilege tokens and full SHA pins for repositories without workflow dependency lockfiles. Current guidance calls dependency lockfiles the strongest available protection for repositories adopting them; do not repeat older wording that SHA pinning is the strongest protection. The retained configuration uses full commit pins from the official repositories and least privilege. This review does not add a lockfile or expand the approved W01 scope. + +Advisories rechecked +The following GitHub advisory-database records were retrieved through the connector on 2026-10-14, preserving the same recorded fixed boundaries as the earlier review: +1. pytest GHSA-6w46-j5rx-g56g / CVE-2025-71176: recorded affected before 9.0.3; pin 9.1.1 is outside that range. +https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-6w46-j5rx-g56g/GHSA-6w46-j5rx-g56g.json +2. Pygments GHSA-5239-wwwm-4pmq / CVE-2026-4539: AdlLexer GUID regex, recorded affected before 2.20.0; pin is at fixed boundary. +https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-5239-wwwm-4pmq/GHSA-5239-wwwm-4pmq.json +3. setuptools GHSA-h35f-9h28-mq5c / CVE-2026-59890: MANIFEST.in Unicode normalization exclusion issue, recorded affected before 83.0.0; pin 84.0.0 is outside that range. +https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-h35f-9h28-mq5c/GHSA-h35f-9h28-mq5c.json +The following official pages were retrieved with the web tool: +4. jaraco.context GHSA-58pv-8j8x-9vj2 / CVE-2026-23949: affected >=5.2.0,<6.1.0, fixed 6.1.0. +https://github.com/advisories/GHSA-58pv-8j8x-9vj2 +The local environment's setuptools 84.0.0 metadata contains vendored jaraco_context-6.1.0.dist-info/METADATA declaring jaraco.context 6.1.0. This is a local observation only; hosted installations must retain their own actual evidence. +5. setuptools GHSA-5rjg-fvgr-3xxf / CVE-2025-47273: PackageIndex.download traversal, affected <78.1.1; pin 84.0.0 is outside that recorded range. +https://github.com/pypa/setuptools/security/advisories/GHSA-5rjg-fvgr-3xxf + +Explicit residual limitations +A. setuptools archive_util traversal repair +https://setuptools.pypa.io/en/latest/history.html still lists GHSA-grgh-hr87-3jpw under DRAFT, unreleased as on Sep 08, 2026. It concerns backslashes, drive letters, UNC prefixes and extraction-directory escape. Do not credit 84.0.0 with this fix. The direct advisory URL https://github.com/advisories/GHSA-grgh-hr87-3jpw did not produce an accessible advisory body in this review (web tool Internal Error), so the affected-version range remains unverified. Current binary-wheel installation/direct own-project builds/regular member inspections do not use archive_util to extract externally supplied archives. The source review found no applicable path requiring a pin change for this bounded use. That inference does not certify archive extraction generally. + +B. Pygments looks_like_xml backtracking +The current official upstream changelog states that release 2.21.0 (2026-08-17) fixes catastrophic backtracking in looks_like_xml; 2.20.0 must not be credited with that fix. +https://github.com/pygments/pygments/blob/master/CHANGES +Upstream PR https://github.com/pygments/pygments/pull/3112 describes the issue; that individual PR is closed without a merge and should not itself be described as the merged implementation. The changelog is the release-level statement. +The retrieved pytest 9.1.1 terminalwriter source selects PythonLexer or DiffLexer explicitly, then calls pygments.highlight; it does not invoke lexer guessing: +https://github.com/pytest-dev/pytest/blob/9.1.1/src/_pytest/_io/terminalwriter.py +The retrieved pinned PythonLexer and DiffLexer source files contain neither looks_like_xml nor guess_lexer: +https://github.com/pygments/pygments/blob/2.20.0/pygments/lexers/python.py +https://github.com/pygments/pygments/blob/2.20.0/pygments/lexers/diff.py +Repository src/tests do not import Pygments directly. This bounded path inspection did not identify invocation of the affected XML guessing path in this workflow. It supplies no assurance for arbitrary highlighting services, other lexers, extensions or downstream use. Runtime dependencies remain a separate product boundary. + +C. Search/retrieval limits +Official security overview pages for pytest, packaging, Pygments, colorama and the three actions exposed no published repository advisories at access time; existing advisories can still be in the global database or issue trackers, as the known pytest/Pygments records demonstrate. iniconfig and pluggy security overview retrieval failed. Targeted official-repository searches produced incomplete coverage. No search non-result is used as proof of absence. No comprehensive scanner, all-transitive dependency census or runner image security audit was performed. + +Python maintenance status and execution limits +https://devguide.python.org/versions/ retrieved 2026-10-14 now lists BOTH Python 3.11 and 3.13 as security-maintenance branches. Earlier W14 wording calling 3.13 bugfix maintenance is historical and must not be carried into the current review. +https://www.python.org/downloads/release/python-3119/ still identifies 3.11.9 as the last 3.11 bugfix release, superseded by 3.11.17. Actual Windows/Ubuntu patches must come from the hosted run; minor labels do not establish latest security patches. No Windows 11 native or release security certification follows. + +Local command disclosure +Only metadata reads were performed locally. The default runtime had setuptools 84.0.0 and packaging 26.3, with pytest/iniconfig/pluggy/Pygments/colorama absent. An optional local Pygments source-location probe stopped with PackageNotFoundError; exact upstream pinned source was inspected through the connector instead. This is not a passing installation check and was not used as a substitute for the approved tool venv. + diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json new file mode 100644 index 0000000..bd83081 --- /dev/null +++ b/phase4/implementation_evidence.json @@ -0,0 +1,137 @@ +{ + "phase": "P4", + "current_unit": "P4-W01", + "status": "implementation_in_validation", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210 + }, + "local_full": "pending on fixed checkpoint", + "hosted_four_profiles": "pending", + "cross_review": "completed with recorded fixes; independent reviewer tree finding addressed by root and direct regression tests", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "zero-Git collection positive/poisoned/no-.git controls passed" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in boundary retry or latest focused regressions; final unified suite pending" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in boundary retry or latest focused regressions; final unified suite pending" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in boundary retry or latest focused regressions; final unified suite pending" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "six focused latest-guard regressions passed" + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance." +} diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json new file mode 100644 index 0000000..ffc90a9 --- /dev/null +++ b/phase4/report_contract_coverage.json @@ -0,0 +1,13665 @@ +{ + "format": "sit-phase4-report-coverage/0.1", + "unit": "P4-W01", + "status": "pending_public_report_skeleton", + "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", + "phase4_plan": { + "path": "PHASE_4_PLAN.md", + "sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "owner_authorization": "Exact plan approved; execution authorized for P4-W01 only." + }, + "accepted_core_baseline": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "pull_request": 35, + "directly_tested_vc_head": "ce05c5dda9368182dbee074253d3a7c829af7719", + "accepted_run": { + "id": 38128491330, + "attempt": 1 + }, + "post_merge_run": { + "id": 38164028893, + "attempt": 1 + }, + "meaning": "Accepted private-core and VC baseline only; no public report implementation was performed in W01." + }, + "sources": [ + { + "path": "scaffold/obligation_catalog.json", + "sha256": "52db8f7e1966f6ff5a5b05b7da35e217cd7368808258cb355c0cb86cc8613852", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/scaffold/obligation_catalog.json" + }, + { + "path": "scaffold/trace_catalog.json", + "sha256": "fd954e5cc7a0292d4fb68cc244289c2626b42cd6ec4417a38c35f987d7ec46d7", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/scaffold/trace_catalog.json" + }, + { + "path": "phase3/obligation_coverage.json", + "sha256": "00275125d09edbce144054361a8cef65ee66b185c654bf9519e318b3c1127b2b", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/phase3/obligation_coverage.json" + }, + { + "path": "phase3/implementation_evidence.json", + "sha256": "ef5fcbb974c8ba52684a1d604aebdfde165a4e6941c30e54375918a9f59660b5", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/phase3/implementation_evidence.json" + }, + { + "path": "OBSERVABILITY_AND_REPORTING.md", + "sha256": "44daa3c86fc7d12e7be16a3aedfe10d16b99f55aa69141f90319ce2b5e63ff6a", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/OBSERVABILITY_AND_REPORTING.md" + }, + { + "path": "VALIDATION_PLAN.md", + "sha256": "f958a12bda396cd12bfec096353ec17ec786e8c7fe30e07ee987f7d52874b707", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/VALIDATION_PLAN.md" + }, + { + "path": "REPOSITORY_ARCHITECTURE.md", + "sha256": "8ababca6e074259c3fa98b4ecb5c7e55d150f420e4a2567926ed1cc696d3f97d", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/REPOSITORY_ARCHITECTURE.md" + }, + { + "path": "GOVERNANCE_AND_HANDOFF.md", + "sha256": "13e535ded411a3ad5967226e07761d4e88615f5b04c0b5a64c6cbf738cbc9ee8", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/GOVERNANCE_AND_HANDOFF.md" + }, + { + "path": "PRIVACY_AND_DATA_HANDLING.md", + "sha256": "3114941454f2d5ff90b3c2003195e35223fa4922104479ecedaea7d387865dd8", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/PRIVACY_AND_DATA_HANDLING.md" + }, + { + "path": "THEORY_TO_CODE_TRACEABILITY.md", + "sha256": "73a69a56828b6ff416164b7bd6420521da1c635bd92f03b92e07231b552a7849", + "accepted_url": "https://github.com/DavidWallstructurallaw/source-integrity-toolkit/blob/fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c/THEORY_TO_CODE_TRACEABILITY.md" + } + ], + "counts": { + "fields": 57, + "field_obligations": 228, + "prerequisites": 24, + "reasons": 40, + "finding_conditions": 22, + "observation_kinds": 6, + "shared_families": 26, + "traces": 35, + "public_envelope_verified": 0, + "rendering_verified": 0, + "file_release_closed": 0 + }, + "field_catalog": [ + { + "field_obligation": "SIT-VF001", + "field_key": "nominal_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF001-P", + "SIT-VF001-N", + "SIT-VF001-M", + "SIT-VF001-B" + ], + "trace_crosswalk_line": 595, + "reporting_field_line": 770, + "validation_field_line": 755 + }, + { + "field_obligation": "SIT-VF002", + "field_key": "unresolved_seed_artifact_reference_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF002-P", + "SIT-VF002-N", + "SIT-VF002-M", + "SIT-VF002-B" + ], + "trace_crosswalk_line": 596, + "reporting_field_line": 770, + "validation_field_line": 756 + }, + { + "field_obligation": "SIT-VF003", + "field_key": "seed_evidence_item_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF003-P", + "SIT-VF003-N", + "SIT-VF003-M", + "SIT-VF003-B" + ], + "trace_crosswalk_line": 597, + "reporting_field_line": 770, + "validation_field_line": 757 + }, + { + "field_obligation": "SIT-VF004", + "field_key": "claim_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF004-P", + "SIT-VF004-N", + "SIT-VF004-M", + "SIT-VF004-B" + ], + "trace_crosswalk_line": 598, + "reporting_field_line": 770, + "validation_field_line": 758 + }, + { + "field_obligation": "SIT-VF005", + "field_key": "claim_unassigned_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF005-P", + "SIT-VF005-N", + "SIT-VF005-M", + "SIT-VF005-B" + ], + "trace_crosswalk_line": 599, + "reporting_field_line": 770, + "validation_field_line": 759 + }, + { + "field_obligation": "SIT-VF006", + "field_key": "reached_origin_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF006-P", + "SIT-VF006-N", + "SIT-VF006-M", + "SIT-VF006-B" + ], + "trace_crosswalk_line": 600, + "reporting_field_line": 771, + "validation_field_line": 765 + }, + { + "field_obligation": "SIT-VF007", + "field_key": "documentary_origin_boundary_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF007-P", + "SIT-VF007-N", + "SIT-VF007-M", + "SIT-VF007-B" + ], + "trace_crosswalk_line": 601, + "reporting_field_line": 771, + "validation_field_line": 766 + }, + { + "field_obligation": "SIT-VF008", + "field_key": "origin_boundary_disclosures", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF008-P", + "SIT-VF008-N", + "SIT-VF008-M", + "SIT-VF008-B" + ], + "trace_crosswalk_line": 602, + "reporting_field_line": 771, + "validation_field_line": 767 + }, + { + "field_obligation": "SIT-VF009", + "field_key": "submitted_comparison_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF009-P", + "SIT-VF009-N", + "SIT-VF009-M", + "SIT-VF009-B" + ], + "trace_crosswalk_line": 603, + "reporting_field_line": 772, + "validation_field_line": 773 + }, + { + "field_obligation": "SIT-VF010", + "field_key": "qualified_process_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF010-P", + "SIT-VF010-N", + "SIT-VF010-M", + "SIT-VF010-B" + ], + "trace_crosswalk_line": 604, + "reporting_field_line": 772, + "validation_field_line": 774 + }, + { + "field_obligation": "SIT-VF011", + "field_key": "qualified_origin_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF011-P", + "SIT-VF011-N", + "SIT-VF011-M", + "SIT-VF011-B" + ], + "trace_crosswalk_line": 605, + "reporting_field_line": 772, + "validation_field_line": 775 + }, + { + "field_obligation": "SIT-VF012", + "field_key": "independence_assessment_disclosures", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF012-P", + "SIT-VF012-N", + "SIT-VF012-M", + "SIT-VF012-B" + ], + "trace_crosswalk_line": 606, + "reporting_field_line": 772, + "validation_field_line": 776 + }, + { + "field_obligation": "SIT-VF013", + "field_key": "per_seed_origin_memberships", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "field_test_ids_P_N_M_B": [ + "SIT-VF013-P", + "SIT-VF013-N", + "SIT-VF013-M", + "SIT-VF013-B" + ], + "trace_crosswalk_line": 607, + "reporting_field_line": 773, + "validation_field_line": 782 + }, + { + "field_obligation": "SIT-VF014", + "field_key": "origin_incidence_counts", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "field_test_ids_P_N_M_B": [ + "SIT-VF014-P", + "SIT-VF014-N", + "SIT-VF014-M", + "SIT-VF014-B" + ], + "trace_crosswalk_line": 608, + "reporting_field_line": 773, + "validation_field_line": 783 + }, + { + "field_obligation": "SIT-VF015", + "field_key": "seed_origin_dispositions", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "partition", + "field_test_ids_P_N_M_B": [ + "SIT-VF015-P", + "SIT-VF015-N", + "SIT-VF015-M", + "SIT-VF015-B" + ], + "trace_crosswalk_line": 609, + "reporting_field_line": 773, + "validation_field_line": 784 + }, + { + "field_obligation": "SIT-VF016", + "field_key": "documentary_origin_resolution_fraction", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "fraction", + "field_test_ids_P_N_M_B": [ + "SIT-VF016-P", + "SIT-VF016-N", + "SIT-VF016-M", + "SIT-VF016-B" + ], + "trace_crosswalk_line": 610, + "reporting_field_line": 773, + "validation_field_line": 785 + }, + { + "field_obligation": "SIT-VF017", + "field_key": "single_origin_contribution_hhi", + "family": "SIT-M005", + "primary_trace": "SIT-TR007", + "value_kind": "fraction", + "field_test_ids_P_N_M_B": [ + "SIT-VF017-P", + "SIT-VF017-N", + "SIT-VF017-M", + "SIT-VF017-B" + ], + "trace_crosswalk_line": 611, + "reporting_field_line": 774, + "validation_field_line": 791 + }, + { + "field_obligation": "SIT-VF018", + "field_key": "immediate_evidence_layer_dispositions", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "partition", + "field_test_ids_P_N_M_B": [ + "SIT-VF018-P", + "SIT-VF018-N", + "SIT-VF018-M", + "SIT-VF018-B" + ], + "trace_crosswalk_line": 612, + "reporting_field_line": 775, + "validation_field_line": 797 + }, + { + "field_obligation": "SIT-VF019", + "field_key": "inherited_only_seed_fraction", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "fraction", + "field_test_ids_P_N_M_B": [ + "SIT-VF019-P", + "SIT-VF019-N", + "SIT-VF019-M", + "SIT-VF019-B" + ], + "trace_crosswalk_line": 613, + "reporting_field_line": 775, + "validation_field_line": 798 + }, + { + "field_obligation": "SIT-VF020", + "field_key": "inherited_only_completion_interval", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "completion_interval", + "field_test_ids_P_N_M_B": [ + "SIT-VF020-P", + "SIT-VF020-N", + "SIT-VF020-M", + "SIT-VF020-B" + ], + "trace_crosswalk_line": 614, + "reporting_field_line": 775, + "validation_field_line": 799 + }, + { + "field_obligation": "SIT-VF021", + "field_key": "unresolved_frontier_reference_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF021-P", + "SIT-VF021-N", + "SIT-VF021-M", + "SIT-VF021-B" + ], + "trace_crosswalk_line": 615, + "reporting_field_line": 776, + "validation_field_line": 805 + }, + { + "field_obligation": "SIT-VF022", + "field_key": "unqualified_terminal_record_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF022-P", + "SIT-VF022-N", + "SIT-VF022-M", + "SIT-VF022-B" + ], + "trace_crosswalk_line": 616, + "reporting_field_line": 776, + "validation_field_line": 806 + }, + { + "field_obligation": "SIT-VF023", + "field_key": "seed_items_with_unresolved_ancestry_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF023-P", + "SIT-VF023-N", + "SIT-VF023-M", + "SIT-VF023-B" + ], + "trace_crosswalk_line": 617, + "reporting_field_line": 776, + "validation_field_line": 807 + }, + { + "field_obligation": "SIT-VF024", + "field_key": "ancestry_gap_disclosures", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF024-P", + "SIT-VF024-N", + "SIT-VF024-M", + "SIT-VF024-B" + ], + "trace_crosswalk_line": 618, + "reporting_field_line": 776, + "validation_field_line": 808 + }, + { + "field_obligation": "SIT-VF025", + "field_key": "shared_recorded_ancestor_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF025-P", + "SIT-VF025-N", + "SIT-VF025-M", + "SIT-VF025-B" + ], + "trace_crosswalk_line": 619, + "reporting_field_line": 777, + "validation_field_line": 814 + }, + { + "field_obligation": "SIT-VF026", + "field_key": "matching_family_label_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF026-P", + "SIT-VF026-N", + "SIT-VF026-M", + "SIT-VF026-B" + ], + "trace_crosswalk_line": 620, + "reporting_field_line": 777, + "validation_field_line": 815 + }, + { + "field_obligation": "SIT-VF027", + "field_key": "evaluator_overlap_disclosures", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF027-P", + "SIT-VF027-N", + "SIT-VF027-M", + "SIT-VF027-B" + ], + "trace_crosswalk_line": 621, + "reporting_field_line": 777, + "validation_field_line": 816 + }, + { + "field_obligation": "SIT-VF028", + "field_key": "evaluator_overlap_witnesses", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "witness_collection", + "field_test_ids_P_N_M_B": [ + "SIT-VF028-P", + "SIT-VF028-N", + "SIT-VF028-M", + "SIT-VF028-B" + ], + "trace_crosswalk_line": 622, + "reporting_field_line": 777, + "validation_field_line": 817 + }, + { + "field_obligation": "SIT-VF029", + "field_key": "externality_assessment_disclosures", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF029-P", + "SIT-VF029-N", + "SIT-VF029-M", + "SIT-VF029-B" + ], + "trace_crosswalk_line": 623, + "reporting_field_line": 778, + "validation_field_line": 823 + }, + { + "field_obligation": "SIT-VF030", + "field_key": "externality_stage_links", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF030-P", + "SIT-VF030-N", + "SIT-VF030-M", + "SIT-VF030-B" + ], + "trace_crosswalk_line": 624, + "reporting_field_line": 778, + "validation_field_line": 824 + }, + { + "field_obligation": "SIT-VF031", + "field_key": "pipeline_stage_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF031-P", + "SIT-VF031-N", + "SIT-VF031-M", + "SIT-VF031-B" + ], + "trace_crosswalk_line": 625, + "reporting_field_line": 779, + "validation_field_line": 830 + }, + { + "field_obligation": "SIT-VF032", + "field_key": "stage_member_partition", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "partition", + "field_test_ids_P_N_M_B": [ + "SIT-VF032-P", + "SIT-VF032-N", + "SIT-VF032-M", + "SIT-VF032-B" + ], + "trace_crosswalk_line": 626, + "reporting_field_line": 779, + "validation_field_line": 831 + }, + { + "field_obligation": "SIT-VF033", + "field_key": "stage_occurrence_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "field_test_ids_P_N_M_B": [ + "SIT-VF033-P", + "SIT-VF033-N", + "SIT-VF033-M", + "SIT-VF033-B" + ], + "trace_crosswalk_line": 627, + "reporting_field_line": 779, + "validation_field_line": 832 + }, + { + "field_obligation": "SIT-VF034", + "field_key": "stage_occurrence_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "field_test_ids_P_N_M_B": [ + "SIT-VF034-P", + "SIT-VF034-N", + "SIT-VF034-M", + "SIT-VF034-B" + ], + "trace_crosswalk_line": 628, + "reporting_field_line": 779, + "validation_field_line": 833 + }, + { + "field_obligation": "SIT-VF035", + "field_key": "cohort_transition_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF035-P", + "SIT-VF035-N", + "SIT-VF035-M", + "SIT-VF035-B" + ], + "trace_crosswalk_line": 629, + "reporting_field_line": 779, + "validation_field_line": 834 + }, + { + "field_obligation": "SIT-VF036", + "field_key": "cohort_transition_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "field_test_ids_P_N_M_B": [ + "SIT-VF036-P", + "SIT-VF036-N", + "SIT-VF036-M", + "SIT-VF036-B" + ], + "trace_crosswalk_line": 630, + "reporting_field_line": 779, + "validation_field_line": 835 + }, + { + "field_obligation": "SIT-VF037", + "field_key": "cohort_transition_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "field_test_ids_P_N_M_B": [ + "SIT-VF037-P", + "SIT-VF037-N", + "SIT-VF037-M", + "SIT-VF037-B" + ], + "trace_crosswalk_line": 631, + "reporting_field_line": 779, + "validation_field_line": 836 + }, + { + "field_obligation": "SIT-VF038", + "field_key": "declared_correction_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "field_test_ids_P_N_M_B": [ + "SIT-VF038-P", + "SIT-VF038-N", + "SIT-VF038-M", + "SIT-VF038-B" + ], + "trace_crosswalk_line": 632, + "reporting_field_line": 780, + "validation_field_line": 842 + }, + { + "field_obligation": "SIT-VF039", + "field_key": "applicable_authorized_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "field_test_ids_P_N_M_B": [ + "SIT-VF039-P", + "SIT-VF039-N", + "SIT-VF039-M", + "SIT-VF039-B" + ], + "trace_crosswalk_line": 633, + "reporting_field_line": 780, + "validation_field_line": 843 + }, + { + "field_obligation": "SIT-VF040", + "field_key": "correction_route_disclosures", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF040-P", + "SIT-VF040-N", + "SIT-VF040-M", + "SIT-VF040-B" + ], + "trace_crosswalk_line": 634, + "reporting_field_line": 780, + "validation_field_line": 844 + }, + { + "field_obligation": "SIT-VF041", + "field_key": "correction_case_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF041-P", + "SIT-VF041-N", + "SIT-VF041-M", + "SIT-VF041-B" + ], + "trace_crosswalk_line": 635, + "reporting_field_line": 781, + "validation_field_line": 850 + }, + { + "field_obligation": "SIT-VF042", + "field_key": "handling_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF042-P", + "SIT-VF042-N", + "SIT-VF042-M", + "SIT-VF042-B" + ], + "trace_crosswalk_line": 636, + "reporting_field_line": 781, + "validation_field_line": 851 + }, + { + "field_obligation": "SIT-VF043", + "field_key": "linked_change_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF043-P", + "SIT-VF043-N", + "SIT-VF043-M", + "SIT-VF043-B" + ], + "trace_crosswalk_line": 637, + "reporting_field_line": 781, + "validation_field_line": 852 + }, + { + "field_obligation": "SIT-VF044", + "field_key": "documentary_linked_change_target_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF044-P", + "SIT-VF044-N", + "SIT-VF044-M", + "SIT-VF044-B" + ], + "trace_crosswalk_line": 638, + "reporting_field_line": 781, + "validation_field_line": 853 + }, + { + "field_obligation": "SIT-VF045", + "field_key": "cases_with_documentary_linked_change_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "field_test_ids_P_N_M_B": [ + "SIT-VF045-P", + "SIT-VF045-N", + "SIT-VF045-M", + "SIT-VF045-B" + ], + "trace_crosswalk_line": 639, + "reporting_field_line": 781, + "validation_field_line": 854 + }, + { + "field_obligation": "SIT-VF046", + "field_key": "correction_case_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF046-P", + "SIT-VF046-N", + "SIT-VF046-M", + "SIT-VF046-B" + ], + "trace_crosswalk_line": 640, + "reporting_field_line": 781, + "validation_field_line": 855 + }, + { + "field_obligation": "SIT-VF047", + "field_key": "correction_target_change_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF047-P", + "SIT-VF047-N", + "SIT-VF047-M", + "SIT-VF047-B" + ], + "trace_crosswalk_line": 641, + "reporting_field_line": 781, + "validation_field_line": 856 + }, + { + "field_obligation": "SIT-VF048", + "field_key": "reported_capacity_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF048-P", + "SIT-VF048-N", + "SIT-VF048-M", + "SIT-VF048-B" + ], + "trace_crosswalk_line": 642, + "reporting_field_line": 781, + "validation_field_line": 857 + }, + { + "field_obligation": "SIT-VF049", + "field_key": "corrective_independence_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF049-P", + "SIT-VF049-N", + "SIT-VF049-M", + "SIT-VF049-B" + ], + "trace_crosswalk_line": 643, + "reporting_field_line": 782, + "validation_field_line": 863 + }, + { + "field_obligation": "SIT-VF050", + "field_key": "human_contribution_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF050-P", + "SIT-VF050-N", + "SIT-VF050-M", + "SIT-VF050-B" + ], + "trace_crosswalk_line": 644, + "reporting_field_line": 782, + "validation_field_line": 864 + }, + { + "field_obligation": "SIT-VF051", + "field_key": "anomaly_context_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF051-P", + "SIT-VF051-N", + "SIT-VF051-M", + "SIT-VF051-B" + ], + "trace_crosswalk_line": 645, + "reporting_field_line": 783, + "validation_field_line": 870 + }, + { + "field_obligation": "SIT-VF052", + "field_key": "contestation_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF052-P", + "SIT-VF052-N", + "SIT-VF052-M", + "SIT-VF052-B" + ], + "trace_crosswalk_line": 646, + "reporting_field_line": 783, + "validation_field_line": 871 + }, + { + "field_obligation": "SIT-VF053", + "field_key": "tail_stage_result_links", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF053-P", + "SIT-VF053-N", + "SIT-VF053-M", + "SIT-VF053-B" + ], + "trace_crosswalk_line": 647, + "reporting_field_line": 783, + "validation_field_line": 872 + }, + { + "field_obligation": "SIT-VF054", + "field_key": "coverage_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF054-P", + "SIT-VF054-N", + "SIT-VF054-M", + "SIT-VF054-B" + ], + "trace_crosswalk_line": 648, + "reporting_field_line": 784, + "validation_field_line": 878 + }, + { + "field_obligation": "SIT-VF055", + "field_key": "documentary_basis_gap_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "field_test_ids_P_N_M_B": [ + "SIT-VF055-P", + "SIT-VF055-N", + "SIT-VF055-M", + "SIT-VF055-B" + ], + "trace_crosswalk_line": 649, + "reporting_field_line": 784, + "validation_field_line": 879 + }, + { + "field_obligation": "SIT-VF056", + "field_key": "declared_basis_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "field_test_ids_P_N_M_B": [ + "SIT-VF056-P", + "SIT-VF056-N", + "SIT-VF056-M", + "SIT-VF056-B" + ], + "trace_crosswalk_line": 650, + "reporting_field_line": 784, + "validation_field_line": 880 + }, + { + "field_obligation": "SIT-VF057", + "field_key": "reference_availability_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "field_test_ids_P_N_M_B": [ + "SIT-VF057-P", + "SIT-VF057-N", + "SIT-VF057-M", + "SIT-VF057-B" + ], + "trace_crosswalk_line": 651, + "reporting_field_line": 784, + "validation_field_line": 881 + } + ], + "field_obligations": [ + { + "test_id": "SIT-VF001-P", + "field_id": "SIT-VF001", + "field_key": "nominal_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 755, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 6, with A(I1) exactly A-F; support files, ancestors and after-versions are excluded." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/0", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/0/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF001-N", + "field_id": "SIT-VF001", + "field_key": "nominal_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 755, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: use the dossier-wide Artifact inventory or count five visible domains as five independent observations; reject the mutant." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/1", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/1/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF001-M", + "field_id": "SIT-VF001", + "field_key": "nominal_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 755, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Valid artifact-only Inquiry with no artifact seeds: available 0 for its explicit empty inventory, never zero real-world sources." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/2", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/2/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF001-B", + "field_id": "SIT-VF001", + "field_key": "nominal_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 755, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-11/W7-16: one Artifact used by several claim contributions counts once in the inquiry union; keep its claim-level roles separate." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/3", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/3/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF002-P", + "field_id": "SIT-VF002", + "field_key": "unresolved_seed_artifact_reference_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 756, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Derived sparse case: one explicit unresolved Artifact seed reference gives 1; its expected kind does not instantiate an Artifact." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/4", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/4/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF002-N", + "field_id": "SIT-VF002", + "field_key": "unresolved_seed_artifact_reference_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 756, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: H7-V02 gives 1 because an upstream EvidenceItem is unknown; reject, since the required value is 0." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/5", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/5/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF002-M", + "field_id": "SIT-VF002", + "field_key": "unresolved_seed_artifact_reference_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 756, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No unresolved Artifact seed positions in H7-01: available 0, even if some unrelated model ancestry is partial." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/6", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/6/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF002-B", + "field_id": "SIT-VF002", + "field_key": "unresolved_seed_artifact_reference_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 756, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Two contribution links to the same unresolved Artifact ID retain one distinct unresolved artifact-reference position in the seed inventory, without inventing its identity." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/7", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/7/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF003-P", + "field_id": "SIT-VF003", + "field_key": "seed_evidence_item_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 757, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 6, with the six exact Claim-bound seed EvidenceItem IDs." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/8", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/8/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF003-N", + "field_id": "SIT-VF003", + "field_key": "seed_evidence_item_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 757, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: add the non-seed ER1, a support Artifact, or a second path as a seed; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/9", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/9/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF003-M", + "field_id": "SIT-VF003", + "field_key": "seed_evidence_item_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 757, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Valid Inquiry with empty seed_evidence_refs: available 0 for the selected Claim; associated origin ratios have no seed denominator." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/10", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/10/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF003-B", + "field_id": "SIT-VF003", + "field_key": "seed_evidence_item_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 757, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-16: three explicitly separate contributions from two Artifacts give 3; no semantic deduplication." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/11", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/11/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF004-P", + "field_id": "SIT-VF004", + "field_key": "claim_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 758, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01/C1: 6 resolved Artifact versions linked to its seed contributions." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/12", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/12/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF004-N", + "field_id": "SIT-VF004", + "field_key": "claim_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 758, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: collapse two supplied Artifact versions sharing a locator into one without authorization; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/13", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/13/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF004-M", + "field_id": "SIT-VF004", + "field_key": "claim_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 758, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "A selected contribution can have a typed unresolved Artifact: do not count the placeholder as a resolved Artifact; disclose the unresolved position." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/14", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/14/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF004-B", + "field_id": "SIT-VF004", + "field_key": "claim_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 758, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-11: A participates in two Claim-specific populations while appearing once in the inquiry union; verify each exact member set." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/15", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/15/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF005-P", + "field_id": "SIT-VF005", + "field_key": "claim_unassigned_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 759, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Derived artifact-only case: two resolved seed Artifacts lacking any seed EvidenceItem binding in Inquiry I give 2, using Definitions §21.1." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/16", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/16/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF005-N", + "field_id": "SIT-VF005", + "field_key": "claim_unassigned_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 759, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: H7-01 reports all non-seed support files as unassigned seeds; reject; expected 0." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/17", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/17/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF005-M", + "field_id": "SIT-VF005", + "field_key": "claim_unassigned_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 759, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No seed Artifacts in a valid sparse Inquiry: available 0 in the empty seed inventory, without inferring absent outside evidence." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/18", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/18/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF005-B", + "field_id": "SIT-VF005", + "field_key": "claim_unassigned_seed_artifact_record_count", + "family": "SIT-M001", + "primary_trace": "SIT-TR003", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 759, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-11: an Artifact assigned by a seed EvidenceItem to either targeted Claim is assigned within I. Do not label it unassigned merely because the other Claim has no corresponding contribution." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 770 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/19", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/19/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF006-P", + "field_id": "SIT-VF006", + "field_key": "reached_origin_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 765, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01/acquisition: 2, exact set O1/O2, with completed finite witnesses." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/20", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/20/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF006-N", + "field_id": "SIT-VF006", + "field_key": "reached_origin_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 765, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: count a parentless EvidenceItem or unresolved expected OriginEvent as a reached OriginEvent; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/21", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/21/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF006-M", + "field_id": "SIT-VF006", + "field_key": "reached_origin_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 765, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-03: completed supplied trace reaches 0 OriginEvent records; retain one represented frontier and no statement of zero actual origins." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/22", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/22/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF006-B", + "field_id": "SIT-VF006", + "field_key": "reached_origin_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 765, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-14: converging paths to O1 count it once; W7-04 with an exit keeps the reached O1 despite cyclic unresolved ancestry." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/23", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/23/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF007-P", + "field_id": "SIT-VF007", + "field_key": "documentary_origin_boundary_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 766, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 2 documentary-qualified origin boundaries, with OB1/OB2 and their scoped support." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/24", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/24/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF007-N", + "field_id": "SIT-VF007", + "field_key": "documentary_origin_boundary_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 766, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: remove inspectable support for both origin boundaries while retaining their documented_origin labels; the examined qualifying-origin count becomes 0, not 2." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/25", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/25/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF007-M", + "field_id": "SIT-VF007", + "field_key": "documentary_origin_boundary_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 766, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-25: a completed examined view with no qualifying boundary can give available 0 under Definitions §21.2, with basis gaps. The absent stronger real-origin/independence claim is never inferred from that zero." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/26", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/26/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF007-B", + "field_id": "SIT-VF007", + "field_key": "documentary_origin_boundary_record_count", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 766, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-17/W7-18: distinguish documentary, declared, baseline, scope-cut and protected-attestation boundaries; no automatic upgrade from a boundary label." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/27", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/27/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF008-P", + "field_id": "SIT-VF008", + "field_key": "origin_boundary_disclosures", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 767, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: OB1/OB2, their subjects, roles, dimensions, coverage, evidence and qualifications remain attributable." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/28", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/28/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF008-N", + "field_id": "SIT-VF008", + "field_key": "origin_boundary_disclosures", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 767, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: rename a reference_baseline or declared_origin to documented_origin; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/29", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/29/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF008-M", + "field_id": "SIT-VF008", + "field_key": "origin_boundary_disclosures", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 767, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No applicable boundary assessments: show the explicit empty supplied inventory or missing-subject disclosure at its scope; do not invent a root." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/30", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/30/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF008-B", + "field_id": "SIT-VF008", + "field_key": "origin_boundary_disclosures", + "family": "SIT-M002", + "primary_trace": "SIT-TR004", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 767, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Applicable same-dimension upstream parents remain visible beside a termination claim; a deliberate scope cut never hides a known parent." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 771 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/31", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/31/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF009-P", + "field_id": "SIT-VF009", + "field_key": "submitted_comparison_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 773, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-IND12: 2; W7-01 setwise comparison: 3, each under its own assessment ID." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/32", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/32/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF009-N", + "field_id": "SIT-VF009", + "field_key": "submitted_comparison_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 773, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: W7-12 sums two pairs to 4 or replaces them with one three-member comparison; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/33", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/33/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF009-M", + "field_id": "SIT-VF009", + "field_key": "submitted_comparison_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 773, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No comparison assessment: completed/unavailable with missing_comparison_assessment for the requested count, not a zero global total." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/34", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/34/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF009-B", + "field_id": "SIT-VF009", + "field_key": "submitted_comparison_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 773, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A submitted, structurally valid three-member assessment can have size 3 while documentary qualification is unavailable; these are separate Results." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/35", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/35/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF010-P", + "field_id": "SIT-VF010", + "field_key": "qualified_process_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 774, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-IND12: 2 in acquisition with four unexamined dimensions retained." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/36", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/36/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF010-N", + "field_id": "SIT-VF010", + "field_key": "qualified_process_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 774, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: add a relevant denied dependency or reduce process support to a self-declaration; the qualified count must become unavailable while the assessment survives." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/37", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/37/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF010-M", + "field_id": "SIT-VF010", + "field_key": "qualified_process_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 774, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Remove the applicable assessment completely: missing_comparison_assessment; remove only inspectable basis: support_uninspectable or documentary_basis_incomplete as justified." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/38", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/38/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF010-B", + "field_id": "SIT-VF010", + "field_key": "qualified_process_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 774, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-06 qualifies an analytical-method pair of Evaluations; W7-12 never promotes pairwise qualifications to a jointly qualified set." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/39", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/39/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF011-P", + "field_id": "SIT-VF011", + "field_key": "qualified_origin_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 775, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-IND12: 2 only because both specified subjects are documentary OriginEvent boundaries in the same Claim/dimension." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/40", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/40/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF011-N", + "field_id": "SIT-VF011", + "field_key": "qualified_origin_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 775, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: use a qualified pair of Models or Evaluations as two independent origins; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/41", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/41/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF011-M", + "field_id": "SIT-VF011", + "field_key": "qualified_origin_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 775, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Missing comparison or incomplete required boundary qualification leaves the requested qualified count unavailable with its actual blockers." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/42", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/42/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF011-B", + "field_id": "SIT-VF011", + "field_key": "qualified_origin_set_member_count", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 775, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-06: Evaluation subjects make this origin-specific count completed/not_applicable with no_applicable_subject, while the process-member count can remain 2." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/43", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/43/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF012-P", + "field_id": "SIT-VF012", + "field_key": "independence_assessment_disclosures", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 776, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-IND12: preserve comparison_form, exact subjects, native conclusion, examined relations, unexamined dimensions, assessor, method and support." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/44", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/44/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF012-N", + "field_id": "SIT-VF012", + "field_key": "independence_assessment_disclosures", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 776, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: replace supplied independent_process with a tool-authenticated fact or erase a relevant contrary assessment; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/45", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/45/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF012-M", + "field_id": "SIT-VF012", + "field_key": "independence_assessment_disclosures", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 776, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Absent comparison is disclosed as absent from the supplied set; no synthetic singleton assessment or affirmative independence is created." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/46", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/46/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF012-B", + "field_id": "SIT-VF012", + "field_key": "independence_assessment_disclosures", + "family": "SIT-M003", + "primary_trace": "SIT-TR005", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 776, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Retain multiple conflicting, pairwise and setwise records separately; neither source prestige nor array order selects a winner." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 772 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/47", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/47/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF013-P", + "field_id": "SIT-VF013", + "field_key": "per_seed_origin_memberships", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 782, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: EA-EE each map to {O1}, EF to {O2}; all six rows preserve their finite witnesses." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/48", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/48/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF013-N", + "field_id": "SIT-VF013", + "field_key": "per_seed_origin_memberships", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 782, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: infer an acquisition parent from only Artifact citations, publisher ownership or generated_by; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/49", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/49/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF013-M", + "field_id": "SIT-VF013", + "field_key": "per_seed_origin_memberships", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 782, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02 keeps EU and its unresolved branch in the seven-row population while the six known rows survive." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/50", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/50/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF013-B", + "field_id": "SIT-VF013", + "field_key": "per_seed_origin_memberships", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 782, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-14's diamond yields {O1}; W7-13's two genuine parent origins yield {O1,O2}; path multiplicity and origin multiplicity differ." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/51", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/51/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF014-P", + "field_id": "SIT-VF014", + "field_key": "origin_incidence_counts", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 783, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: O1 has seed members EA-EE and c_r=5, O2 has EF and c_r=1, with N=6." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/52", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/52/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF014-N", + "field_id": "SIT-VF014", + "field_key": "origin_incidence_counts", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 783, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: normalize H7-V03's counts 6 and 2 into weights summing to one; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/53", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/53/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF014-M", + "field_id": "SIT-VF014", + "field_key": "origin_incidence_counts", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 783, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02: counts 5 and 1 stay tied to N=7 with the unresolved row visible; no known-only denominator 6." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/54", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/54/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF014-B", + "field_id": "SIT-VF014", + "field_key": "origin_incidence_counts", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "incidence", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 783, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "H7-V03: fractions 6/7 and 2/7 are permitted to sum to 8/7; nonexclusive=true and distinct per-origin seed memberships are mandatory." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/55", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/55/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF015-P", + "field_id": "SIT-VF015", + "field_key": "seed_origin_dispositions", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 784, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: counts (unresolved,baseline/scope,declared,multi,single)=(0,0,0,0,6), with exact row memberships." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/56", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/56/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF015-N", + "field_id": "SIT-VF015", + "field_key": "seed_origin_dispositions", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 784, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: a seed containing a known origin plus an unknown or disputed branch is assigned single_documented_origin; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/57", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/57/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF015-M", + "field_id": "SIT-VF015", + "field_key": "seed_origin_dispositions", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 784, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02: (1,0,0,0,6); unknown evidence remains in N rather than being omitted." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/58", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/58/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF015-B", + "field_id": "SIT-VF015", + "field_key": "seed_origin_dispositions", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 784, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-17 exercises declared/baseline/scope precedence; H7-V03 has (0,0,0,1,6); every seed occupies exactly one governing category." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/59", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/59/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF016-P", + "field_id": "SIT-VF016", + "field_key": "documentary_origin_resolution_fraction", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 785, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 6/6; the numerator counts seeds whose ancestry is documentary-resolved, including fully known multi-origin seeds." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/60", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/60/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF016-N", + "field_id": "SIT-VF016", + "field_key": "documentary_origin_resolution_fraction", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 785, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: H7-V02 reports 6/6 after dropping EU, or H7-V03 treats multiple known origins as unresolved; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/61", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/61/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF016-M", + "field_id": "SIT-VF016", + "field_key": "documentary_origin_resolution_fraction", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 785, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02: 6/7; missing ancestry is counted in the full known population. With no seed population, null with no_seed_contributions/zero_denominator as applicable." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/62", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/62/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF016-B", + "field_id": "SIT-VF016", + "field_key": "documentary_origin_resolution_fraction", + "family": "SIT-M004", + "primary_trace": "SIT-TR006", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 785, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "H7-V03: 7/7 may coexist with unavailable HHI. W7-03: exact 0/2 describes documentary resolution, not zero real origins." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 773 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/63", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/63/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF017-P", + "field_id": "SIT-VF017", + "field_key": "single_origin_contribution_hhi", + "family": "SIT-M005", + "primary_trace": "SIT-TR007", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 791, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: numerator 26, denominator 36, buckets (5,1), N=6; optional decimal 0.722222." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 774 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/64", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/64/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF017-N", + "field_id": "SIT-VF017", + "field_key": "single_origin_contribution_hhi", + "family": "SIT-M005", + "primary_trace": "SIT-TR007", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 791, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: H7-V03 assigns each parent one-half; H7-V02 falls back to 26/36; both violate the full-population gate." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 774 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/65", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/65/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF017-M", + "field_id": "SIT-VF017", + "field_key": "single_origin_contribution_hhi", + "family": "SIT-M005", + "primary_trace": "SIT-TR007", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 791, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02: null with unknown_endpoint and upstream_coverage_incomplete. H7-V03: null with multi_origin_unallocated; retain the corresponding full profile." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 774 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/66", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/66/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF017-B", + "field_id": "SIT-VF017", + "field_key": "single_origin_contribution_hhi", + "family": "SIT-M005", + "primary_trace": "SIT-TR007", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 791, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "H7-V01 gives 25/25; W7-01 gives 3/9; N=0 gives no ratio. Qualification does not require bucket independence or agreement, and no score band is added." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 774 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/67", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/67/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF018-P", + "field_id": "SIT-VF018", + "field_key": "immediate_evidence_layer_dispositions", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 797, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: inherited/direct/mixed/unresolved counts (5,1,0,0)." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/68", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/68/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF018-N", + "field_id": "SIT-VF018", + "field_key": "immediate_evidence_layer_dispositions", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 797, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: H7-V03's inherited E-to-E parents are classified mixed merely because they reach two roots; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/69", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/69/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF018-M", + "field_id": "SIT-VF018", + "field_key": "immediate_evidence_layer_dispositions", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 797, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02: (5,1,0,1). In W7-15 the immediate known copy remains inherited-only despite an unknown distant ancestor." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/70", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/70/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF018-B", + "field_id": "SIT-VF018", + "field_key": "immediate_evidence_layer_dispositions", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 797, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Derived valid seed with both a direct E-to-OriginEvent edge and an inherited E-to-E link is mixed_direct_and_inherited; a diamond with only E parents stays inherited-only." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/71", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/71/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF019-P", + "field_id": "SIT-VF019", + "field_key": "inherited_only_seed_fraction", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 798, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 5/6; H7-V03: 6/7, reflecting the immediate EvidenceItem layer." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/72", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/72/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF019-N", + "field_id": "SIT-VF019", + "field_key": "inherited_only_seed_fraction", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 798, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: count every path or use a text-similarity novelty score as the numerator; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/73", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/73/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF019-M", + "field_id": "SIT-VF019", + "field_key": "inherited_only_seed_fraction", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 798, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-V02: null point fraction because one immediate classification is unresolved; do not use 5/6 or select an interval endpoint." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/74", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/74/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF019-B", + "field_id": "SIT-VF019", + "field_key": "inherited_only_seed_fraction", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 798, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-15: 1/1 despite distant unknown ancestry. For N=0, neither 0/0 nor 100% is allowed." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/75", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/75/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF020-P", + "field_id": "SIT-VF020", + "field_key": "inherited_only_completion_interval", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 799, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-V02: available [5/7,6/7], interval_kind finite_record_completion; retain D/O/M/U and N." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/76", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/76/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF020-N", + "field_id": "SIT-VF020", + "field_key": "inherited_only_completion_interval", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 799, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: label the interval a confidence interval, replace N with resolved members, or collapse it into a point; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/77", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/77/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF020-M", + "field_id": "SIT-VF020", + "field_key": "inherited_only_completion_interval", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 799, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-03: [0/2,2/2] is permitted with known N and unknown classifications. If N is absent/empty, no endpoints may be fabricated." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/78", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/78/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF020-B", + "field_id": "SIT-VF020", + "field_key": "inherited_only_completion_interval", + "family": "SIT-M006", + "primary_trace": "SIT-TR008", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 799, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "H7-01 with U=0: completed/not_applicable and completion_interval_not_needed. The test checks the optional interval when emitted; omission cannot erase the point's required unknowns." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 775 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/79", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/79/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF021-P", + "field_id": "SIT-VF021", + "field_key": "unresolved_frontier_reference_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 805, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "W7-03: one represented UX shared by two seeds gives 1." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/80", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/80/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF021-N", + "field_id": "SIT-VF021", + "field_key": "unresolved_frontier_reference_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 805, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: report two unknown roots because two seeds reach UX; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/81", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/81/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF021-M", + "field_id": "SIT-VF021", + "field_key": "unresolved_frontier_reference_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 805, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7-01 acquisition: available 0 for the completed frontier inventory, with no claim that other dimensions have no gaps." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/82", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/82/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF021-B", + "field_id": "SIT-VF021", + "field_key": "unresolved_frontier_reference_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 805, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A typed unresolved OriginEvent remains one frontier reference regardless of how many unobserved ancestors it might conceal." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/83", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/83/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF022-P", + "field_id": "SIT-VF022", + "field_key": "unqualified_terminal_record_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 806, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Derived complete finite trace ends at one resolved OriginEvent lacking an origin-boundary assessment: count that represented unqualified terminal once." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/84", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/84/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF022-N", + "field_id": "SIT-VF022", + "field_key": "unqualified_terminal_record_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 806, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: treat the terminal as a documentary root because it has no recorded parent; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/85", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/85/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF022-M", + "field_id": "SIT-VF022", + "field_key": "unqualified_terminal_record_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 806, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No qualified boundary evidence leaves the terminal visible and its stronger qualification unavailable; do not manufacture a hidden-origin count." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/86", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/86/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF022-B", + "field_id": "SIT-VF022", + "field_key": "unqualified_terminal_record_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 806, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A shared unqualified terminal reached by two seeds is one terminal with two affected seeds; cycle exits and explicit scope cuts retain their different meanings." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/87", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/87/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF023-P", + "field_id": "SIT-VF023", + "field_key": "seed_items_with_unresolved_ancestry_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 807, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-V02: one affected seed EU; W7-03: two affected seeds through the same UX." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/88", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/88/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF023-N", + "field_id": "SIT-VF023", + "field_key": "seed_items_with_unresolved_ancestry_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 807, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: copy frontier count into affected-seed count; W7-03 must distinguish 1 from 2." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/89", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/89/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF023-M", + "field_id": "SIT-VF023", + "field_key": "seed_items_with_unresolved_ancestry_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 807, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "All selected ancestry unknown: count the explicit affected seeds if the required scope was fully processed; unfinished traversal is not_evaluated." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/90", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/90/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF023-B", + "field_id": "SIT-VF023", + "field_key": "seed_items_with_unresolved_ancestry_count", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 807, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-15 has one unresolved seed even when its immediate-inheritance fraction is 1/1; no dossier-wide metric suppression." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/91", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/91/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF024-P", + "field_id": "SIT-VF024", + "field_key": "ancestry_gap_disclosures", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 808, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-V02 preserves UX/EU, reason, branch witness, expected kind, coverage and affected scope." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/92", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/92/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF024-N", + "field_id": "SIT-VF024", + "field_key": "ancestry_gap_disclosures", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 808, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: replace withheld identity with several apparently independent pseudonyms or erase the gap to complete a trace; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/93", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/93/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF024-M", + "field_id": "SIT-VF024", + "field_key": "ancestry_gap_disclosures", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 808, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Gap-only sparse input stays valid; an external locator remains inert and uninspected rather than filling ancestry." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/94", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/94/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF024-B", + "field_id": "SIT-VF024", + "field_key": "ancestry_gap_disclosures", + "family": "SIT-M007", + "primary_trace": "SIT-TR009", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 808, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-18 preserves known shared opaque references and attestation limits. No global upper bound on concealed roots is produced." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 776 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/95", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/95/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF025-P", + "field_id": "SIT-VF025", + "field_key": "shared_recorded_ancestor_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 814, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EVAL generator/judge: 2 strict common ancestors, exactly MBASE and TRAINING, with partial further history." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/96", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/96/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF025-N", + "field_id": "SIT-VF025", + "field_key": "shared_recorded_ancestor_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 814, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: remove the ancestor edges but keep family labels; count becomes 0 in the completed examined graph, not 1 from the label." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/97", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/97/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF025-M", + "field_id": "SIT-VF025", + "field_key": "shared_recorded_ancestor_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 814, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Missing role bindings or an unresolved role subject leave the corresponding stronger comparison unavailable with roles_incomplete/unknown_endpoint; partial further history preserves positive witnesses." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/98", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/98/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF025-B", + "field_id": "SIT-VF025", + "field_key": "shared_recorded_ancestor_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 814, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-05: 1 strict ancestor. Shared exact role object, one-sided ancestry and shared dataset with differing subset descriptors remain separate disclosures." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/99", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/99/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF026-P", + "field_id": "SIT-VF026", + "field_key": "matching_family_label_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 815, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EVAL: exact common family string H7-family gives 1." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/100", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/100/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF026-N", + "field_id": "SIT-VF026", + "field_key": "matching_family_label_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 815, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: use distinct exact family strings, including a case difference; no fuzzy or provider-based match is permitted." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/101", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/101/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF026-M", + "field_id": "SIT-VF026", + "field_key": "matching_family_label_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 815, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "One family_label unknown: retain its Gap; no label inferred from model_key or provider. Any zero-match inventory remains explicitly limited to inspected supplied labels." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/102", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/102/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF026-B", + "field_id": "SIT-VF026", + "field_key": "matching_family_label_count", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 815, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Several bindings carrying the same exact string do not multiply distinct label matches; a match is never converted into model ancestry or process independence." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/103", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/103/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF027-P", + "field_id": "SIT-VF027", + "field_key": "evaluator_overlap_disclosures", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 816, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EVAL identifies the actual role pair, bound objects, partial history and dataset-level granularity." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/104", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/104/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF027-N", + "field_id": "SIT-VF027", + "field_key": "evaluator_overlap_disclosures", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 816, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: count a common reviewed target as automatically shared review-process ancestry; reject using W7-06." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/105", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/105/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF027-M", + "field_id": "SIT-VF027", + "field_key": "evaluator_overlap_disclosures", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 816, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Missing rubric/training exposure remains unknown beside an independently evidenced procedure comparison; no all-dimensional independence claim." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/106", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/106/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF027-B", + "field_id": "SIT-VF027", + "field_key": "evaluator_overlap_disclosures", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 816, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Same actor in several roles, related Models and shared reference/rubric Artifacts remain distinct types of commonality, with no vote count." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/107", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/107/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF028-P", + "field_id": "SIT-VF028", + "field_key": "evaluator_overlap_witnesses", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 817, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EVAL links the MBASE witness through ML01/ML02 and the TRAINING witness through ML03/ML04." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/108", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/108/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF028-N", + "field_id": "SIT-VF028", + "field_key": "evaluator_overlap_witnesses", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 817, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: fabricate an ancestor path from matching prose or a family label; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/109", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/109/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF028-M", + "field_id": "SIT-VF028", + "field_key": "evaluator_overlap_witnesses", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 817, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No eligible positive path in completed partial history gives only a scoped no-witness result; no universal absence or independence." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/110", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/110/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF028-B", + "field_id": "SIT-VF028", + "field_key": "evaluator_overlap_witnesses", + "family": "SIT-M008", + "primary_trace": "SIT-TR010", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 817, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Finite cycle/diamond witnesses retain ordered edges; an interrupted search cannot be emitted as an empty completed witness set." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 777 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/111", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/111/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF029-P", + "field_id": "SIT-VF029", + "field_key": "externality_assessment_disclosures", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 823, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EXT-F and H7-INT-A retain their different native conclusions, subjects, boundary I1, relevant time, grounding and support." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/112", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/112/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF029-N", + "field_id": "SIT-VF029", + "field_key": "externality_assessment_disclosures", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 823, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: classify a recent human-authored or remote-URL Artifact as external without a matching assessment; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/113", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/113/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF029-M", + "field_id": "SIT-VF029", + "field_key": "externality_assessment_disclosures", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 823, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Absent assessment/grounding: requested qualified externality is unavailable with externality_unestablished; recorded metadata can still be inventoried." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/114", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/114/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF029-B", + "field_id": "SIT-VF029", + "field_key": "externality_assessment_disclosures", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 823, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-10's selection-negative control preserves externality even when use did_not_occur; no scalar Presence or adequate-renewal claim." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/115", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/115/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF030-P", + "field_id": "SIT-VF030", + "field_key": "externality_stage_links", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 824, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EXT-F links to EF's own admission, preservation, selection and influence records with their native states." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/116", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/116/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF030-N", + "field_id": "SIT-VF030", + "field_key": "externality_stage_links", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 824, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: join stage records by similar prose, shared publisher or date rather than actual subject identity/mapping; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/117", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/117/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF030-M", + "field_id": "SIT-VF030", + "field_key": "externality_stage_links", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 824, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Externality supplied without stage records: preserve the assessment and disclose missing links; never infer admission or influence." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/118", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/118/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF030-B", + "field_id": "SIT-VF030", + "field_key": "externality_stage_links", + "family": "SIT-M009", + "primary_trace": "SIT-TR011", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 824, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-10 control preserves external admission and explicit non-selection/non-use. A use record alone cannot supply the other three stages." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 778 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/119", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/119/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF031-P", + "field_id": "SIT-VF031", + "field_key": "pipeline_stage_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 830, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01 preserves all four exact stage keys and each PipelineRecord's state, subject, output, linkage kind and observed time." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/120", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/120/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF031-N", + "field_id": "SIT-VF031", + "field_key": "pipeline_stage_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 830, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: give repeated attempts different stage_key values; they remain separate, with no newest-wins reducer." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/121", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/121/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF031-M", + "field_id": "SIT-VF031", + "field_key": "pipeline_stage_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 830, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Missing stages remain missing; an evidenced influence record can be disclosed without fabricated admission/preservation." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/122", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/122/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF031-B", + "field_id": "SIT-VF031", + "field_key": "pipeline_stage_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 830, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-19 retains duplicate unknown and contradictory source rows; their counting effect differs from retaining the original records." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/123", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/123/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF032-P", + "field_id": "SIT-VF032", + "field_key": "stage_member_partition", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 831, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7 answer-use-1: Y/F/U = 3/2/1, T=6, exact member sets EA/EB/ED, EC/EF, EE." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/124", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/124/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF032-N", + "field_id": "SIT-VF032", + "field_key": "stage_member_partition", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 831, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: remove EE or count duplicate logs as extra cohort members; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/125", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/125/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF032-M", + "field_id": "SIT-VF032", + "field_key": "stage_member_partition", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 831, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-19: 3/1/1 on T=5; a missing member observation is U. An unestablished cohort gives no invented T=0 partition." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/126", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/126/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF032-B", + "field_id": "SIT-VF032", + "field_key": "stage_member_partition", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 831, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Adding unknown beside a supported positive does not alone change Y; adding applicable contrary evidence yields U. Always Y+F+U=T." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/127", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/127/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF033-P", + "field_id": "SIT-VF033", + "field_key": "stage_occurrence_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 832, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7 select-1: 5/6, with U=0 and its own anchored six-member cohort." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/128", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/128/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF033-N", + "field_id": "SIT-VF033", + "field_key": "stage_occurrence_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 832, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: main influence reports 3/5 after omitting unknown EE; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/129", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/129/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF033-M", + "field_id": "SIT-VF033", + "field_key": "stage_occurrence_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 832, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7 influence with U=1: completed/unavailable, stage_classification_unresolved. Missing/ambiguous cohort anchors withhold the fraction independently of individual logs." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/130", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/130/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF033-B", + "field_id": "SIT-VF033", + "field_key": "stage_occurrence_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 832, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A known empty population gives zero inventory but no ratio. An eligible all-negative nonempty cohort can give 0/T." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/131", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/131/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF034-P", + "field_id": "SIT-VF034", + "field_key": "stage_occurrence_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 833, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7 influence: [3/6,4/6], finite_cohort_completion; W7-19: [3/5,4/5]." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/132", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/132/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF034-N", + "field_id": "SIT-VF034", + "field_key": "stage_occurrence_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 833, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: call an endpoint a measured use rate, or use a denominator excluding unknowns; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/133", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/133/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF034-M", + "field_id": "SIT-VF034", + "field_key": "stage_occurrence_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 833, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Without a valid explicit cohort, no interval is available. Missing member classifications within a known cohort stay in U." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/134", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/134/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF034-B", + "field_id": "SIT-VF034", + "field_key": "stage_occurrence_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 833, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "U=0 makes this completed/not_applicable with completion_interval_not_needed; an emitted optional interval must use the same population as the point field." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/135", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/135/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF035-P", + "field_id": "SIT-VF035", + "field_key": "cohort_transition_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 834, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7 intake-1 to store-1 and intake-1 to select-1 disclose distinct valid pairs with identical member IDs and fully evidenced admission." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/136", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/136/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF035-N", + "field_id": "SIT-VF035", + "field_key": "cohort_transition_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 834, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: keep target logs but add a competing admission baseline; transition becomes unestablished while standalone stage results survive." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/137", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/137/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF035-M", + "field_id": "SIT-VF035", + "field_key": "cohort_transition_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 834, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No admission cohort: target stage disclosures remain, but transition_baseline_unestablished prohibits inventing retention." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/138", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/138/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF035-B", + "field_id": "SIT-VF035", + "field_key": "cohort_transition_disclosures", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 834, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "No admission-to-influence transition is created. Changed output-version IDs may be disclosed but cannot silently replace the counted subject cohort." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/139", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/139/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF036-P", + "field_id": "SIT-VF036", + "field_key": "cohort_transition_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 835, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7 intake-1 to select-1: 5/6 under the unique compatible evidenced baseline." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/140", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/140/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF036-N", + "field_id": "SIT-VF036", + "field_key": "cohort_transition_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 835, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: one baseline member lacks positive admission, or target cohort changes membership; transition withheld without suppressing standalone target fraction." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/141", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/141/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF036-M", + "field_id": "SIT-VF036", + "field_key": "cohort_transition_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 835, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No compatible baseline/target pair: null with transition_baseline_unestablished and other actual cohort blockers." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/142", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/142/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF036-B", + "field_id": "SIT-VF036", + "field_key": "cohort_transition_fraction", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "fraction", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 835, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Derived W7-19 target linked to a valid fully admitted same-member baseline has unresolved transition point; target U=0 permits its exact fraction." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/143", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/143/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF037-P", + "field_id": "SIT-VF037", + "field_key": "cohort_transition_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 836, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Derived W7-19: add only a unique qualified all-admitted baseline with the same five members; target U=1 permits [3/5,4/5]." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/144", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/144/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF037-N", + "field_id": "SIT-VF037", + "field_key": "cohort_transition_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 836, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: copy a target interval into a transition whose baseline is ambiguous or has different members; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/145", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/145/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF037-M", + "field_id": "SIT-VF037", + "field_key": "cohort_transition_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 836, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No qualifying baseline: no endpoints; individual target stage interval can remain available at its own scope." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/146", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/146/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF037-B", + "field_id": "SIT-VF037", + "field_key": "cohort_transition_completion_interval", + "family": "SIT-M010", + "primary_trace": "SIT-TR012", + "value_kind": "completion_interval", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 836, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "H7 exact eligible transitions: completed/not_applicable with completion_interval_not_needed. Influence remains outside this restricted transition's subject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 779 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/147", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/147/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF038-P", + "field_id": "SIT-VF038", + "field_key": "declared_correction_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 842, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-CHANNEL yields four separate target/amend tuples through one channel, using canonical target links." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/148", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/148/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF038-N", + "field_id": "SIT-VF038", + "field_key": "declared_correction_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 842, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: turn four target tuples or several walks through a routing cycle into four independent channels; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/149", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/149/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF038-M", + "field_id": "SIT-VF038", + "field_key": "declared_correction_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 842, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No eligible route in partial supplied history gives only route_not_recorded/bounded no-witness meaning; no global impossibility." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/150", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/150/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF038-B", + "field_id": "SIT-VF038", + "field_key": "declared_correction_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 842, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Derived two-leg propagates_to chain must match target/action/time per leg; finite route witnesses survive cycles without enumerating infinite walks." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/151", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/151/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF039-P", + "field_id": "SIT-VF039", + "field_key": "applicable_authorized_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 843, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7's four amend tuples qualify under H7-AUTH's stated target/window and supplied grant basis." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/152", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/152/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF039-N", + "field_id": "SIT-VF039", + "field_key": "applicable_authorized_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 843, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Input delta: in a two-leg route remove or change the grant on one required leg; declared route survives, stronger authorized witness does not." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/153", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/153/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF039-M", + "field_id": "SIT-VF039", + "field_key": "applicable_authorized_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 843, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-21: absent/unknown authority yields authority_unestablished; review-only grant yields authority_inapplicable for amend." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/154", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/154/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF039-B", + "field_id": "SIT-VF039", + "field_key": "applicable_authorized_route_witnesses", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "witness_collection", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 843, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A1's grant never automatically applies to A2. Date-only/unknown times limit time-specific qualification; separately documented historical change remains visible." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/155", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/155/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF040-P", + "field_id": "SIT-VF040", + "field_key": "correction_route_disclosures", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 844, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Keep channel, target, action, declared path, grant scope and actual time/coverage limits together." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/156", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/156/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF040-N", + "field_id": "SIT-VF040", + "field_key": "correction_route_disclosures", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 844, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: a contact mailbox or owner identity is presented as institutional authority or an observed correction; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/157", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/157/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF040-M", + "field_id": "SIT-VF040", + "field_key": "correction_route_disclosures", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 844, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-09 with declared channel but incomplete grants retains the declaration and its unknown applicability." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/158", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/158/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF040-B", + "field_id": "SIT-VF040", + "field_key": "correction_route_disclosures", + "family": "SIT-M011", + "primary_trace": "SIT-TR013", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 844, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Explicitly denied, expired or unknown grant values remain attributed; no newest-wins or prestige-based route adjudication." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 780 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/159", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/159/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF041-P", + "field_id": "SIT-VF041", + "field_key": "correction_case_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 850, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 1 submission CASE1." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/160", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/160/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF041-N", + "field_id": "SIT-VF041", + "field_key": "correction_case_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 850, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: sum submission, handling and change events as five cases; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/161", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/161/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF041-M", + "field_id": "SIT-VF041", + "field_key": "correction_case_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 850, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Explicit empty supplied case inventory gives available 0 in that scope; no zero real corrective capacity conclusion." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/162", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/162/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF041-B", + "field_id": "SIT-VF041", + "field_key": "correction_case_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 850, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "One submission with several handling outcomes remains one case; separate submissions targeting the same Artifact remain separate cases." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/163", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/163/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF042-P", + "field_id": "SIT-VF042", + "field_key": "handling_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 851, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 1 HAND1; W7-22: 2 handling-event IDs." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/164", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/164/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF042-N", + "field_id": "SIT-VF042", + "field_key": "handling_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 851, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: collapse accepted and failed records into a single latest-state event or count their categories as cases; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/165", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/165/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF042-M", + "field_id": "SIT-VF042", + "field_key": "handling_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 851, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No handling event for a submitted case: exact 0 records, without inferring neglect or failure." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/166", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/166/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF042-B", + "field_id": "SIT-VF042", + "field_key": "handling_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 851, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Repeat outcome values with distinct event IDs remain distinct records; exact duplicate IDs are input errors handled before analysis." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/167", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/167/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF043-P", + "field_id": "SIT-VF043", + "field_key": "linked_change_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 852, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 3 change-event IDs linked to CASE1." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/168", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/168/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF043-N", + "field_id": "SIT-VF043", + "field_key": "linked_change_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 852, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: count an accepted request or an unrelated later Artifact version as a linked change event; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/169", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/169/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF043-M", + "field_id": "SIT-VF043", + "field_key": "linked_change_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 852, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No change events: 0 supplied events; a requested documentary effect is separately unavailable with change_evidence_missing." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/170", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/170/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF043-B", + "field_id": "SIT-VF043", + "field_key": "linked_change_event_record_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 852, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-22: two event IDs for one before-target give 2 events even when only one distinct documentary target qualifies." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/171", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/171/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF044-P", + "field_id": "SIT-VF044", + "field_key": "documentary_linked_change_target_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 853, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 3 distinct (CASE1,before_ref) pairs, including the root export and A/D." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/172", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/172/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF044-N", + "field_id": "SIT-VF044", + "field_key": "documentary_linked_change_target_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 853, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: W7-22 counts two events for the same pair as two documentary targets; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/173", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/173/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF044-M", + "field_id": "SIT-VF044", + "field_key": "documentary_linked_change_target_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 853, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "An unresolved before/after or unsupported linkage remains an event inventory but does not enter this qualified-target set; disclose before_after_unresolved or basis gap." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/174", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/174/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF044-B", + "field_id": "SIT-VF044", + "field_key": "documentary_linked_change_target_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 853, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Supported removal with after_ref null and explicit absence reason may qualify; unknown after-state cannot. Distinct cases on one target remain distinct case/target pairs." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/175", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/175/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF045-P", + "field_id": "SIT-VF045", + "field_key": "cases_with_documentary_linked_change_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 854, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-01: 1 case having at least one qualified linked target." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/176", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/176/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF045-N", + "field_id": "SIT-VF045", + "field_key": "cases_with_documentary_linked_change_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 854, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: report 3 because CASE1 has three changed targets; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/177", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/177/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF045-M", + "field_id": "SIT-VF045", + "field_key": "cases_with_documentary_linked_change_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 854, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Submission/handling without documentary change: exact 0 qualifying cases in the finite inventory, without turning the accepted request into a failed correction." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/178", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/178/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF045-B", + "field_id": "SIT-VF045", + "field_key": "cases_with_documentary_linked_change_count", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "count", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 854, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Several changed targets in one case count once; two cases with supported changes to one target count twice." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/179", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/179/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF046-P", + "field_id": "SIT-VF046", + "field_key": "correction_case_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 855, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7 CASE1/HAND1 preserves proposed correction and native accepted outcome with provenance." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/180", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/180/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF046-N", + "field_id": "SIT-VF046", + "field_key": "correction_case_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 855, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: W7-22 replaces native failed with runtime failure or deletes the earlier accepted record; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/181", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/181/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF046-M", + "field_id": "SIT-VF046", + "field_key": "correction_case_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 855, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-09 preserves missing change evidence and, in its negative-observation variant, the separate attributed review observation." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/182", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/182/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF046-B", + "field_id": "SIT-VF046", + "field_key": "correction_case_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 855, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Reasoned rejection shows handling without proving the objection false. No newest-wins final status or correction_success_rate is introduced." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/183", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/183/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF047-P", + "field_id": "SIT-VF047", + "field_key": "correction_target_change_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 856, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7: R1-V1/A/D have supported before/after linkage; E is explicitly undocumented in the selected target set." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/184", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/184/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF047-N", + "field_id": "SIT-VF047", + "field_key": "correction_target_change_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 856, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: classify E as failed or silently add B/C to the selected correction denominator; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/185", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/185/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF047-M", + "field_id": "SIT-VF047", + "field_key": "correction_target_change_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 856, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Target without documentary linkage: requested effect unavailable with change_evidence_missing, while zero supplied event inventory remains distinct." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/186", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/186/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF047-B", + "field_id": "SIT-VF047", + "field_key": "correction_target_change_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 856, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-21's known change survives missing route authority. A supported retraction and an unresolved after-version produce different disclosures." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/187", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/187/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF048-P", + "field_id": "SIT-VF048", + "field_key": "reported_capacity_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 857, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Derived capacity assessment preserves its supplied strings, unit, horizon, load, assessor and limitations exactly." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/188", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/188/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF048-N", + "field_id": "SIT-VF048", + "field_key": "reported_capacity_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 857, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: parse '10 cases/day' into a utilization/adequacy score or infer capacity from three changes; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/189", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/189/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF048-M", + "field_id": "SIT-VF048", + "field_key": "reported_capacity_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 857, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7 has no capacity assessment: disclose empty supplied inventory and no estimate; do not report zero capacity." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/190", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/190/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF048-B", + "field_id": "SIT-VF048", + "field_key": "reported_capacity_disclosures", + "family": "SIT-M012", + "primary_trace": "SIT-TR014", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 857, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Withheld/null string with required Gap remains unknown. Incompatible horizons/units remain separate reported assessments with no numerical normalization." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 781 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/191", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/191/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF049-P", + "field_id": "SIT-VF049", + "field_key": "corrective_independence_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 863, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "W7-06 preserves the qualified analytical-method comparison of V1/V2 with training/rubric dimensions explicitly unexamined." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/192", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/192/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF049-N", + "field_id": "SIT-VF049", + "field_key": "corrective_independence_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 863, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: a human title, different employer, or separate model endpoint becomes independent corrective capacity; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/193", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/193/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF049-M", + "field_id": "SIT-VF049", + "field_key": "corrective_independence_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 863, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "H7 HREVIEW lacks the relevant comparison: missing_comparison_assessment; its substantive human contribution remains separately available." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/194", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/194/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF049-B", + "field_id": "SIT-VF049", + "field_key": "corrective_independence_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 863, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Known shared reviewed object may coexist with different method procedures; an unresolved relevant dependency blocks only the affected qualification." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/195", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/195/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF050-P", + "field_id": "SIT-VF050", + "field_key": "human_contribution_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 864, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-HREVIEW includes the actual recorded human reasoning/contribution, reviewer role, method/result and CORR basis." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/196", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/196/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF050-N", + "field_id": "SIT-VF050", + "field_key": "human_contribution_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 864, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: a software_agent or organization alone is treated as the human_reviewer role; structurally invalid bindings must be rejected." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/197", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/197/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF050-M", + "field_id": "SIT-VF050", + "field_key": "human_contribution_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 864, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Human role with review_contribution null and a valid Gap remains valid but does not become substantive documented contribution." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/198", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/198/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF050-B", + "field_id": "SIT-VF050", + "field_key": "human_contribution_disclosures", + "family": "SIT-M013", + "primary_trace": "SIT-TR015", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 864, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Protected human reference can retain inspectable attestation and contribution limits. One recorded review never proves a renewable judgment stream." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 782 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/199", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/199/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF051-P", + "field_id": "SIT-VF051", + "field_key": "anomaly_context_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 870, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-AN1 retains original timing concern, unclassified state and null Claim binding." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/200", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/200/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF051-N", + "field_id": "SIT-VF051", + "field_key": "anomaly_context_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 870, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: force AN1 into C1, erase original context or assign rarity/ideology from prose; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/201", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/201/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF051-M", + "field_id": "SIT-VF051", + "field_key": "anomaly_context_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 870, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Protected context with valid reference/Gap stays admissible; withheld content limits disclosure rather than being reconstructed." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/202", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/202/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF051-B", + "field_id": "SIT-VF051", + "field_key": "anomaly_context_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 870, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A caller_classified anomaly retains its caller label; it cannot change the canonical taxonomy or become a truth verdict." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/203", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/203/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF052-P", + "field_id": "SIT-VF052", + "field_key": "contestation_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 871, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7-EF's contradiction of C1 is preserved beside its separate acquisition evidence and all other seed stances." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/204", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/204/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF052-N", + "field_id": "SIT-VF052", + "field_key": "contestation_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 871, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: remove EF from the six-source population or lower its integrity because it disagrees; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/205", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/205/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF052-M", + "field_id": "SIT-VF052", + "field_key": "contestation_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 871, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "No stance records in a named finite set gives no supplied contestation; it cannot establish agreement, consensus or no outside contradiction." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/206", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/206/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF052-B", + "field_id": "SIT-VF052", + "field_key": "contestation_disclosures", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 871, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "W7-07 factual disagreement alone does not dispute acquisition; explicit competing provenance assertions retain their separate scope." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/207", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/207/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF053-P", + "field_id": "SIT-VF053", + "field_key": "tail_stage_result_links", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 872, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "Link the actual eligible M010 results for the stated tail/anomaly cohort; H7 EF's exclusion is not relabeled as whole-anomaly retention." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/208", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/208/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF053-N", + "field_id": "SIT-VF053", + "field_key": "tail_stage_result_links", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 872, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: duplicate M010 numerators as an independent second metric, or use final-only records to infer suppression; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/209", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/209/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF053-M", + "field_id": "SIT-VF053", + "field_key": "tail_stage_result_links", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 872, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "W7-20 lacks an intake cohort: retain context but no retention fraction; explain cohort_anchor_missing/cohort_universe_unestablished." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/210", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/210/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF053-B", + "field_id": "SIT-VF053", + "field_key": "tail_stage_result_links", + "family": "SIT-M014", + "primary_trace": "SIT-TR016", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 872, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "An explicitly supplied Anomaly cohort can use M010's rules; altered source seeds do not alter its independently anchored membership." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 783 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/211", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/211/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF054-P", + "field_id": "SIT-VF054", + "field_key": "coverage_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 878, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7: all eight coverage assessments, including partial model history, retain kind, subjects, predicates, dimensions, members, omissions and basis." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/212", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/212/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF054-N", + "field_id": "SIT-VF054", + "field_key": "coverage_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 878, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: apply complete acquisition coverage as complete model/correction history; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/213", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/213/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF054-M", + "field_id": "SIT-VF054", + "field_key": "coverage_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 878, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Missing coverage remains unknown for dependent exhaustive results; preserve positive scoped witnesses without inventing completeness." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/214", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/214/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF054-B", + "field_id": "SIT-VF054", + "field_key": "coverage_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 878, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "A complete_for_scope label contradicted by an unknown branch remains attributed with its inconsistency; it does not delete the branch." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/215", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/215/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF055-P", + "field_id": "SIT-VF055", + "field_key": "documentary_basis_gap_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 879, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "W7-25 identifies uninspectable locator-only support or self-supporting assurance separately from the original documented_record label." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/216", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/216/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF055-N", + "field_id": "SIT-VF055", + "field_key": "documentary_basis_gap_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 879, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: replace the native basis label or silently fetch a URL to fill the gap; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/217", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/217/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF055-M", + "field_id": "SIT-VF055", + "field_key": "documentary_basis_gap_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 879, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "Missing asserter/method/support triggers the corresponding qualification gaps, rather than provenance rejection if explicit nullable/Gaps satisfy input rules." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/218", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/218/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF055-B", + "field_id": "SIT-VF055", + "field_key": "documentary_basis_gap_disclosures", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "record_disclosures", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 879, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Protected visible attestation and withheld underlying material have different availability; a pointer loop cannot authenticate itself." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/219", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/219/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF056-P", + "field_id": "SIT-VF056", + "field_key": "declared_basis_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 880, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7's named L01-L07 population: seven documented_record labels, zero other categories." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/220", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/220/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF056-N", + "field_id": "SIT-VF056", + "field_key": "declared_basis_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 880, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: inventory only documentary-qualified assertions while claiming to count declared basis, or upgrade upstream_inference to direct observation; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/221", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/221/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF056-M", + "field_id": "SIT-VF056", + "field_key": "declared_basis_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 880, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "A valid explicit empty selected assertion population has all zero category counts, not an absent-history percentage." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/222", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/222/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF056-B", + "field_id": "SIT-VF056", + "field_key": "declared_basis_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 880, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Exercise all five basis_kind values; counts sum to the named record population while qualification outcomes may differ." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/223", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/223/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF057-P", + "field_id": "SIT-VF057", + "field_key": "reference_availability_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 881, + "section": "12", + "cell_index": 1, + "kind": "positive", + "text": "H7's selected eight SUP references: supplied=8 and other availability categories=0." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/224", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/224/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF057-N", + "field_id": "SIT-VF057", + "field_key": "reference_availability_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 881, + "section": "12", + "cell_index": 2, + "kind": "negative", + "text": "Output mutant: locator_only or withheld content becomes supplied because a URL/artifact pointer exists; reject." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/225", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/225/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF057-M", + "field_id": "SIT-VF057", + "field_key": "reference_availability_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 881, + "section": "12", + "cell_index": 3, + "kind": "missing_information", + "text": "An explicit empty reference population yields zero inventories; absent inspectable content for a required claim remains a separate gap." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/226", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/226/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + }, + { + "test_id": "SIT-VF057-B", + "field_id": "SIT-VF057", + "field_key": "reference_availability_inventory", + "family": "SIT-M015", + "primary_trace": "SIT-TR017", + "value_kind": "partition", + "obligation_source": { + "document": "VALIDATION_PLAN.md", + "line": 881, + "section": "12", + "cell_index": 4, + "kind": "boundary", + "text": "Exercise supplied/locator_only/withheld/unavailable, preserving protected attestation's visible summary versus hidden underlying reference as separate records." + }, + "reporting_source": { + "document": "OBSERVABILITY_AND_REPORTING.md", + "section": "17", + "line": 784 + }, + "core_evidence": { + "status": "inherited_private_core_reference_only", + "accepted_baseline": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "path": "phase3/obligation_coverage.json", + "json_pointer": "/field_obligations/227", + "recorded_core_status": "owner_local_core_verified", + "w14_verification_pointer": "/field_obligations/227/w14_verification", + "limitation": "Accepted private-core evidence is inherited. This reference neither reruns it nor closes public-envelope, rendering or release clauses." + }, + "public_envelope": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "rendering": { + "status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + "file_and_release": { + "status": "deferred_as_applicable", + "scope": "Applicable file-mode, native-publication and release clauses stay open beyond Phase 4.", + "execution_evidence": [] + } + } + ], + "projection_clauses": [ + { + "clause": "root_and_run", + "source": "OBSERVABILITY_AND_REPORTING.md §§12.2,16.1,16.8; PHASE_4_PLAN.md §4.1", + "planned_unit": "P4-W02", + "required_behavior": "Exactly 16 root members and only permitted report/run/input-state pairings; diagnostic envelopes have empty analytical arrays; actual installed tool identity and fixed unknown times.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "frozen_public_access", + "source": "PHASE_4_PLAN.md §4.1", + "planned_unit": "P4-W02", + "required_behavior": "Read-only root attributes, immutable Mapping nested objects, tuple arrays, bounded native scalar types, immutable cached encoded bytes; no raw source, budget, prepared tree or private backing exposed.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "scope_and_population", + "source": "OBSERVABILITY_AND_REPORTING.md §§16.2–16.3; PHASE_4_PLAN.md §4.2", + "planned_unit": "P4-W03", + "required_behavior": "Exact claims, targets, dimension, graph view, time, population unit, member sets and coverage preserved; empty enumerated and unestablished remain distinct; operation anchor remains private.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "result_semantics", + "source": "OBSERVABILITY_AND_REPORTING.md §§12.3–12.5,16.4–16.5,17", + "planned_unit": "P4-W03", + "required_behavior": "Preserve all 57 registered leaves, allowed execution/result-state pairs, native attribution, null non-results, original exact fractions, denominators, members and material reasons.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "local_ids_and_dedup", + "source": "REPOSITORY_ARCHITECTURE.md §18.1; GOVERNANCE_AND_HANDOFF.md §22.5", + "planned_unit": "P4-W03", + "required_behavior": "Constant SIT-RPT-000001; eight existing sequential ID prefixes; semantic-key ordering, full-body dedup, anchor link cycles, distinct source IDs and unequal-slot failure.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "five_global_domains", + "source": "OBSERVABILITY_AND_REPORTING.md §15; PHASE_4_PLAN.md §4.2", + "planned_unit": "P4-W03", + "required_behavior": "Aggregate private per-inquiry domains into exactly five report-global audit entries; preserve the six named domain members and avoid adding a not_applicable domain field.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "capability_partitions", + "source": "OBSERVABILITY_AND_REPORTING.md §16.7", + "planned_unit": "P4-W03", + "required_behavior": "All 15 families per inquiry, scope-local prerequisite instances and exact four-way result partitions; no strongest-child summary or global completion shortcut.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "basis_projection", + "source": "OBSERVABILITY_AND_REPORTING.md §16.6; PRIVACY_AND_DATA_HANDLING.md §4.2", + "planned_unit": "P4-W04", + "required_behavior": "Bounded explicit selection of source-native basis, attestor/asserter, method, support, availability, time/lifecycle and qualifications with actual checks; no requalification or full-record export.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "witness_finding_links", + "source": "OBSERVABILITY_AND_REPORTING.md §§18.1,19.2; PHASE_4_PLAN.md §4.2", + "planned_unit": "P4-W03", + "required_behavior": "Result witness references resolve to actual report Finding IDs and finite witness contents; private native_records/result_refs do not become new public Finding members; no root witnesses array.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "disclosure_selection", + "source": "PRIVACY_AND_DATA_HANDLING.md §§4.1–4.4; PHASE_4_PLAN.md §4.4", + "planned_unit": "P4-W04", + "required_behavior": "One explicit projection feeds both formats; exclude automatic full records, excerpts, contact/display names, identity keys, extensions and local paths; preserve required IDs, context, method, native outcomes and qualifications.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "canonical_json", + "source": "REPOSITORY_ARCHITECTURE.md §§17.2–17.4,18.3; GOVERNANCE_AND_HANDOFF.md §22.1", + "planned_unit": "P4-W05", + "required_behavior": "J plus one LF; exact scalar/key/control encoding, native ordered arrays, portable integer values and original rational components; optional JSON display_decimal omitted.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "exact_markdown", + "source": "GOVERNANCE_AND_HANDOFF.md §22.2; REPOSITORY_ARCHITECTURE.md §18.3", + "planned_unit": "P4-W06", + "required_behavior": "Exact fixed root layout and complete pretty-J blocks, per-Result reason details, half-up six-place line for each available fraction, safe dynamic fences and one final LF.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "semantic_parity", + "source": "OBSERVABILITY_AND_REPORTING.md §19.1; VALIDATION_PLAN.md SIT-VG017", + "planned_unit": "P4-W06", + "required_behavior": "Both representations encode the same selected frozen report; independent block decoding and oracles reject loss of unavailable siblings, scope, unknowns, reasons, contrary premises, denominator or attribution.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "one_ledger_and_stops", + "source": "REPOSITORY_ARCHITECTURE.md §19; GOVERNANCE_AND_HANDOFF.md §22.3; PHASE_4_PLAN.md §4.4", + "planned_unit": "P4-W07", + "required_behavior": "Original ledger, deadline and 1024-unit emergency reserve span capture through both encodings/parity; preserve first established stop and real acceptance state; no restarted budget or successful partial report.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "witness_and_output_limits", + "source": "PRIVACY_AND_DATA_HANDLING.md WU9-L13,WU9-L14; PHASE_4_PLAN.md §4.4", + "planned_unit": "P4-W07", + "required_behavior": "Reconcile private retained witness reservations with public Finding/member occurrences without double reserve or lost members; separate encoded-byte limits for JSON and Markdown, no clipping.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "public_invocation", + "source": "REPOSITORY_ARCHITECTURE.md §18.4; PHASE_4_PLAN.md §4.1", + "planned_unit": "P4-W08", + "required_behavior": "Exact trusted options checked before dossier access; audit_bundle returns a complete frozen logical document and cached bytes or safe adopted failure; audit_file/CLI stay immediate refusals.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "source_native_states", + "source": "OBSERVABILITY_AND_REPORTING.md §§12.5,17; VALIDATION_PLAN.md SIT-VG011,SIT-VG015", + "planned_unit": "P4-W09", + "required_behavior": "Preserve native failed/unknown/verified outcomes as attributed data; they never become tool run state, authenticity, detector success or a global integrity score.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "oracle_and_coverage", + "source": "VALIDATION_PLAN.md §§10,13–17; PHASE_4_PLAN.md P4-W09", + "planned_unit": "P4-W09", + "required_behavior": "Keep 228 IDs, exact source clauses, independently accepted baseline before each output mutant; distinguish 49 output-mutant negatives from 8 input deltas and report original hero stop limits honestly.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "isolation_and_installation", + "source": "VALIDATION_PLAN.md SIT-VG019–SIT-VG023; PHASE_4_PLAN.md P4-W10", + "planned_unit": "P4-W10", + "required_behavior": "Actual public installed behavior and encoded-byte evidence under no product file/network/native/process effects; preserve source bytes and original private witnesses.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "clause": "release_boundary", + "source": "OBSERVABILITY_AND_REPORTING.md §§16.8,18.3; VALIDATION_PLAN.md SIT-VG026; PHASE_4_PLAN.md §8", + "planned_unit": "P4-W10", + "required_behavior": "Report fixed offline/caller-supplied basis and scope exclusions; Phase 4 does not certify native filesystem support, file/in-process equivalence, external truth, release or empirical theory validation.", + "status": "pending", + "actual_test_nodes": [], + "execution_evidence": [] + } + ], + "registry_sweeps": { + "prerequisites": [ + { + "code": "PC01", + "reporting_line": 500, + "validation_line": 939, + "exercise_id": "SIT-VG014/PC01", + "supporting_shared_families": [ + "SIT-VG001", + "SIT-VG010" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC02", + "reporting_line": 501, + "validation_line": 940, + "exercise_id": "SIT-VG014/PC02", + "supporting_shared_families": [ + "SIT-VG002", + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC03", + "reporting_line": 502, + "validation_line": 941, + "exercise_id": "SIT-VG014/PC03", + "supporting_shared_families": [ + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC04", + "reporting_line": 503, + "validation_line": 942, + "exercise_id": "SIT-VG014/PC04", + "supporting_shared_families": [ + "SIT-VG004", + "SIT-VG008", + "SIT-VG009" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC05", + "reporting_line": 504, + "validation_line": 943, + "exercise_id": "SIT-VG014/PC05", + "supporting_shared_families": [ + "SIT-VG007" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC06", + "reporting_line": 505, + "validation_line": 944, + "exercise_id": "SIT-VG014/PC06", + "supporting_shared_families": [ + "SIT-VG005", + "SIT-VG007", + "SIT-VG008" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC07", + "reporting_line": 506, + "validation_line": 945, + "exercise_id": "SIT-VG014/PC07", + "supporting_shared_families": [ + "SIT-VG005", + "SIT-VG007" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC08", + "reporting_line": 507, + "validation_line": 946, + "exercise_id": "SIT-VG014/PC08", + "supporting_shared_families": [ + "SIT-VG002", + "SIT-VG009" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC09", + "reporting_line": 508, + "validation_line": 947, + "exercise_id": "SIT-VG014/PC09", + "supporting_shared_families": [ + "SIT-VG009" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC10", + "reporting_line": 509, + "validation_line": 948, + "exercise_id": "SIT-VG014/PC10", + "supporting_shared_families": [ + "SIT-VG006" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC11", + "reporting_line": 510, + "validation_line": 949, + "exercise_id": "SIT-VG014/PC11", + "supporting_shared_families": [ + "SIT-VG005", + "SIT-VG007" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC12", + "reporting_line": 511, + "validation_line": 950, + "exercise_id": "SIT-VG014/PC12", + "supporting_shared_families": [ + "SIT-VG012", + "SIT-VG016" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC13", + "reporting_line": 512, + "validation_line": 951, + "exercise_id": "SIT-VG014/PC13", + "supporting_shared_families": [ + "SIT-VG004", + "SIT-VG008" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC14", + "reporting_line": 513, + "validation_line": 952, + "exercise_id": "SIT-VG014/PC14", + "supporting_shared_families": [ + "SIT-VG003", + "SIT-VG008" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC15", + "reporting_line": 514, + "validation_line": 953, + "exercise_id": "SIT-VG014/PC15", + "supporting_shared_families": [ + "SIT-VG005", + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC16", + "reporting_line": 515, + "validation_line": 954, + "exercise_id": "SIT-VG014/PC16", + "supporting_shared_families": [ + "SIT-VG005", + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC17", + "reporting_line": 516, + "validation_line": 955, + "exercise_id": "SIT-VG014/PC17", + "supporting_shared_families": [ + "SIT-VG009", + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC18", + "reporting_line": 517, + "validation_line": 956, + "exercise_id": "SIT-VG014/PC18", + "supporting_shared_families": [ + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC19", + "reporting_line": 518, + "validation_line": 957, + "exercise_id": "SIT-VG014/PC19", + "supporting_shared_families": [ + "SIT-VG004", + "SIT-VG008" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC20", + "reporting_line": 519, + "validation_line": 958, + "exercise_id": "SIT-VG014/PC20", + "supporting_shared_families": [ + "SIT-VG005", + "SIT-VG006" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC21", + "reporting_line": 520, + "validation_line": 959, + "exercise_id": "SIT-VG014/PC21", + "supporting_shared_families": [ + "SIT-VG003", + "SIT-VG007" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC22", + "reporting_line": 521, + "validation_line": 960, + "exercise_id": "SIT-VG014/PC22", + "supporting_shared_families": [ + "SIT-VG003", + "SIT-VG007" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC23", + "reporting_line": 522, + "validation_line": 961, + "exercise_id": "SIT-VG014/PC23", + "supporting_shared_families": [ + "SIT-VG003", + "SIT-VG012" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "PC24", + "reporting_line": 523, + "validation_line": 962, + "exercise_id": "SIT-VG014/PC24", + "supporting_shared_families": [ + "SIT-VG010", + "SIT-VG022" + ], + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + } + ], + "reasons": [ + { + "code": "no_seed_contributions", + "reporting_line": 535, + "validation_line": 969, + "exercise_id": "SIT-VG014/no_seed_contributions", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "zero_denominator", + "reporting_line": 536, + "validation_line": 970, + "exercise_id": "SIT-VG014/zero_denominator", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "missing_comparison_assessment", + "reporting_line": 537, + "validation_line": 971, + "exercise_id": "SIT-VG014/missing_comparison_assessment", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "scope_unestablished", + "reporting_line": 538, + "validation_line": 972, + "exercise_id": "SIT-VG014/scope_unestablished", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "dimension_not_selected", + "reporting_line": 539, + "validation_line": 973, + "exercise_id": "SIT-VG014/dimension_not_selected", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "unknown_endpoint", + "reporting_line": 540, + "validation_line": 974, + "exercise_id": "SIT-VG014/unknown_endpoint", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "upstream_coverage_incomplete", + "reporting_line": 541, + "validation_line": 975, + "exercise_id": "SIT-VG014/upstream_coverage_incomplete", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "unqualified_origin_boundary", + "reporting_line": 542, + "validation_line": 976, + "exercise_id": "SIT-VG014/unqualified_origin_boundary", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "baseline_or_scope_cut", + "reporting_line": 543, + "validation_line": 977, + "exercise_id": "SIT-VG014/baseline_or_scope_cut", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "declared_origin_only", + "reporting_line": 544, + "validation_line": 978, + "exercise_id": "SIT-VG014/declared_origin_only", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "multi_origin_unallocated", + "reporting_line": 545, + "validation_line": 979, + "exercise_id": "SIT-VG014/multi_origin_unallocated", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "identity_unresolved", + "reporting_line": 546, + "validation_line": 980, + "exercise_id": "SIT-VG014/identity_unresolved", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "premise_disputed", + "reporting_line": 547, + "validation_line": 981, + "exercise_id": "SIT-VG014/premise_disputed", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "lineage_cycle", + "reporting_line": 548, + "validation_line": 982, + "exercise_id": "SIT-VG014/lineage_cycle", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "support_uninspectable", + "reporting_line": 549, + "validation_line": 983, + "exercise_id": "SIT-VG014/support_uninspectable", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "documentary_basis_incomplete", + "reporting_line": 550, + "validation_line": 984, + "exercise_id": "SIT-VG014/documentary_basis_incomplete", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "self_supporting_assurance", + "reporting_line": 551, + "validation_line": 985, + "exercise_id": "SIT-VG014/self_supporting_assurance", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "time_applicability_unknown", + "reporting_line": 552, + "validation_line": 986, + "exercise_id": "SIT-VG014/time_applicability_unknown", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "temporal_inconsistency", + "reporting_line": 553, + "validation_line": 987, + "exercise_id": "SIT-VG014/temporal_inconsistency", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "roles_incomplete", + "reporting_line": 554, + "validation_line": 988, + "exercise_id": "SIT-VG014/roles_incomplete", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "externality_unestablished", + "reporting_line": 555, + "validation_line": 989, + "exercise_id": "SIT-VG014/externality_unestablished", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "cohort_anchor_missing", + "reporting_line": 556, + "validation_line": 990, + "exercise_id": "SIT-VG014/cohort_anchor_missing", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "cohort_anchor_ambiguous", + "reporting_line": 557, + "validation_line": 991, + "exercise_id": "SIT-VG014/cohort_anchor_ambiguous", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "cohort_universe_unestablished", + "reporting_line": 558, + "validation_line": 992, + "exercise_id": "SIT-VG014/cohort_universe_unestablished", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "stage_classification_unresolved", + "reporting_line": 559, + "validation_line": 993, + "exercise_id": "SIT-VG014/stage_classification_unresolved", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "transition_baseline_unestablished", + "reporting_line": 560, + "validation_line": 994, + "exercise_id": "SIT-VG014/transition_baseline_unestablished", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "route_not_recorded", + "reporting_line": 561, + "validation_line": 995, + "exercise_id": "SIT-VG014/route_not_recorded", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "authority_unestablished", + "reporting_line": 562, + "validation_line": 996, + "exercise_id": "SIT-VG014/authority_unestablished", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "authority_inapplicable", + "reporting_line": 563, + "validation_line": 997, + "exercise_id": "SIT-VG014/authority_inapplicable", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "change_evidence_missing", + "reporting_line": 564, + "validation_line": 998, + "exercise_id": "SIT-VG014/change_evidence_missing", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "before_after_unresolved", + "reporting_line": 565, + "validation_line": 999, + "exercise_id": "SIT-VG014/before_after_unresolved", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "context_withheld_or_unavailable", + "reporting_line": 566, + "validation_line": 1000, + "exercise_id": "SIT-VG014/context_withheld_or_unavailable", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "no_applicable_subject", + "reporting_line": 567, + "validation_line": 1001, + "exercise_id": "SIT-VG014/no_applicable_subject", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "outside_v01", + "reporting_line": 568, + "validation_line": 1002, + "exercise_id": "SIT-VG014/outside_v01", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [], + "restriction": "Release-boundary disclosure only; excluded detectors remain unimplemented." + }, + { + "code": "analysis_not_selected", + "reporting_line": 569, + "validation_line": 1003, + "exercise_id": "SIT-VG014/analysis_not_selected", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [], + "restriction": "No public subset selection is authorized. Test prohibition; do not create a positive public option." + }, + { + "code": "resource_limit_reached", + "reporting_line": 570, + "validation_line": 1004, + "exercise_id": "SIT-VG014/resource_limit_reached", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "execution_failed", + "reporting_line": 571, + "validation_line": 1005, + "exercise_id": "SIT-VG014/execution_failed", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "input_not_accepted", + "reporting_line": 572, + "validation_line": 1006, + "exercise_id": "SIT-VG014/input_not_accepted", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "completion_interval_not_needed", + "reporting_line": 573, + "validation_line": 1007, + "exercise_id": "SIT-VG014/completion_interval_not_needed", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "comparison_scope_mismatch", + "reporting_line": 574, + "validation_line": 1008, + "exercise_id": "SIT-VG014/comparison_scope_mismatch", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [], + "restriction": "No public report-comparison operation is exposed; retain the registered contract meaning without inventing an invocation." + } + ], + "finding_conditions": [ + { + "code": "shared_origin_witness", + "reporting_line": 814, + "validation_line": 1019, + "exercise_id": "SIT-VG015/shared_origin_witness", + "permitted_threat_association": "SIT-TH001", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "citation_path_witness", + "reporting_line": 815, + "validation_line": 1020, + "exercise_id": "SIT-VG015/citation_path_witness", + "permitted_threat_association": "SIT-TH002", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "transformation_path_witness", + "reporting_line": 816, + "validation_line": 1021, + "exercise_id": "SIT-VG015/transformation_path_witness", + "permitted_threat_association": "SIT-TH002; SIT-TH003 only with supplied syndication/copy relation", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "model_mediated_derivation_witness", + "reporting_line": 817, + "validation_line": 1022, + "exercise_id": "SIT-VG015/model_mediated_derivation_witness", + "permitted_threat_association": "SIT-TH004", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "view_cycle_witness", + "reporting_line": 818, + "validation_line": 1023, + "exercise_id": "SIT-VG015/view_cycle_witness", + "permitted_threat_association": "SIT-TH005; SIT-TH007 only with represented benchmark context", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "assurance_loop_limitation", + "reporting_line": 819, + "validation_line": 1024, + "exercise_id": "SIT-VG015/assurance_loop_limitation", + "permitted_threat_association": "SIT-TH005", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "evaluator_overlap_witness", + "reporting_line": 820, + "validation_line": 1025, + "exercise_id": "SIT-VG015/evaluator_overlap_witness", + "permitted_threat_association": "SIT-TH006; SIT-TH007 with explicit benchmark role/artifact", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "family_label_match", + "reporting_line": 821, + "validation_line": 1026, + "exercise_id": "SIT-VG015/family_label_match", + "permitted_threat_association": "SIT-TH006, with explicit warning that it is a label match", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "provenance_gap", + "reporting_line": 822, + "validation_line": 1027, + "exercise_id": "SIT-VG015/provenance_gap", + "permitted_threat_association": "SIT-TH008, as a gap rather than proof of erasure", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "verification_scope_limitation", + "reporting_line": 823, + "validation_line": 1028, + "exercise_id": "SIT-VG015/verification_scope_limitation", + "permitted_threat_association": "SIT-TH009", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "independence_record_conflict", + "reporting_line": 824, + "validation_line": 1029, + "exercise_id": "SIT-VG015/independence_record_conflict", + "permitted_threat_association": "SIT-TH001 or SIT-TH006 as appropriate", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "correction_dependency_witness", + "reporting_line": 825, + "validation_line": 1030, + "exercise_id": "SIT-VG015/correction_dependency_witness", + "permitted_threat_association": "SIT-TH010", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "correction_route_limitation", + "reporting_line": 826, + "validation_line": 1031, + "exercise_id": "SIT-VG015/correction_route_limitation", + "permitted_threat_association": "SIT-TH010-SIT-TH011", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "case_handling_disclosure", + "reporting_line": 827, + "validation_line": 1032, + "exercise_id": "SIT-VG015/case_handling_disclosure", + "permitted_threat_association": "SIT-TH011 only at that bounded case meaning", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "linked_change_disclosure", + "reporting_line": 828, + "validation_line": 1033, + "exercise_id": "SIT-VG015/linked_change_disclosure", + "permitted_threat_association": "No adverse threat association required", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "downstream_change_undocumented", + "reporting_line": 829, + "validation_line": 1034, + "exercise_id": "SIT-VG015/downstream_change_undocumented", + "permitted_threat_association": "SIT-TH011, without a failed-correction claim", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "externality_stage_limitation", + "reporting_line": 830, + "validation_line": 1035, + "exercise_id": "SIT-VG015/externality_stage_limitation", + "permitted_threat_association": "SIT-TH012, without an adequacy verdict", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "recorded_stage_exclusion", + "reporting_line": 831, + "validation_line": 1036, + "exercise_id": "SIT-VG015/recorded_stage_exclusion", + "permitted_threat_association": "SIT-TH014, without inferred motive", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "anomaly_or_contestation_disclosure", + "reporting_line": 832, + "validation_line": 1037, + "exercise_id": "SIT-VG015/anomaly_or_contestation_disclosure", + "permitted_threat_association": "SIT-TH014 where relevant; no threat verdict required", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "attributed_external_observation", + "reporting_line": 833, + "validation_line": 1038, + "exercise_id": "SIT-VG015/attributed_external_observation", + "permitted_threat_association": "No automatic semantic assignment to a threat family", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "scoped_no_witness", + "reporting_line": 834, + "validation_line": 1039, + "exercise_id": "SIT-VG015/scoped_no_witness", + "permitted_threat_association": "No claim that any threat family passed", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "code": "recorded_data_conflict", + "reporting_line": 835, + "validation_line": 1040, + "exercise_id": "SIT-VG015/recorded_data_conflict", + "permitted_threat_association": "Family association only where a matching threat card applies", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + } + ], + "observation_kinds": [ + { + "value": "positive_witness", + "source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "value": "no_witness_in_examined_view", + "source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "value": "bounded_absence_under_declared_coverage", + "source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "value": "attributed_observation", + "source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "value": "qualification_gap", + "source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "value": "recorded_conflict", + "source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "public_status": "pending", + "planned_unit": "P4-W09", + "actual_test_nodes": [], + "execution_evidence": [] + } + ] + }, + "shared_families": [ + { + "id": "SIT-VG001", + "title": "Closed bundle and structural rejection", + "source_start_line": 571, + "source_end_line": 576, + "governing_contract": "Lineage §§2, 13-14; reporting §§12.2, 16.8.", + "referencing_traces": [ + "SIT-TR001", + "SIT-TR021", + "SIT-TR028" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG002", + "title": "Identity and reference discipline", + "source_start_line": 577, + "source_end_line": 582, + "governing_contract": "Lineage §§2.2-2.3, 12; W7-11, W7-23-W7-24.", + "referencing_traces": [ + "SIT-TR001", + "SIT-TR003", + "SIT-TR009", + "SIT-TR019", + "SIT-TR020", + "SIT-TR023", + "SIT-TR028", + "SIT-TR030" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG003", + "title": "Every typed record field", + "source_start_line": 583, + "source_end_line": 588, + "governing_contract": "Lineage §6, twelve record tables.", + "referencing_traces": [ + "SIT-TR001", + "SIT-TR002", + "SIT-TR014", + "SIT-TR015", + "SIT-TR016" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG004", + "title": "Every assertion and relation predicate", + "source_start_line": 589, + "source_end_line": 594, + "governing_contract": "Lineage §§7-8, 10; W7-04, W7-11.", + "referencing_traces": [ + "SIT-TR001", + "SIT-TR008", + "SIT-TR010", + "SIT-TR013", + "SIT-TR018" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG005", + "title": "Every assessment kind and detail", + "source_start_line": 595, + "source_end_line": 600, + "governing_contract": "Lineage §9, nine assessment kinds.", + "referencing_traces": [ + "SIT-TR001", + "SIT-TR002", + "SIT-TR005", + "SIT-TR011", + "SIT-TR015", + "SIT-TR017", + "SIT-TR019" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG006", + "title": "Time, lifecycle and immutable snapshot", + "source_start_line": 601, + "source_end_line": 608, + "governing_contract": "Lineage §§3.1, 7, 10.7, 14; W6-26; W7-21.", + "referencing_traces": [ + "SIT-TR011", + "SIT-TR012", + "SIT-TR013", + "SIT-TR014", + "SIT-TR020" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG007", + "title": "Evidence basis and self-support", + "source_start_line": 609, + "source_end_line": 614, + "governing_contract": "Lineage §§3.2, 4, 9; W7-18, W7-25.", + "referencing_traces": [ + "SIT-TR002", + "SIT-TR004", + "SIT-TR005", + "SIT-TR007", + "SIT-TR015", + "SIT-TR017", + "SIT-TR023", + "SIT-TR030" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG008", + "title": "Typed views and finite witnesses", + "source_start_line": 615, + "source_end_line": 620, + "governing_contract": "Lineage §10 and §18.2; W7-04, W7-08, W7-13-W7-15.", + "referencing_traces": [ + "SIT-TR004", + "SIT-TR006", + "SIT-TR008", + "SIT-TR009", + "SIT-TR010", + "SIT-TR013", + "SIT-TR018", + "SIT-TR025" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG009", + "title": "Conflicts and localization", + "source_start_line": 621, + "source_end_line": 626, + "governing_contract": "Definitions §§20.4, 22.2, 26.2; lineage §12; W7-19, W7-23.", + "referencing_traces": [ + "SIT-TR004", + "SIT-TR005", + "SIT-TR006", + "SIT-TR007", + "SIT-TR010", + "SIT-TR012", + "SIT-TR013", + "SIT-TR014", + "SIT-TR016", + "SIT-TR017", + "SIT-TR019", + "SIT-TR025" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG010", + "title": "Run envelope outcomes", + "source_start_line": 627, + "source_end_line": 632, + "governing_contract": "Reporting §12.2, §16.8; W7-24, W7-27.", + "referencing_traces": [ + "SIT-TR021", + "SIT-TR031" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG011", + "title": "Atomic result states and values", + "source_start_line": 633, + "source_end_line": 638, + "governing_contract": "Reporting §§12.3-12.5, 16.4-16.5.", + "referencing_traces": [ + "SIT-TR002", + "SIT-TR014", + "SIT-TR022", + "SIT-TR024", + "SIT-TR031" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG012", + "title": "Explicit scope and population", + "source_start_line": 639, + "source_end_line": 644, + "governing_contract": "Reporting §§16.2-16.3; H7-V01-H7-V03; W7-11, W7-16.", + "referencing_traces": [ + "SIT-TR003", + "SIT-TR006", + "SIT-TR007", + "SIT-TR008", + "SIT-TR011", + "SIT-TR012", + "SIT-TR016", + "SIT-TR017", + "SIT-TR020", + "SIT-TR023" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG013", + "title": "Capability matrix and observability", + "source_start_line": 645, + "source_end_line": 650, + "governing_contract": "Reporting §§14-16.7; W6-31-W6-32.", + "referencing_traces": [ + "SIT-TR024" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG014", + "title": "Checks, reasons and localization", + "source_start_line": 651, + "source_end_line": 656, + "governing_contract": "Reporting §13; all PC01-PC24 and all reason codes.", + "referencing_traces": [ + "SIT-TR022", + "SIT-TR024", + "SIT-TR025" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG015", + "title": "Finding forms and threat limits", + "source_start_line": 657, + "source_end_line": 662, + "governing_contract": "Reporting §18; threat §§4-6; W7-04, W7-25-W7-28.", + "referencing_traces": [ + "SIT-TR018", + "SIT-TR025" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG016", + "title": "Exact numerical representation", + "source_start_line": 663, + "source_end_line": 670, + "governing_contract": "Definitions §28.3; reporting §16.5; validation §6.2.", + "referencing_traces": [ + "SIT-TR003", + "SIT-TR006", + "SIT-TR007", + "SIT-TR008", + "SIT-TR012", + "SIT-TR022", + "SIT-TR027", + "SIT-TR034" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG017", + "title": "JSON/Markdown substantive parity", + "source_start_line": 671, + "source_end_line": 678, + "governing_contract": "Reporting §19.1; W6-31; W7-27.", + "referencing_traces": [ + "SIT-TR026", + "SIT-TR030" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG018", + "title": "Deterministic semantic transformations", + "source_start_line": 679, + "source_end_line": 686, + "governing_contract": "Reporting §19.2; W6-30; W7-14, W7-27.", + "referencing_traces": [ + "SIT-TR027" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG019", + "title": "Inert source and extension content", + "source_start_line": 687, + "source_end_line": 694, + "governing_contract": "Lineage §§3.4, 4.2; reporting §19.3; W7-26.", + "referencing_traces": [ + "SIT-TR026", + "SIT-TR029", + "SIT-TR035" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG020", + "title": "Offline operation and no intervention", + "source_start_line": 695, + "source_end_line": 702, + "governing_contract": "Instructions §6; threat §§2-6; W7-26.", + "referencing_traces": [ + "SIT-TR029", + "SIT-TR035" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG021", + "title": "Protected data and safe diagnostics", + "source_start_line": 703, + "source_end_line": 710, + "governing_contract": "Reporting §§16.6, 16.8, 19.3; W7-18.", + "referencing_traces": [ + "SIT-TR026", + "SIT-TR030" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG022", + "title": "Resource limits, cancellation and fault containment", + "source_start_line": 711, + "source_end_line": 718, + "governing_contract": "Reporting §§12.2-12.4, 16.8; SIT-TS005; W6-27.", + "referencing_traces": [ + "SIT-TR009", + "SIT-TR021", + "SIT-TR031" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG023", + "title": "File/in-process surface and diagnostic equivalence", + "source_start_line": 719, + "source_end_line": 726, + "governing_contract": "Lineage §2; reporting §16.8; SIT-D016-SIT-D018.", + "referencing_traces": [ + "SIT-TR001", + "SIT-TR023", + "SIT-TR028", + "SIT-TR029" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [], + "deferred_scope": "Actual safe file/in-process equivalence, file digests and filesystem publication remain outside Phase 4." + }, + { + "id": "SIT-VG024", + "title": "Golden oracle and regression ownership", + "source_start_line": 727, + "source_end_line": 732, + "governing_contract": "Validation §§1-8; instructions §§5-8.", + "referencing_traces": [ + "SIT-TR032", + "SIT-TR033", + "SIT-TR035" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG025", + "title": "Independent challenge to product conventions", + "source_start_line": 733, + "source_end_line": 738, + "governing_contract": "EC §§2, 6-7 through SIT-T019-SIT-T025; W7-28.", + "referencing_traces": [ + "SIT-TR032", + "SIT-TR033", + "SIT-TR034" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [] + }, + { + "id": "SIT-VG026", + "title": "Release and theory boundary assertions", + "source_start_line": 739, + "source_end_line": 744, + "governing_contract": "Product §10; map §6; SIT-P015-SIT-P016.", + "referencing_traces": [ + "SIT-TR025", + "SIT-TR029", + "SIT-TR033", + "SIT-TR034", + "SIT-TR035" + ], + "phase4_status": "pending_applicable_public_clauses", + "actual_test_nodes": [], + "execution_evidence": [], + "deferred_scope": "Phase 4 checks exclusion statements only; final release gate remains open." + } + ], + "trace_scope": [ + { + "id": "SIT-TR001", + "owner": "INGESTION_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 98, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR002", + "owner": "EVIDENCE_BASIS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 112, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR003", + "owner": "SOURCE_INVENTORY", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 126, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR004", + "owner": "ORIGIN_ANALYSIS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 140, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR005", + "owner": "PROCESS_COMPARISON", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 154, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR006", + "owner": "CONTRIBUTION_PROFILE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 168, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR007", + "owner": "CONTRIBUTION_PROFILE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 182, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR008", + "owner": "CONTRIBUTION_PROFILE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 196, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR009", + "owner": "ORIGIN_ANALYSIS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 210, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR010", + "owner": "EVALUATOR_LINEAGE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 224, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR011", + "owner": "PRESENCE_RECORDS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 238, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR012", + "owner": "PRESENCE_RECORDS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 252, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR013", + "owner": "CORRECTION_ROUTES", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 266, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR014", + "owner": "CORRECTION_OUTCOMES", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 280, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR015", + "owner": "HUMAN_REVIEW_RECORDS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 294, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR016", + "owner": "CONTEXT_PRESERVATION", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 308, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR017", + "owner": "EVIDENCE_BASIS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 322, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR018", + "owner": "GRAPH_VIEW_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 336, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR019", + "owner": "EVIDENCE_BASIS", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 350, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR020", + "owner": "TEMPORAL_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 364, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR021", + "owner": "REPORT_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 378, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR022", + "owner": "REPORT_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 392, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR023", + "owner": "REPORT_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 406, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR024", + "owner": "REPORT_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 420, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR025", + "owner": "FINDING_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 434, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR026", + "owner": "REPORT_PRESENTATION", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 448, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR027", + "owner": "REPORT_PRESENTATION", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 462, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR028", + "owner": "INGESTION_CONTRACT", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 476, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR029", + "owner": "RUNTIME_BOUNDARY", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 490, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR030", + "owner": "RUNTIME_BOUNDARY", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 504, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR031", + "owner": "RUNTIME_BOUNDARY", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 518, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR032", + "owner": "VALIDATION_GOVERNANCE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 532, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR033", + "owner": "VALIDATION_GOVERNANCE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 546, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR034", + "owner": "VALIDATION_GOVERNANCE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 560, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + }, + { + "id": "SIT-TR035", + "owner": "VALIDATION_GOVERNANCE", + "source": "THEORY_TO_CODE_TRACEABILITY.md", + "source_line": 574, + "phase4_status": "pending_applicable_public_clauses", + "execution_evidence": [] + } + ], + "remaining_limits": [ + "All public-envelope and rendering assertions are pending; schema/catalog membership is not behavior evidence.", + "Original hero interruption under unchanged resource budgets is not full-field public completion.", + "File/CLI/native/publication and release clauses remain separately deferred.", + "Inherited private-core evidence and historical failures retain their original scopes; this map does not rewrite acceptance history." + ] +} diff --git a/tests/contract/test_phase2_transition.py b/tests/contract/test_phase2_transition.py index 33cd734..1ecc9a4 100644 --- a/tests/contract/test_phase2_transition.py +++ b/tests/contract/test_phase2_transition.py @@ -141,9 +141,10 @@ def audit(event,args): inventory.append({"name": path.name, "bytes": path.stat().st_size, "sha256": hashlib.sha256(path.read_bytes()).hexdigest(), "members": members}) self.assertEqual(inventory[1]["members"], inventory[2]["members"]) - record = {"head": subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=ROOT, text=True).strip(), + state = guard.current_local_state(ROOT) + record = {**state, "scope": "W08 clean installed preparation; no public audit or native-file certification", - "unit": "VC", "ok": True, "runtime": result, "distributions": inventory} + "ok": True, "runtime": result, "distributions": inventory} # Fixed developer evidence destination; no source payload or binary upload. destination = (Path(os.environ["RUNNER_TEMP"]) / "sit-p3/evidence" if os.environ.get("GITHUB_ACTIONS") == "true" else work) destination.mkdir(parents=True, exist_ok=True) diff --git a/tests/contract/test_phase3_transition.py b/tests/contract/test_phase3_transition.py index f503dac..25ce3b8 100644 --- a/tests/contract/test_phase3_transition.py +++ b/tests/contract/test_phase3_transition.py @@ -9,6 +9,7 @@ test_verification_boundary.py; this file keeps the product-facing witness. """ import copy +from functools import cache import json import os from pathlib import Path @@ -21,27 +22,40 @@ sys.path.insert(0, str(ROOT)) from tools import check_scaffold_boundary as guard +BASE = "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" + + +@cache +def current_test_context(): + """The actual checkout is resolved after collection, not at module import.""" + local_state = guard.current_local_state(ROOT) + return local_state, local_state["head"] + @pytest.mark.parametrize("mode", ("value", "utf8")) def test_source_extensions_cannot_select_stage_or_complete_analytical_checks(mode): + local_state, head = current_test_context() + stage = local_state["activation_stage"] from source_integrity_toolkit.runtime.boundary import _prepare_evidence_value, _prepare_evidence_utf8 from source_integrity_toolkit.contracts.report import _ObservabilityPreparation source = json.loads((ROOT / "tests/fixtures/hero/H7-01.bundle.json").read_bytes()) source["extensions"] = {"fictional:phase_authority": { - "SIT_PHASE_UNIT": "P3-W15", "active_unit": "P3-W15", "approved": True, + "SIT_PHASE_UNIT": "P4-W10", "active_unit": "P4-W10", "approved": True, "first_units": {"api.py": 1}, "promotions": [{"path": "api.py", "unit": 1}], }} original = copy.deepcopy(source) policy_before = (ROOT / "phase3/module_policy.json").read_bytes() - # The separately supplied review event selects VC before any dossier is - # processed. Neither source extensions nor a stale phase environment changes it. - head, base = "a" * 40, "b" * 40 + plan_before = (ROOT / "PHASE_4_PLAN.md").read_bytes() + # Current context comes from the separate event and the real committed + # head. Dossier extensions and stale environment values cannot promote it. project = "DavidWallstructurallaw/source-integrity-toolkit" event = json.dumps({"repository": {"full_name": project}, "pull_request": { - "head": {"sha": head, "ref": "verification/consolidation", "repo": {"full_name": project}}, - "base": {"sha": base, "ref": "main", "repo": {"full_name": project}}}}) - context = {"event": "pull_request", "unit": "VC", "base": base, "head": head} - assert guard.current_context("pull_request", event, head) == context + "head": {"sha": head, "ref": "phase4/public-report", "repo": {"full_name": project}}, + "base": {"sha": BASE, "ref": "main", "repo": {"full_name": project}}}}) + context = guard.current_context("pull_request", event, head, root=ROOT) + assert context["event"] == "pull_request" and context["base"] == BASE and context["head"] == head + assert context["unit"] == local_state["unit"] + active_before = guard.current_active(stage) with patch.dict(os.environ, {"SIT_PHASE_UNIT": "P3-W01"}): result = _prepare_evidence_value(source) if mode == "value" else _prepare_evidence_utf8(json.dumps(source).encode()) assert type(result) is _ObservabilityPreparation and result.input_state == "accepted" @@ -49,7 +63,9 @@ def test_source_extensions_cannot_select_stage_or_complete_analytical_checks(mod for inquiry in result.inquiries: assert [item.prerequisite for item in inquiry.prerequisites if item.complete_check_executed] == ["PC01"] assert all(item.answer is None for item in inquiry.prerequisites[1:]) - assert guard.current_context("pull_request", event, head) == context - assert "api.py" not in guard.VC_ACTIVE + assert guard.current_context("pull_request", event, head, root=ROOT) == context + assert guard.current_active(stage) == active_before + assert ("api.py" in active_before) == (stage >= 8) assert source == original assert (ROOT / "phase3/module_policy.json").read_bytes() == policy_before + assert (ROOT / "PHASE_4_PLAN.md").read_bytes() == plan_before diff --git a/tests/contract/test_verification_boundary.py b/tests/contract/test_verification_boundary.py index 9bba42c..433629b 100644 --- a/tests/contract/test_verification_boundary.py +++ b/tests/contract/test_verification_boundary.py @@ -22,33 +22,158 @@ sys.path.insert(0, str(ROOT)) from tools import check_scaffold_boundary as guard -ANCHOR = "2413a29b839b7e1de8f76a449762f031de19d52b" -TREE = "e2f230bdf6f838f3d12df233559732aa1d5c1699" -PARENTS = ["6dbca96f3314d537beed4ccb6202147bd9248dd9", "90684996eac568af6129973764fe40f3b666a15f"] -VC01 = "a47ea2480043c2bb267c047b2d99a67ab4428e53" -PLAN_HASH = "a94b59a0bfdbde3c70c7286fd48c5e0cbdb4a538afeb094ba97dce718bd7d11d" +ANCHOR = "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" +TREE = "f6fbb8965520f33a09ca38cf413e11ca561110dd" +PARENTS = ["2413a29b839b7e1de8f76a449762f031de19d52b", "ce05c5dda9368182dbee074253d3a7c829af7719"] +# Reproducible synthetic plan-only bootstrap; no candidate source is executed. +ENTRY = "3dc6c7860e8206158338179d41d10ca6c37d13f1" +ENTRY_TREE = "b7fb26d515432776f4663550a26baf5826cebfa4" +PLAN_HASH = "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" PROJECT = "DavidWallstructurallaw/source-integrity-toolkit" +BRANCH = "phase4/public-report" PRODUCT = "src/source_integrity_toolkit/runtime/boundary.py" -PLAN = "VERIFICATION_CONSOLIDATION_PLAN.md" -SCOPES = { - "tools/check_scaffold_boundary.py", "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", "tests/scaffold/test_contract_catalogs.py", - "tests/scaffold/test_ci_contract.py", "tests/contract/test_phase2_transition.py", - "tests/contract/test_phase3_transition.py", ".github/workflows/phase1-ci.yml", - "tests/contract/test_bundle_contract.py", "tests/contract/test_input_schema_mapping.py", - "tests/contract/test_observability_preparation.py", "tests/security/test_input_capture.py", - "tests/security/test_preparation_inertness.py", "tests/contract/test_verification_boundary.py", - "verification/consolidation_map.json", "VERIFICATION_CONSOLIDATION_PLAN.md", - "VERIFICATION_CONSOLIDATION_COMPLETION.md", "README.md", +PLAN = "PHASE_4_PLAN.md" +# Independently transcribed from the exact approved plan, never guard output. +PATH_IDS = {'P01': 'src/source_integrity_toolkit/contracts/report.py', + 'P02': 'src/source_integrity_toolkit/contracts/execution.py', + 'P03': 'src/source_integrity_toolkit/reporting/assemble.py', + 'P04': 'src/source_integrity_toolkit/runtime/disclosure.py', + 'P05': 'src/source_integrity_toolkit/reporting/escaping.py', + 'P06': 'src/source_integrity_toolkit/reporting/json_report.py', + 'P07': 'src/source_integrity_toolkit/reporting/markdown_report.py', + 'P08': 'src/source_integrity_toolkit/runtime/resources.py', + 'P09': 'src/source_integrity_toolkit/runtime/diagnostics.py', + 'P10': 'src/source_integrity_toolkit/runtime/boundary.py', + 'P11': 'src/source_integrity_toolkit/api.py', + 'P12': 'src/source_integrity_toolkit/__init__.py', + 'V01': 'tools/check_scaffold_boundary.py', + 'V02': 'tests/contract/test_verification_boundary.py', + 'V03': 'tests/scaffold/test_ci_contract.py', + 'V04': 'tests/scaffold/test_imports.py', + 'V05': 'tests/scaffold/test_module_manifest.py', + 'V06': 'tests/scaffold/test_no_runtime_implementation.py', + 'V07': 'tests/scaffold/test_layer_boundaries.py', + 'V08': '.github/workflows/phase1-ci.yml', + 'T01': 'tests/scaffold/test_api_stubs.py', + 'T02': 'tests/scaffold/test_packaging.py', + 'T03': 'tests/security/test_scaffold_inertness.py', + 'T04': 'tests/security/test_preparation_inertness.py', + 'T05': 'tests/integration/test_preparation_capability_boundary.py', + 'T06': 'tests/contract/test_analytical_observability.py', + 'T07': 'tests/contract/test_phase2_transition.py', + 'T08': 'tests/integration/test_analytical_installed_runtime.py', + 'T09': 'tests/contract/test_phase3_transition.py', + 'T10': 'tests/contract/test_input_schema_mapping.py', + 'T11': 'tests/scaffold/test_contract_catalogs.py', + 'N01': 'tests/contract/test_report_contract.py', + 'N02': 'tests/contract/test_report_assembly.py', + 'N03': 'tests/contract/test_report_identity.py', + 'N04': 'tests/contract/test_json_report.py', + 'N05': 'tests/contract/test_report_parity.py', + 'N06': 'tests/contract/test_public_api.py', + 'N07': 'tests/contract/test_public_report_obligations.py', + 'N08': 'tests/security/test_report_disclosure.py', + 'N09': 'tests/security/test_rendering.py', + 'N10': 'tests/security/test_report_resource_limits.py', + 'N11': 'tests/security/test_public_api_boundary.py', + 'N12': 'tests/integration/test_public_audit.py', + 'N13': 'tests/integration/test_report_determinism.py', + 'N14': 'tests/integration/test_public_installed_runtime.py', + 'N15': 'tests/fixtures/micro/phase4_public_cases.json', + 'N16': 'tests/fixtures/adversarial/phase4_report_cases.json', + 'N17': 'tests/golden/phase4_report_expectations.json', + 'N18': 'tests/golden/phase4_reference_report.json', + 'N19': 'tests/golden/phase4_reference_report.md', + 'N20': 'tests/contract/test_report_test_oracles.py', + 'D01': 'PHASE_4_PLAN.md', + 'D02': 'schemas/report/sit-report-0.1.schema.json', + 'D03': 'schemas/report/README.md', + 'D04': 'phase4/report_contract_coverage.json', + 'D05': 'phase4/implementation_evidence.json', + 'D06': 'phase4/ci_review.md', + 'D07': 'PHASE_4_COMPLETION.md', + 'D08': 'README.md'} +UNIT_IDS = {1: 'V01 V02 V03 V04 V05 V06 V07 V08 T04 T07 T08 T09 D01 D04 D05 D06 D08', + 2: 'P01 P02 T10 T11 N01 N15 N17 N18 N19 N20 D02 D03 D04 D05', + 3: 'P01 P03 N01 N02 N03 N15 N17 N20 D04 D05', + 4: 'P01 P03 P04 N02 N08 N15 N16 N17 N20 D04 D05', + 5: 'P01 P02 P05 P06 P08 P09 N04 N10 N16 N17 N18 N20 D04 D05', + 6: 'P05 P07 N05 N09 N10 N16 N17 N19 N20 D04 D05', + 7: 'P01 P02 P03 P04 P05 P06 P07 P08 P09 P10 N01 N02 N08 N10 N11 N12 N15 N16 D04 D05', + 8: 'P01 P02 P10 P11 P12 V03 T01 T02 T03 T05 T06 T07 T08 N06 N11 N12 N14 N15 N16 D04 D05 D08', + 9: 'N01 N02 N03 N04 N05 N06 N07 N08 N09 N10 N11 N12 N13 N15 N16 N17 N18 N19 N20 D04 D05', + 10: 'N14 D04 D05 D06 D07 D08'} +SCOPES = set(PATH_IDS.values()) +UNIT_PATHS = {n: {PATH_IDS[key] for key in keys.split()} for n, keys in UNIT_IDS.items()} +ACTIVATION = { + "contracts/report.py": 2, "contracts/execution.py": 2, + "reporting/assemble.py": 3, "runtime/disclosure.py": 4, + "reporting/escaping.py": 5, "reporting/json_report.py": 5, + "runtime/resources.py": 5, "runtime/diagnostics.py": 5, + "reporting/markdown_report.py": 6, "runtime/boundary.py": 7, + "api.py": 8, "__init__.py": 8, +} +# SHA256 of all 48 accepted product files at fdad8c3. These values come from +# that independently accepted immutable tree, not a mutable policy table. +SOURCE_SHA256 = { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "212101c332201eda064d0a45140e922cbf24b7d9bcf36f14a9dc89c2b1790fa3", + "contracts/report.py": "262b8129cec88e4c0ee30b781045598fa73e76bfb578ee4211e631b67460b82a", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "ebbc9d87df2283da9e055be5b2db79187791a95043faa2311961d95be17e890d", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" } def git(root, *args, input_bytes=None): env = {k: v for k, v in os.environ.items() if not k.startswith("GIT_")} + env.update(GIT_AUTHOR_DATE="2026-10-14T00:00:00+0000", + GIT_COMMITTER_DATE="2026-10-14T00:00:00+0000") return subprocess.check_output( ["git", "-c", "core.autocrlf=false", "-c", "core.safecrlf=false", - "-c", "user.name=VC synthetic test", "-c", "user.email=vc-test@example.invalid", *args], + "-c", "user.name=P4 synthetic test", "-c", "user.email=p4-test@example.invalid", *args], cwd=root, env=env, input=input_bytes, stderr=subprocess.PIPE, timeout=60) @@ -56,69 +181,94 @@ def git(root, *args, input_bytes=None): def repo(tmp_path): path = tmp_path / "repository" git(tmp_path, "clone", "--quiet", "--no-checkout", "--no-hardlinks", str(ROOT), str(path)) - git(path, "checkout", "--quiet", "--detach", VC01) - # The accepted checkpoint is deliberately fixed, not the mutable test HEAD. - assert git(path, "rev-parse", "HEAD").decode().strip() == VC01 + git(path, "checkout", "--quiet", "--detach", ANCHOR) + (path / PLAN).write_bytes((ROOT / PLAN).read_bytes()) + assert commit(path, "Synthetic P4 bootstrap") == ENTRY + # Entry bytes and metadata are fixed independently of the mutable HEAD. + assert git(path, "rev-parse", "HEAD^{tree}").decode().strip() == ENTRY_TREE return path -def edit(root, path, data=b"\n# synthetic VC review change\n"): +def edit(root, path, data=b"\n# synthetic P4 review change\n"): target = root / path target.parent.mkdir(parents=True, exist_ok=True) target.write_bytes((target.read_bytes() if target.exists() else b"") + data) -def commit(root, message="Synthetic VC test change"): +def commit(root, message="Synthetic P4 test change", *, unit=1): git(root, "add", "-A") - git(root, "commit", "--quiet", "-m", message) + git(root, "commit", "--quiet", "-m", message + "\n\nSIT-Phase-Unit: P4-W%02d" % unit) return git(root, "rev-parse", "HEAD").decode().strip() -def event(head=VC01, base=ANCHOR): +def advance(root, stage): + checkpoints = {1: ENTRY} + for unit in range(2, stage + 1): + record = root / 'phase4/implementation_evidence.json' + record.parent.mkdir(exist_ok=True) + record.write_text(json.dumps({'synthetic_unit': unit}) + '\n', encoding='utf-8') + checkpoints[unit] = commit(root, 'Synthetic ordered checkpoint', unit=unit) + return checkpoints + + +def event(head=ENTRY, base=ANCHOR): return {"repository": {"full_name": PROJECT}, "pull_request": { - "head": {"sha": head, "ref": "verification/consolidation", "repo": {"full_name": PROJECT}}, + "head": {"sha": head, "ref": BRANCH, "repo": {"full_name": PROJECT}}, "base": {"sha": base, "ref": "main", "repo": {"full_name": PROJECT}}}} -def verified(root, head=VC01): +def push_event(root, head, base=ANCHOR): + message = git(root, 'cat-file', 'commit', head).partition(b'\n\n')[2].decode('utf-8') + return {'repository': {'full_name': PROJECT}, 'ref': 'refs/heads/main', + 'before': base, 'after': head, 'head_commit': {'id': head, 'message': message}} + + +def verified(root, head=ENTRY): result = guard.current_verify(root, "pull_request", json.dumps(event(head)), head) - assert result["ok"] and result["clean"] and result["unit"] == "VC" + assert result["ok"] and result["clean"] and result["unit"] == "P4-W01" assert result["checked_modules"] == 48 return result def test_current_anchor_and_frozen_records(repo, monkeypatch): - assert guard.VC_ACCEPTED_HEAD == ANCHOR and guard.VC_ACCEPTED_TREE == TREE - assert list(guard.VC_ACCEPTED_PARENTS) == PARENTS - assert guard.VC_PLAN_SHA256 == PLAN_HASH and set(guard.VC_PATHS) == SCOPES + assert guard.P4_ACCEPTED_HEAD == ANCHOR and guard.P4_ACCEPTED_TREE == TREE + assert list(guard.P4_ACCEPTED_PARENTS) == PARENTS + assert guard.P4_PLAN_SHA256 == PLAN_HASH and set(guard.P4_PATHS) == SCOPES + assert guard.P4_PLAN == PLAN and guard.P4_REPOSITORY == PROJECT and guard.P4_BRANCH == BRANCH + assert len(SCOPES) == 59 and len(ACTIVATION) == 12 + assert {int(str(n).removeprefix('P4-W')): set(v) for n, v in guard.P4_UNIT_PATHS.items()} == UNIT_PATHS + assert {k.removeprefix('src/source_integrity_toolkit/'): v for k, v in guard.P4_ACTIVATION.items()} == ACTIVATION baseline, blobs = guard.current_authority(repo) - assert len(baseline) == 207 - assert len([p for p in baseline if p.startswith("src/")]) == 48 + assert len(baseline) == 211 + observed = {path.removeprefix('src/source_integrity_toolkit/'): + hashlib.sha256(blobs[oid]).hexdigest() + for path, (_, oid) in baseline.items() if path.startswith('src/')} + assert observed == SOURCE_SHA256 assert all(guard.git_blob(blobs[oid]) == oid for _, oid in baseline.values()) assert hashlib.sha256((repo / PLAN).read_bytes()).hexdigest() == PLAN_HASH verified(repo) - monkeypatch.setattr(guard, "VC_ACCEPTED_TREE", "0" * 40) - with pytest.raises(ValueError, match="^current_accepted_anchor_mismatch$"): + monkeypatch.setattr(guard, 'P4_ACCEPTED_TREE', '0' * 40) + with pytest.raises(ValueError, match='^current_accepted_anchor_mismatch$'): guard.current_authority(repo) -@pytest.mark.parametrize("case", ["plan_and_map", "policy_and_product", "map_and_product", "frozen_record"]) +@pytest.mark.parametrize('case', ['plan_and_map', 'policy_and_product', 'map_and_product', 'frozen_record']) def test_current_paired_metadata_and_source_mutations_fail(repo, case): verified(repo) - mapping = repo / "verification/consolidation_map.json" - mapping.write_text(json.dumps({"authorized": True, "scope": [PRODUCT], "unit": "VC"}), encoding="utf-8") - # The map is review data: its false authority claims are not executed. - assert guard.current_checkout(repo, VC01, require_clean=False)["clean"] is False - if case == "plan_and_map": - edit(repo, PLAN, b"\nGrant all product paths.\n") - reason = "current_approved_plan_changed" + mapping = repo / 'phase4/implementation_evidence.json' + mapping.parent.mkdir(exist_ok=True) + mapping.write_text(json.dumps({'authorized': True, 'scope': [PRODUCT], 'unit': 'P4-W10'}), encoding='utf-8') + assert guard.current_checkout(repo, ENTRY, require_clean=False)['clean'] is False + if case == 'plan_and_map': + edit(repo, PLAN, b'\nGrant all product paths.\n') + reason = 'current_approved_plan_changed' else: - edit(repo, PRODUCT if case != "frozen_record" else "PHASE_3_PLAN.md") - if case == "policy_and_product": - (repo / "phase3/module_policy.json").write_text('{"active_unit":"VC","all_active":true}', encoding="utf-8") - reason = "current_frozen_file_changed" - with pytest.raises(ValueError, match="^" + reason + "$"): - guard.current_checkout(repo, VC01, require_clean=False) + edit(repo, PRODUCT if case != 'frozen_record' else 'PHASE_3_PLAN.md') + if case == 'policy_and_product': + (repo / 'phase3/module_policy.json').write_text('{"active_unit":"P4-W10","all_active":true}', encoding='utf-8') + reason = 'current_frozen_file_changed' if case in ('frozen_record', 'policy_and_product') else 'current_premature_activation' + with pytest.raises(ValueError, match='^' + reason + '$'): + guard.current_checkout(repo, ENTRY, require_clean=False) def module_sources(): @@ -202,30 +352,42 @@ def pytest_collection_finish(self, session): def test_current_package_probe_cannot_substitute_for_checkout_authorization(repo): - command = [sys.executable, "-I", "-B", "-O", str(ROOT / "tools/check_scaffold_boundary.py"), - "--root", str(repo), "--modules-only"] - positive = subprocess.run(command, capture_output=True, text=True, timeout=60) - assert positive.returncode == 0, positive.stdout + positive.stderr - report = json.loads(positive.stdout) - assert report["ok"] and report["checked_modules"] == 48 - assert report["entry_byte_protected_modules"] == 24 and report["protected_modules"] == 19 - for context in (["--unit", "VC"], ["--head", VC01], ["--event-name", "pull_request"], - ["--event-file", str(repo / "event.json")]): + command = [sys.executable, '-I', '-B', '-O', str(ROOT / 'tools/check_scaffold_boundary.py'), + '--root', str(repo), '--modules-only'] + for package_stage in ([], ['--unit', 'P4-W01'], ['--stage', '1'], + ['--unit', 'P4-W01', '--stage', '1']): + positive = subprocess.run(command + package_stage, capture_output=True, text=True, timeout=60) + assert positive.returncode == 0, positive.stdout + positive.stderr + report = json.loads(positive.stdout) + assert report['ok'] and report['checked_modules'] == 48 + for context in (['--head', ENTRY], ['--event-name', 'pull_request'], + ['--event-file', str(repo / 'event.json')]): refused = subprocess.run(command + context, capture_output=True, text=True, timeout=60) - assert refused.returncode == 2 - assert "cannot replace an authorized-context check" in refused.stderr + assert refused.returncode == 1 + assert json.loads(refused.stdout) == { + 'ok': False, 'issues': [{'code': 'current_external_context_required'}]} verified(repo) + edit(repo, 'README.md') + package_only = subprocess.run(command, capture_output=True, text=True, timeout=60) + assert package_only.returncode == 0 and json.loads(package_only.stdout)['ok'] + with pytest.raises(ValueError, match='^current_dirty_checkout$'): + guard.current_checkout(repo, ENTRY) def test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls(): sources = module_sources() - assert guard.current_module_issues(sources) == [] - for path in ("contracts/bundle.py", "contracts/constants.py", "io/input_file.py", - "validation/references.py", "validation/structure.py", "reporting/json_report.py"): + assert {p: hashlib.sha256(raw).hexdigest() for p, raw in sources.items()} == SOURCE_SHA256 + assert guard.current_module_issues(sources, stage=1) == [] + for path in SOURCE_SHA256: changed = dict(sources) - changed[path] += b"\n# unauthorized byte change\n" - assert (path, "accepted_blob_changed") in guard.current_module_issues(changed) - assert guard.current_module_issues(sources) == [] + changed[path] += b'\n# unauthorized byte change\n' + assert (path, 'accepted_blob_changed') in guard.current_module_issues(changed, stage=1) + for path in set(SOURCE_SHA256) - set(ACTIVATION): + changed = dict(sources) + changed[path] += b'\n# permanently frozen byte change\n' + assert (path, 'accepted_blob_changed') in guard.current_module_issues(changed, stage=10) + assert len(set(SOURCE_SHA256) - set(ACTIVATION)) == 36 + assert guard.current_module_issues(sources, stage=1) == [] @pytest.mark.parametrize("case,code", [ @@ -236,10 +398,8 @@ def test_current_package_frozen_preparation_bytes_have_positive_and_negative_con ]) def test_current_module_ceiling_and_protected_slots(case, code): sources = module_sources() - assert len(sources) == 48 and len(guard.VC_ACTIVE) == 29 - assert len(set(sources) - guard.VC_ACTIVE) == 19 - assert "reporting/json_report.py" not in guard.VC_ACTIVE - assert "analysis/findings.py" in guard.VC_ACTIVE + assert len(sources) == 48 + assert len(ACTIVATION) == 12 and len(set(sources) - set(ACTIVATION)) == 36 assert guard.current_module_issues(sources) == [] path = "graph/cycles.py" if case == "extra": path = "analysis/future.py"; sources[path] = b"" @@ -280,95 +440,86 @@ def test_current_module_tree_includes_ignored_paths(repo, path, reason): def test_current_context_comes_from_exact_external_event(repo, tmp_path): result = verified(repo) - assert result["base"] == ANCHOR and result["head"] == VC01 - push = {"repository": {"full_name": PROJECT}, "ref": "refs/heads/main", "before": ANCHOR, - "after": VC01, "head_commit": {"id": VC01, "message": "Accept VC\n\nSIT-Verification-Unit: VC"}} - assert guard.current_context("push", json.dumps(push), VC01) == { - "event": "push", "unit": "VC", "base": ANCHOR, "head": VC01} - event_file = tmp_path / "runner-event.json" - event_file.write_text(json.dumps(event()), encoding="utf-8") - command = [sys.executable, "-I", "-B", "-O", str(ROOT / "tools/check_scaffold_boundary.py"), - "--root", str(repo), "--unit", "VC", "--event-name", "pull_request", - "--event-file", str(event_file), "--head", VC01] + assert result['base'] == ANCHOR and result['head'] == ENTRY + pushed = push_event(repo, ENTRY) + context = guard.current_context('push', json.dumps(pushed), ENTRY, root=repo) + assert context['event'] == 'push' and context['unit'] == 'P4-W01' + assert context['base'] == ANCHOR and context['head'] == ENTRY + event_file = tmp_path / 'runner-event.json' + event_file.write_text(json.dumps(event()), encoding='utf-8') + command = [sys.executable, '-I', '-B', '-O', str(ROOT / 'tools/check_scaffold_boundary.py'), + '--root', str(repo), '--unit', 'P4-W01', '--event-name', 'pull_request', + '--event-file', str(event_file), '--head', ENTRY] positive = subprocess.run(command, capture_output=True, text=True, timeout=60) assert positive.returncode == 0, positive.stdout + positive.stderr - assert json.loads(positive.stdout)["unit"] == "VC" + assert json.loads(positive.stdout)['unit'] == 'P4-W01' edit(repo, PRODUCT) negative = subprocess.run(command, capture_output=True, text=True, timeout=60) assert negative.returncode == 1 - assert json.loads(negative.stdout)["issues"] == [{"code": "current_frozen_file_changed"}] + assert json.loads(negative.stdout)['issues'] == [{'code': 'current_premature_activation'}] -@pytest.mark.parametrize("case,reason", [ - ("head", "current_event_head_mismatch"), ("branch", "current_unapproved_branch"), - ("fork", "current_unapproved_branch"), ("base_ref", "current_wrong_base_ref"), - ("repository", "current_wrong_repository"), ("base", "current_invalid_base"), - ("missing", "current_malformed_event"), ("duplicate", "duplicate_policy_key"), - ("unknown_event", "current_unsupported_event"), ("duplicate_footer", "current_invalid_merge_footer"), - ("phase_footer", "current_invalid_merge_footer"), ("no_footer", "current_invalid_merge_footer"), +@pytest.mark.parametrize('case,reason', [ + ('head', 'current_event_head_mismatch'), ('branch', 'current_unapproved_branch'), + ('fork', 'current_unapproved_branch'), ('base_ref', 'current_wrong_base_ref'), + ('repository', 'current_wrong_repository'), ('base', 'current_invalid_base'), + ('missing', 'current_malformed_event'), ('duplicate', 'duplicate_policy_key'), + ('unknown_event', 'current_unsupported_event'), ('forged_message', 'current_event_commit_mismatch'), ]) -def test_current_context_rejects_candidate_self_authorization(monkeypatch, case, reason): +def test_current_context_rejects_candidate_self_authorization(repo, monkeypatch, case, reason): normal = event() - monkeypatch.setenv("SIT_PHASE_UNIT", "P3-W15") - assert guard.current_context("pull_request", json.dumps(normal), VC01)["unit"] == "VC" - normal["candidate_authority"] = {"approved": True, "allowed_paths": [PRODUCT]} - name, raw = "pull_request", None - if case == "head": normal["pull_request"]["head"]["sha"] = ANCHOR - elif case == "branch": normal["pull_request"]["head"]["ref"] = "phase3/p3-w15" - elif case == "fork": normal["pull_request"]["head"]["repo"]["full_name"] = "fictional/fork" - elif case == "base_ref": normal["pull_request"]["base"]["ref"] = "unreviewed" - elif case == "repository": normal["repository"]["full_name"] = "fictional/other" - elif case == "base": normal["pull_request"]["base"]["sha"] = "0" * 40 - elif case == "missing": del normal["pull_request"] - elif case == "duplicate": raw = '{"repository":{},"repository":{}}' - elif case == "unknown_event": name = "workflow_dispatch" + monkeypatch.setenv('SIT_PHASE_UNIT', 'P4-W10') + assert guard.current_context('pull_request', json.dumps(normal), ENTRY, root=repo)['unit'] == 'P4-W01' + normal['candidate_authority'] = {'approved': True, 'allowed_paths': [PRODUCT]} + normal['pull_request']['title'] = 'SIT-Phase-Unit: P4-W10' + name, raw = 'pull_request', None + if case == 'head': normal['pull_request']['head']['sha'] = ANCHOR + elif case == 'branch': normal['pull_request']['head']['ref'] = 'phase3/p3-w15' + elif case == 'fork': normal['pull_request']['head']['repo']['full_name'] = 'fictional/fork' + elif case == 'base_ref': normal['pull_request']['base']['ref'] = 'unreviewed' + elif case == 'repository': normal['repository']['full_name'] = 'fictional/other' + elif case == 'base': normal['pull_request']['base']['sha'] = '0' * 40 + elif case == 'missing': del normal['pull_request'] + elif case == 'duplicate': raw = '{"repository":{},"repository":{}}' + elif case == 'unknown_event': name = 'workflow_dispatch' else: - name = "push" - footer = {"duplicate_footer": "SIT-Verification-Unit: VC\nSIT-Verification-Unit: VC", - "phase_footer": "SIT-Verification-Unit: VC\nSIT-Phase-Unit: P3-W15", "no_footer": "approved"}[case] - normal.update(ref="refs/heads/main", after=VC01, before=ANCHOR, - head_commit={"id": VC01, "message": footer}) - with pytest.raises(ValueError, match="^" + reason + "$"): - guard.current_context(name, raw or json.dumps(normal), VC01) - - -@pytest.mark.parametrize("case,value,reason", [ - ("branch", "verification/consolidation; injected", "current_unapproved_branch"), - ("branch", "verification/consolidation\n", "current_unapproved_branch"), - ("branch", "verification/consolidation/extra", "current_unapproved_branch"), - ("branch", "verification/VC-07", "current_unapproved_branch"), - ("footer", "SIT-Verification-Unit: VC ", "current_invalid_merge_footer"), - ("footer", "SIT-Verification-Unit: VC injected", "current_invalid_merge_footer"), - ("footer", "SIT-Verification-Unit: VC-07", "current_invalid_merge_footer"), - ("push_ref", "refs/heads/verification/consolidation", "current_unsupported_event"), - ("push_after", ANCHOR, "current_event_head_mismatch"), - ("push_head_id", ANCHOR, "current_event_head_mismatch"), - ("push_deleted", True, "current_event_head_mismatch"), - ("push_forced", True, "current_event_head_mismatch"), - ("base", "HEAD", "current_invalid_base"), - ("base", None, "current_invalid_base"), - ("base", VC01, "current_invalid_base"), - ("review_head", VC01[:12], "current_invalid_review_head"), - ("review_head", VC01.upper(), "current_invalid_review_head"), - ("review_head", None, "current_invalid_review_head"), + name, normal = 'push', push_event(repo, ENTRY) + normal['head_commit']['message'] = 'SIT-Phase-Unit: P4-W10' + with pytest.raises(ValueError, match='^' + reason + '$'): + guard.current_context(name, raw or json.dumps(normal), ENTRY, root=repo) + + +@pytest.mark.parametrize('case,value,reason', [ + ('branch', 'phase4/public-report; injected', 'current_unapproved_branch'), + ('branch', 'phase4/public-report\n', 'current_unapproved_branch'), + ('branch', 'phase4/public-report/extra', 'current_unapproved_branch'), + ('branch', 'verification/consolidation', 'current_unapproved_branch'), + ('push_ref', 'refs/heads/phase4/public-report', 'current_unsupported_event'), + ('push_after', ANCHOR, 'current_event_head_mismatch'), + ('push_head_id', ANCHOR, 'current_event_head_mismatch'), + ('push_deleted', True, 'current_event_head_mismatch'), + ('push_forced', True, 'current_event_head_mismatch'), + ('base', 'HEAD', 'current_invalid_base'), ('base', None, 'current_invalid_base'), + ('base', ENTRY, 'current_invalid_base'), + ('review_head', ENTRY[:12], 'current_invalid_review_head'), + ('review_head', ENTRY.upper(), 'current_invalid_review_head'), + ('review_head', None, 'current_invalid_review_head'), ]) -def test_current_context_preserves_exact_branch_footer_and_commit_boundaries(case, value, reason): +def test_current_context_preserves_exact_branch_footer_and_commit_boundaries(repo, case, value, reason): normal = event() - assert guard.current_context("pull_request", json.dumps(normal), VC01)["unit"] == "VC" - push = {"repository": {"full_name": PROJECT}, "ref": "refs/heads/main", "before": ANCHOR, - "after": VC01, "head_commit": {"id": VC01, "message": "Accept VC\n\nSIT-Verification-Unit: VC"}} - assert guard.current_context("push", json.dumps(push), VC01)["unit"] == "VC" - name, head = "pull_request", VC01 - if case == "branch": normal["pull_request"]["head"]["ref"] = value - elif case == "base": normal["pull_request"]["base"]["sha"] = value - elif case == "review_head": head = value + assert guard.current_context('pull_request', json.dumps(normal), ENTRY, root=repo)['unit'] == 'P4-W01' + push = push_event(repo, ENTRY) + assert guard.current_context('push', json.dumps(push), ENTRY, root=repo)['unit'] == 'P4-W01' + name, head = 'pull_request', ENTRY + if case == 'branch': normal['pull_request']['head']['ref'] = value + elif case == 'base': normal['pull_request']['base']['sha'] = value + elif case == 'review_head': head = value else: - name, normal = "push", push - if case == "footer": normal["head_commit"]["message"] = value - elif case == "push_head_id": normal["head_commit"]["id"] = value - else: normal[case.removeprefix("push_")] = value - with pytest.raises(ValueError, match="^" + reason + "$"): - guard.current_context(name, json.dumps(normal), head) + name, normal = 'push', push + if case == 'push_head_id': normal['head_commit']['id'] = value + else: normal[case.removeprefix('push_')] = value + with pytest.raises(ValueError, match='^' + reason + '$'): + guard.current_context(name, json.dumps(normal), head, root=repo) @pytest.mark.parametrize("path", [PRODUCT, "README.md.bak", "tests/contract/test_verification_boundaries.py", @@ -376,12 +527,12 @@ def test_current_context_preserves_exact_branch_footer_and_commit_boundaries(cas "tests\\contract\\test_verification_boundary.py"]) def test_current_exact_scope_rejects_unlisted_and_lookalike_paths(repo, path): baseline, blobs = guard.current_authority(repo) - actual = guard._current_snapshot(repo, VC01) + actual = guard._current_snapshot(repo, ENTRY) blobs.update(guard._current_objects(repo, [actual[PLAN][1]], "blob")) guard.current_scope(baseline, actual, blobs.__getitem__) changed = dict(actual) changed[path] = ("100644", "0" * 40) - expected = ("current_frozen_file_changed" if path == PRODUCT else + expected = ("current_premature_activation" if path == PRODUCT else "current_path_alias" if path in {"./README.md", "tests/../README.md", "README.md/", "README.md:stream", "tests\\contract\\test_verification_boundary.py"} else "current_unlisted_path") with pytest.raises(ValueError, match="^" + expected + "$"): @@ -389,9 +540,9 @@ def test_current_exact_scope_rejects_unlisted_and_lookalike_paths(repo, path): @pytest.mark.parametrize("case,reason", [ - ("unstaged", "current_frozen_file_changed"), ("staged_restored", "current_frozen_file_changed"), + ("unstaged", "current_premature_activation"), ("staged_restored", "current_premature_activation"), ("untracked", "current_unlisted_path"), ("deleted", "current_forbidden_deletion"), - ("rename", "current_unlisted_path"), ("assume_unchanged", "current_frozen_file_changed"), + ("rename", "current_unlisted_path"), ("assume_unchanged", "current_premature_activation"), ("mode", "current_file_mode_changed"), ("allowed_dirty", "current_dirty_checkout"), ("wrong_head", "current_checkout_head_mismatch"), ("mixed_semantic", "current_mixed_semantics_changed"), ]) @@ -403,10 +554,10 @@ def test_current_checkout_rejects_out_of_scope_states(repo, case, reason): elif case == "mode": git(repo, "update-index", "--chmod=+x", PRODUCT) elif case == "allowed_dirty": edit(repo, "README.md") elif case == "mixed_semantic": - path = repo / "tests/contract/test_bundle_contract.py" + path = repo / "tests/security/test_preparation_inertness.py" before = path.read_text(encoding="utf-8") - assert 'assert not hasattr(atom,"accepted")' in before - path.write_text(before.replace('assert not hasattr(atom,"accepted")', 'assert True'), encoding="utf-8") + assert "assert type(value) is _SafeDiagnostic" in before + path.write_text(before.replace("assert type(value) is _SafeDiagnostic", "assert True"), encoding="utf-8") elif case != "wrong_head": original = (repo / PRODUCT).read_bytes() edit(repo, PRODUCT) @@ -414,7 +565,7 @@ def test_current_checkout_rejects_out_of_scope_states(repo, case, reason): git(repo, "add", PRODUCT); (repo / PRODUCT).write_bytes(original) if case == "assume_unchanged": git(repo, "update-index", "--assume-unchanged", PRODUCT) with pytest.raises(ValueError, match="^" + reason + "$"): - guard.current_checkout(repo, ANCHOR if case == "wrong_head" else VC01) + guard.current_checkout(repo, ANCHOR if case == "wrong_head" else ENTRY) @pytest.mark.parametrize("path,payload,code", [ @@ -441,17 +592,31 @@ def test_current_live_effects_and_dependencies(path, payload, code): sources = module_sources() assert guard.current_module_issues(sources) == [] sources[path] = payload - assert (path, code) in guard.current_module_issues(sources) + assert code in guard.current_live_issues(path, payload.decode(), stage=1) def test_current_live_declaration_positive_control(): + path = 'reporting/assemble.py' + source = ('from dataclasses import dataclass\n@dataclass(frozen=True)\n' + 'class Record:\n value: int = 1\n\ndef f(value):\n return value\n') + assert guard.current_live_issues(path, source, stage=3) == [] sources = module_sources() - sources["graph/cycles.py"] = (b"from dataclasses import dataclass\n@dataclass(frozen=True)\n" - b"class Record:\n value: int = 1\n\ndef f(value):\n return value\n") - assert guard.current_module_issues(sources) == [] - sources["graph/cycles.py"] = b"from . import projections\n" - sources["graph/projections.py"] = b"from . import cycles\n" - assert ("src/source_integrity_toolkit", "import_cycle") in guard.current_module_issues(sources) + sources[path] = b'from . import json_report\n' + sources['reporting/json_report.py'] = b'from . import assemble\n' + assert ('src/source_integrity_toolkit', 'import_cycle') in guard.current_module_issues(sources, stage=5) + + +def test_reporting_composition_activation_does_not_grant_lower_layers_authority(): + source = 'from ..reporting import assemble\n' + assert guard.current_live_issues('runtime/boundary.py', source, stage=7) == [] + assert 'forbidden_dependency' in guard.current_live_issues('runtime/boundary.py', source, stage=6) + for stage in (3, 7, 10): + assert 'layer_violation' in guard.current_layer_issues( + 'reporting/assemble.py', 'from ..analysis import origins\n', stage=stage) + assert 'layer_violation' in guard.current_layer_issues( + 'contracts/report.py', 'from ..runtime import boundary\n', stage=stage) + assert 'forbidden_dependency' in guard.current_live_issues( + 'runtime/boundary.py', 'from ..io import platform_windows\n', stage=stage) def junit(nodes, subtests=0): @@ -533,7 +698,7 @@ def test_current_workflow_policy_and_mutations(case, reason): ("empty_artifacts", "current_workflow_upload"), ("artifact_scope", "current_workflow_upload"), ]) def test_current_ci_budgets_and_failure_evidence(case, reason): - assert guard.VC_SUITE_TIMEOUT == 2400 + assert guard.P4_SUITE_TIMEOUT == 2400 workflow = json.loads((ROOT / ".github/workflows/phase1-ci.yml").read_bytes()) guard.current_workflow(workflow) job = workflow["jobs"]["scaffold"] @@ -551,33 +716,107 @@ def test_current_history_rejects_restored_forbidden_changes(repo): verified(repo) original = (repo / PRODUCT).read_bytes() edit(repo, "README.md"); allowed = commit(repo) - assert [r["commit"] for r in guard.current_history(repo, ANCHOR, allowed)] == [VC01, allowed] + assert [r["commit"] for r in guard.current_history(repo, ANCHOR, allowed)] == [ENTRY, allowed] edit(repo, PRODUCT); forbidden = commit(repo) (repo / PRODUCT).write_bytes(original); restored = commit(repo) assert git(repo, "diff", "--name-only", allowed, restored) == b"" assert forbidden in git(repo, "rev-list", ANCHOR + ".." + restored).decode() - with pytest.raises(ValueError, match="^current_frozen_file_changed$"): + with pytest.raises(ValueError, match="^current_premature_activation$"): + guard.current_history(repo, ANCHOR, restored) + + +def test_current_history_rejects_restored_workflow_security_changes(repo): + verified(repo) + path = '.github/workflows/phase1-ci.yml' + original = (repo / path).read_bytes() + workflow = json.loads(original) + steps = workflow['jobs']['scaffold']['steps'] + python_step = next(step for step in steps if step.get('uses', '').startswith('actions/setup-python@')) + assert python_step['uses'] != 'actions/setup-python@main' + python_step['uses'] = 'actions/setup-python@main' + (repo / path).write_text(json.dumps(workflow) + '\n', encoding='utf-8') + changed = commit(repo) + (repo / path).write_bytes(original) + restored = commit(repo) + assert git(repo, 'diff', '--name-only', ENTRY, restored) == b'' + assert changed in git(repo, 'rev-list', ANCHOR + '..' + restored).decode() + with pytest.raises(ValueError, match='^current_workflow_python$'): + guard.current_history(repo, ANCHOR, restored) + + +@pytest.mark.parametrize('case', ['body', 'decorator', 'rebind']) +def test_current_history_rejects_restored_audit_file_changes_after_w08(repo, case): + before = advance(repo, 8)[8] + assert guard.current_history(repo, ANCHOR, before)[-1]['activation_stage'] == 8 + path = 'src/source_integrity_toolkit/api.py' + original = (repo / path).read_bytes() + if case == 'body': + marker = b' """Refuse immediately; never resolve, read or create a supplied path."""\n' + assert original.count(marker) == 1 + changed_source = original.replace(marker, marker + b' repr(input_path)\n') + elif case == 'decorator': + assert original.count(b'def audit_file(') == 1 + changed_source = original.replace(b'def audit_file(', b'@staticmethod\ndef audit_file(') + else: + changed_source = original + b'\naudit_file = audit_bundle\n' + assert changed_source != original + (repo / path).write_bytes(changed_source) + changed = commit(repo, unit=8) + (repo / path).write_bytes(original) + restored = commit(repo, unit=8) + assert git(repo, 'diff', '--name-only', before, restored) == b'' + assert changed in git(repo, 'rev-list', ANCHOR + '..' + restored).decode() + with pytest.raises(ValueError, match='^current_audit_file_changed$'): + guard.current_history(repo, ANCHOR, restored) + + +def test_current_history_rejects_restored_later_product_effects(repo): + before = advance(repo, 3)[3] + assert guard.current_history(repo, ANCHOR, before)[-1]['activation_stage'] == 3 + path = 'src/source_integrity_toolkit/reporting/assemble.py' + original = (repo / path).read_bytes() + edit(repo, path, b'\nimport socket\n') + changed = commit(repo, unit=3) + (repo / path).write_bytes(original) + restored = commit(repo, unit=3) + assert git(repo, 'diff', '--name-only', before, restored) == b'' + assert changed in git(repo, 'rev-list', ANCHOR + '..' + restored).decode() + with pytest.raises(ValueError, match='^current_product_boundary_failed$'): guard.current_history(repo, ANCHOR, restored) -@pytest.mark.parametrize("path", ["VERIFICATION_CONSOLIDATION_COMPLETION.md", "verification/consolidation_map.json"]) +@pytest.mark.parametrize('stage', [1, 5, 9]) +def test_current_risk_early_records_only_changes_require_full_verification(repo, stage): + base = advance(repo, stage)[stage] + assert guard.current_history(repo, ANCHOR, base)[-1]['activation_stage'] == stage + path = 'phase4/implementation_evidence.json' + edit(repo, path, b'\n') + head = commit(repo, unit=stage) + route = guard.current_risk(repo, base, head) + assert route['changed_paths'] == route['net_changed_paths'] == [path] + assert route['profile'] == 'full' and route['reason'] == 'early_stage_requires_full' + assert [row['commit'] for row in route['commit_changes']] == [head] + + +@pytest.mark.parametrize('path', ['PHASE_4_COMPLETION.md', 'phase4/implementation_evidence.json']) def test_current_risk_allows_only_explicit_non_executable_documentation(repo, path): - edit(repo, path, b"\n") - head = commit(repo) - route = guard.current_risk(repo, VC01, head) - assert route["profile"] == "documentation" - assert route["reason"] == "documentation_paths_only" - assert route["base"] == VC01 and route["head"] == head - assert route["changed_paths"] == route["net_changed_paths"] == [path] - assert route["commit_changes"] == [{ - "commit": head, "tree": git(repo, "rev-parse", head + "^{tree}").decode().strip(), - "parents": [{"parent": VC01, "changed_paths": [path]}], + checkpoints = advance(repo, 10) + base = checkpoints[10] + edit(repo, path, b'\n') + head = commit(repo, unit=10) + route = guard.current_risk(repo, base, head) + assert route['profile'] == 'documentation' + assert route['reason'] == 'documentation_paths_only' + assert route['base'] == base and route['head'] == head + assert route['changed_paths'] == route['net_changed_paths'] == [path] + assert route['commit_changes'] == [{ + 'commit': head, 'tree': git(repo, 'rev-parse', head + '^{tree}').decode().strip(), + 'parents': [{'parent': base, 'changed_paths': [path]}], }] - # The complete review range still contains the earlier executable changes. cumulative = guard.current_risk(repo, ANCHOR, head) - assert cumulative["profile"] == "full" - assert {row["commit"] for row in cumulative["commit_changes"]} == {VC01, head} - assert set(route["changed_paths"]) < set(cumulative["changed_paths"]) + assert cumulative['profile'] == 'full' + assert {row['commit'] for row in cumulative['commit_changes']} == set(checkpoints.values()) | {head} + assert set(route['changed_paths']) < set(cumulative['changed_paths']) @pytest.mark.parametrize("case", ["packaged_readme", "executable", "mixed", "candidate_override"]) @@ -586,82 +825,85 @@ def test_current_risk_escalates_package_code_and_mixed_changes(repo, case, monke expected = {path} edit(repo, path) if case in {"mixed", "candidate_override"}: - expected.add("verification/consolidation_map.json") + expected.add("phase4/implementation_evidence.json") if case == "candidate_override": - (repo / "verification/consolidation_map.json").write_text( + (repo / "phase4").mkdir(exist_ok=True) + (repo / "phase4/implementation_evidence.json").write_text( '{"profile":"documentation","authorized":true,"changed_paths":[]}', encoding="utf-8") monkeypatch.setenv("SIT_VERIFICATION_PROFILE", "documentation") monkeypatch.setenv("SIT_PHASE_UNIT", "P3-W15") else: - edit(repo, "verification/consolidation_map.json", b"\n") + edit(repo, "phase4/implementation_evidence.json", b"\n") head = commit(repo) - route = guard.current_risk(repo, VC01, head) + route = guard.current_risk(repo, ENTRY, head) assert route["profile"] == "full" and route["reason"] == "non_documentation_paths" assert set(route["changed_paths"]) == set(route["net_changed_paths"]) == expected assert [row["commit"] for row in route["commit_changes"]] == [head] def test_current_risk_cannot_hide_executable_change_by_restoring_final_tree(repo): - path = "tests/scaffold/test_imports.py" + path = 'tests/scaffold/test_imports.py' original = (repo / path).read_bytes() edit(repo, path) changed = commit(repo) (repo / path).write_bytes(original) restored = commit(repo) - edit(repo, "VERIFICATION_CONSOLIDATION_COMPLETION.md", b"\n") + edit(repo, 'phase4/implementation_evidence.json', b'{}\n') head = commit(repo) - route = guard.current_risk(repo, VC01, head) - assert route["net_changed_paths"] == ["VERIFICATION_CONSOLIDATION_COMPLETION.md"] - assert route["changed_paths"] == ["VERIFICATION_CONSOLIDATION_COMPLETION.md", path] - assert route["profile"] == "full" and route["reason"] == "non_documentation_paths" - assert [row["commit"] for row in route["commit_changes"]] == [changed, restored, head] + route = guard.current_risk(repo, ENTRY, head) + assert route['net_changed_paths'] == ['phase4/implementation_evidence.json'] + assert route['changed_paths'] == ['phase4/implementation_evidence.json', path] + assert route['profile'] == 'full' and route['reason'] == 'non_documentation_paths' + assert [row['commit'] for row in route['commit_changes']] == [changed, restored, head] def test_current_risk_includes_restored_executable_changes_on_merge_sides(repo): - path = "tests/scaffold/test_imports.py" + path = 'tests/scaffold/test_imports.py' + record = 'phase4/implementation_evidence.json' original = (repo / path).read_bytes() - git(repo, "checkout", "--quiet", "-b", "risk-main") - edit(repo, "VERIFICATION_CONSOLIDATION_COMPLETION.md", b"\n") + git(repo, 'checkout', '--quiet', '-b', 'risk-main') + edit(repo, record, b'{}\n') main = commit(repo) - git(repo, "checkout", "--quiet", "-b", "risk-side", VC01) + git(repo, 'checkout', '--quiet', '-b', 'risk-side', ENTRY) edit(repo, path) side = commit(repo) (repo / path).write_bytes(original) restored = commit(repo) - git(repo, "checkout", "--quiet", "risk-main") - git(repo, "merge", "--quiet", "--no-ff", "risk-side", "-m", "Synthetic risk merge") - head = git(repo, "rev-parse", "HEAD").decode().strip() - route = guard.current_risk(repo, VC01, head) - assert route["profile"] == "full" and route["reason"] == "non_documentation_paths" - assert route["net_changed_paths"] == ["VERIFICATION_CONSOLIDATION_COMPLETION.md"] - assert route["changed_paths"] == ["VERIFICATION_CONSOLIDATION_COMPLETION.md", path] - assert {row["commit"] for row in route["commit_changes"]} == {main, side, restored, head} - assert route["commit_changes"][-1]["parents"] == [ - {"parent": main, "changed_paths": []}, - {"parent": restored, "changed_paths": ["VERIFICATION_CONSOLIDATION_COMPLETION.md"]}, + git(repo, 'checkout', '--quiet', 'risk-main') + git(repo, 'merge', '--quiet', '--no-ff', 'risk-side', '-m', 'Synthetic risk merge\n\nSIT-Phase-Unit: P4-W01') + head = git(repo, 'rev-parse', 'HEAD').decode().strip() + route = guard.current_risk(repo, ENTRY, head) + assert route['profile'] == 'full' and route['reason'] == 'non_documentation_paths' + assert route['net_changed_paths'] == [record] + assert route['changed_paths'] == [record, path] + assert {row['commit'] for row in route['commit_changes']} == {main, side, restored, head} + assert route['commit_changes'][-1]['parents'] == [ + {'parent': main, 'changed_paths': []}, + {'parent': restored, 'changed_paths': [record]}, ] -@pytest.mark.parametrize("case", ["same_endpoint", "restored_docs"]) +@pytest.mark.parametrize('case', ['same_endpoint', 'restored_docs']) def test_current_risk_empty_changes_do_not_claim_documentation_success(repo, case): - head = VC01 - if case == "restored_docs": - path = "VERIFICATION_CONSOLIDATION_COMPLETION.md" + base = advance(repo, 10)[10] + head = base + if case == 'restored_docs': + path = 'phase4/implementation_evidence.json' original = (repo / path).read_bytes() - edit(repo, path, b"\n") - commit(repo) + edit(repo, path, b'\n') + commit(repo, unit=10) (repo / path).write_bytes(original) - head = commit(repo) - route = guard.current_risk(repo, VC01, head) - assert route["profile"] == "full" and route["reason"] == "empty_change_set" - assert route["net_changed_paths"] == [] + head = commit(repo, unit=10) + route = guard.current_risk(repo, base, head) + assert route['profile'] == 'full' and route['reason'] == 'empty_change_set' + assert route['net_changed_paths'] == [] def test_current_risk_does_not_authorize_unknown_markdown_paths(repo): edit(repo, "verification/unreviewed.md") head = commit(repo) with pytest.raises(ValueError, match="^current_unlisted_path$"): - guard.current_risk(repo, VC01, head) + guard.current_risk(repo, ENTRY, head) @pytest.mark.parametrize("case", ["valid_side", "forbidden_side", "pre_anchor_side", "wrong_base"]) @@ -673,20 +915,20 @@ def test_current_history_validates_anchor_parents_and_side_branches(repo, case): with pytest.raises(ValueError, match="^current_git_unavailable_or_incomplete$"): guard.current_history(repo, PARENTS[0], main) return - git(repo, "checkout", "--quiet", "-b", "side", PARENTS[0] if case == "pre_anchor_side" else VC01) - edit(repo, PRODUCT if case == "forbidden_side" else "tests/scaffold/test_imports.py") + git(repo, "checkout", "--quiet", "-b", "side", PARENTS[0] if case == "pre_anchor_side" else ENTRY) + edit(repo, PRODUCT if case == "forbidden_side" else "phase4/implementation_evidence.json") side = commit(repo) if case == "forbidden_side": - git(repo, "checkout", VC01, "--", PRODUCT); commit(repo) + git(repo, "checkout", ENTRY, "--", PRODUCT); commit(repo) git(repo, "checkout", "--quiet", "mainline") - git(repo, "merge", "--quiet", "--no-ff", "side", "-m", "Synthetic side merge") + git(repo, "merge", "--quiet", "--no-ff", "side", "-m", "Synthetic side merge\n\nSIT-Phase-Unit: P4-W01") head = git(repo, "rev-parse", "HEAD").decode().strip() if case == "valid_side": rows = guard.current_history(repo, ANCHOR, head) - assert {r["commit"] for r in rows} == {VC01, main, side, head} + assert {r["commit"] for r in rows} == {ENTRY, main, side, head} assert rows[-1]["parents"] == [main, side] else: - with pytest.raises(ValueError, match="^" + ("current_frozen_file_changed" if case == "forbidden_side" + with pytest.raises(ValueError, match="^" + ("current_premature_activation" if case == "forbidden_side" else "current_unanchored_parent") + "$"): guard.current_history(repo, ANCHOR, head) @@ -696,6 +938,38 @@ def batch_record(root, oid): return oid.encode() + b" commit " + str(len(body)).encode() + b"\n" + body + b"\n" +@pytest.mark.parametrize('target', ['root', 'nested']) +def test_current_tree_objects_reject_hash_inconsistent_bodies(repo, monkeypatch, target): + baseline, blobs = guard.current_authority(repo) + assert len(baseline) == 211 + assert guard._current_snapshot(repo, ANCHOR) == baseline + assert {path.removeprefix('src/source_integrity_toolkit/'): hashlib.sha256(blobs[oid]).hexdigest() + for path, (_, oid) in baseline.items() if path.startswith('src/')} == SOURCE_SHA256 + oid = TREE if target == 'root' else git(repo, 'rev-parse', ANCHOR + ':src').decode().strip() + body = git(repo, 'cat-file', 'tree', oid) + assert body + changed_body = body[:-1] + bytes([body[-1] ^ 1]) + prefix = oid.encode() + b' tree ' + str(len(body)).encode() + b'\n' + original_record = prefix + body + b'\n' + changed_record = prefix + changed_body + b'\n' + assert len(changed_record) == len(original_record) and changed_record != original_record + original_git = guard._current_git + changed_responses = [] + + def corrupted_tree(root, *args, input_bytes=None): + raw = original_git(root, *args, input_bytes=input_bytes) + if args == ('cat-file', '--batch') and oid.encode() in input_bytes.splitlines(): + assert raw.count(original_record) == 1 + changed_responses.append(oid) + return raw.replace(original_record, changed_record, 1) + return raw + + monkeypatch.setattr(guard, '_current_git', corrupted_tree) + with pytest.raises(ValueError, match='^current_git_object_hash_mismatch$'): + guard.current_authority(repo) + assert changed_responses == [oid] + + @pytest.mark.parametrize("case,reason", [ ("missing", "current_incomplete_object_batch"), ("duplicate", "current_malformed_object_record"), ("reordered", "current_malformed_object_record"), ("extra", "current_extra_object_records"), @@ -706,9 +980,11 @@ def batch_record(root, oid): ]) def test_current_git_metadata_rejects_malformed_responses(repo, monkeypatch, case, reason): expected = {ANCHOR: {"tree": TREE, "parents": PARENTS}, - VC01: {"tree": "0eaa6bbc406b2797b9a64c9cb840c856571b581b", "parents": [ANCHOR]}} - assert guard.current_commit_metadata(repo, [ANCHOR, VC01]) == expected - first, second = batch_record(repo, ANCHOR), batch_record(repo, VC01) + ENTRY: {"tree": ENTRY_TREE, "parents": [ANCHOR]}} + for oid, metadata in expected.items(): + metadata['message'] = git(repo, 'cat-file', 'commit', oid).partition(b'\n\n')[2].decode('utf-8') + assert guard.current_commit_metadata(repo, [ANCHOR, ENTRY]) == expected + first, second = batch_record(repo, ANCHOR), batch_record(repo, ENTRY) raw = first + second if case == "missing": raw = first elif case == "duplicate": raw = first + first @@ -724,7 +1000,7 @@ def test_current_git_metadata_rejects_malformed_responses(repo, monkeypatch, cas elif case == "trailing_blank": raw += b"\n" monkeypatch.setattr(guard, "_current_git", lambda *args, **kwargs: raw) with pytest.raises(ValueError, match="^" + reason + "$"): - guard.current_commit_metadata(repo, [ANCHOR, VC01]) + guard.current_commit_metadata(repo, [ANCHOR, ENTRY]) @pytest.mark.parametrize("case,reason", [ @@ -736,9 +1012,10 @@ def test_current_git_metadata_rejects_malformed_responses(repo, monkeypatch, cas ("missing_separator", "current_malformed_commit"), ]) def test_current_git_metadata_rejects_hash_valid_malformed_commit_headers(repo, monkeypatch, case, reason): - assert guard.current_commit_metadata(repo, [ANCHOR]) == {ANCHOR: {"tree": TREE, "parents": PARENTS}} body = git(repo, "cat-file", "commit", ANCHOR) header, separator, message = body.partition(b"\n\n") + assert guard.current_commit_metadata(repo, [ANCHOR]) == { + ANCHOR: {"tree": TREE, "parents": PARENTS, "message": message.decode('utf-8')}} assert separator and header.startswith(b"tree " + TREE.encode() + b"\n") lines = header.split(b"\n") assert lines[1:3] == [b"parent " + parent.encode() for parent in PARENTS] @@ -779,23 +1056,23 @@ def test_current_git_metadata_rereads_root_and_state(repo, tmp_path, monkeypatch other = tmp_path / "other" git(tmp_path, "clone", "--quiet", "--no-hardlinks", str(repo), str(other)) verified(other) - git(other, "replace", VC01, ANCHOR) + git(other, "replace", ENTRY, ANCHOR) with pytest.raises(ValueError, match="^current_replaced_history$"): - guard.current_history(other, ANCHOR, VC01) + guard.current_history(other, ANCHOR, ENTRY) # No cached result and no ambient GIT_DIR redirect may validate another root. monkeypatch.setenv("GIT_DIR", str(other / ".git")) verified(repo) - git(other, "replace", "-d", VC01) + git(other, "replace", "-d", ENTRY) verified(other) - (other / ".git/shallow").write_text(VC01 + "\n", encoding="ascii") + (other / ".git/shallow").write_text(ENTRY + "\n", encoding="ascii") with pytest.raises(ValueError, match="^current_shallow_history$"): - guard.current_history(other, ANCHOR, VC01) + guard.current_history(other, ANCHOR, ENTRY) @pytest.mark.parametrize("case,reason", [ ("shallow", "current_shallow_history"), ("replace", "current_replaced_history"), ("graft", "current_grafted_history"), ("missing_commit", "current_git_unavailable_or_incomplete"), - ("missing_tree", "current_git_unavailable_or_incomplete"), + ("missing_tree", "current_malformed_object_record"), ("missing_parent", "current_git_unavailable_or_incomplete"), ("missing_blob", "current_malformed_object_record"), ]) def test_current_history_handles_missing_and_overridden_objects(repo, case, reason): @@ -820,6 +1097,153 @@ def test_current_history_handles_missing_and_overridden_objects(repo, case, reas def test_current_history_rejects_wrong_parent(repo, monkeypatch): verified(repo) - monkeypatch.setattr(guard, "VC_ACCEPTED_PARENTS", tuple(reversed(PARENTS))) + monkeypatch.setattr(guard, "P4_ACCEPTED_PARENTS", tuple(reversed(PARENTS))) with pytest.raises(ValueError, match="^current_accepted_anchor_mismatch$"): - guard.current_history(repo, ANCHOR, VC01) + guard.current_history(repo, ANCHOR, ENTRY) + + +@pytest.mark.parametrize('footer', [ + '', 'SIT-Phase-Unit: P4-W01 ', 'SIT-Phase-Unit: P4-W01 injected', + 'SIT-Phase-Unit: P4-W00', 'SIT-Phase-Unit: P4-W11', + 'SIT-Phase-Unit: P4-W01\nSIT-Phase-Unit: P4-W01', + 'SIT-Phase-Unit: P4-W01\nSIT-Verification-Unit: VC', + 'SIT-Phase-Unit: P4-W01\nSIT-Phase-Unit: P3-W15', +]) +def test_actual_commit_footer_cannot_be_replaced_by_candidate_claims(repo, footer, monkeypatch): + verified(repo) + git(repo, 'commit', '--quiet', '--amend', '--cleanup=verbatim', + '-m', 'Synthetic bad footer\n\n' + footer) + head = git(repo, 'rev-parse', 'HEAD').decode().strip() + assert git(repo, 'cat-file', 'commit', head).partition(b'\n\n')[2].decode('utf-8') == ( + 'Synthetic bad footer\n\n' + footer + ('\n' if footer else '')) + candidate = event(head) + candidate['pull_request']['title'] = 'SIT-Phase-Unit: P4-W01' + candidate['approved_unit'] = 'P4-W01' + monkeypatch.setenv('SIT_PHASE_UNIT', 'P4-W01') + with pytest.raises(ValueError, match='^current_invalid_commit_footer$'): + guard.current_context('pull_request', json.dumps(candidate), head, root=repo) + with pytest.raises(ValueError, match='^current_invalid_commit_footer$'): + guard.current_context('push', json.dumps(push_event(repo, head)), head, root=repo) + + +@pytest.mark.parametrize('path,first_stage', sorted(ACTIVATION.items())) +def test_all_twelve_product_activation_boundaries_are_independent(repo, path, first_stage): + baseline, blobs = guard.current_authority(repo) + actual = guard._current_snapshot(repo, ENTRY) + blobs.update(guard._current_objects(repo, [actual[PLAN][1]], 'blob')) + guard.current_scope(baseline, actual, blobs.__getitem__, stage=first_stage - 1) + relative = 'src/source_integrity_toolkit/' + path + original = blobs[actual[relative][1]] + changed = original + b'\n# synthetic authorized declaration review\n' + oid = guard.git_blob(changed) + blobs[oid] = changed + actual[relative] = ('100644', oid) + with pytest.raises(ValueError, match='^current_premature_activation$'): + guard.current_scope(baseline, actual, blobs.__getitem__, stage=first_stage - 1) + guard.current_scope(baseline, actual, blobs.__getitem__, stage=first_stage) + + +@pytest.mark.parametrize('unit,path', [ + (1, 'src/source_integrity_toolkit/contracts/report.py'), + (2, 'README.md'), (3, 'README.md'), (4, 'README.md'), + (5, 'README.md'), (6, 'README.md'), (7, 'README.md'), + (8, 'src/source_integrity_toolkit/reporting/json_report.py'), + (9, 'README.md'), (10, 'src/source_integrity_toolkit/contracts/report.py'), +]) +def test_each_unit_rejects_paths_owned_by_another_approved_unit(repo, unit, path): + checkpoints = advance(repo, unit) + before = checkpoints[unit] + rows = guard.current_history(repo, ANCHOR, before) + assert rows[-1]['activation_stage'] == unit + assert path in SCOPES and path not in UNIT_PATHS[unit] + edit(repo, path) + head = commit(repo, unit=unit) + reason = 'current_premature_activation' if unit == 1 else 'current_unit_path_not_allowed' + with pytest.raises(ValueError, match='^' + reason + '$'): + guard.current_history(repo, ANCHOR, head) + + +@pytest.mark.parametrize('reached,skipped', [(1, 3), (1, 10), (2, 4), (7, 9)]) +def test_first_units_cannot_skip_their_predecessors(repo, reached, skipped): + checkpoints = advance(repo, reached) + assert guard.current_history(repo, ANCHOR, checkpoints[reached])[-1]['activation_stage'] == reached + edit(repo, 'phase4/implementation_evidence.json', b'\n') + head = commit(repo, unit=skipped) + with pytest.raises(ValueError, match='^current_unit_out_of_order$'): + guard.current_history(repo, ANCHOR, head) + + +def test_later_repair_keeps_monotonic_activation_and_exact_owner(repo): + checkpoints = advance(repo, 8) + before = guard.current_history(repo, ANCHOR, checkpoints[8]) + assert [row['activation_stage'] for row in before] == list(range(1, 9)) + edit(repo, 'src/source_integrity_toolkit/contracts/report.py') + repair = commit(repo, 'Synthetic W02 repair after W08', unit=2) + rows = guard.current_history(repo, ANCHOR, repair) + assert rows[-1]['owner_unit'] == 'P4-W02' + assert rows[-1]['activation_stage'] == 8 + context = guard.current_context('pull_request', json.dumps(event(repair)), repair, root=repo) + assert context['unit'] == 'P4-W02' and context['activation_stage'] == 8 + # W02 ownership cannot borrow a different already-active product path. + edit(repo, 'src/source_integrity_toolkit/reporting/json_report.py') + bad = commit(repo, unit=2) + with pytest.raises(ValueError, match='^current_unit_path_not_allowed$'): + guard.current_history(repo, ANCHOR, bad) + + +def test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion(repo): + checkpoints = advance(repo, 9) + # A real earlier-owner product change is inherited by the W10 merge. + edit(repo, 'src/source_integrity_toolkit/contracts/report.py') + repaired = commit(repo, 'Synthetic approved-scope W02 repair', unit=2) + assert guard.current_history(repo, ANCHOR, repaired)[-1]['activation_stage'] == 9 + edit(repo, 'phase4/implementation_evidence.json', b'\n') + candidate = commit(repo, unit=10) + candidate_tree = git(repo, 'rev-parse', candidate + '^{tree}').decode().strip() + assert guard.current_history(repo, ANCHOR, candidate)[-1]['activation_stage'] == 10 + git(repo, 'checkout', '--quiet', '--detach', ANCHOR) + git(repo, 'merge', '--quiet', '--no-ff', candidate, '-m', + 'Synthetic accepted candidate merge\n\nSIT-Phase-Unit: P4-W10') + merged = git(repo, 'rev-parse', 'HEAD').decode().strip() + assert git(repo, 'rev-parse', merged + '^{tree}').decode().strip() == candidate_tree + rows = guard.current_history(repo, ANCHOR, merged) + assert rows[-1]['parents'] == [ANCHOR, candidate] + assert rows[-1]['owner_unit'] == 'P4-W10' and rows[-1]['activation_stage'] == 10 + assert set(checkpoints.values()) | {repaired, candidate, merged} == {row['commit'] for row in rows} + context = guard.current_context('push', json.dumps(push_event(repo, merged)), merged, root=repo) + assert context == {'unit': 'P4-W10', 'activation_stage': 10, + 'base': ANCHOR, 'head': merged, 'event': 'push'} + # New merge bytes are not inherited authority, even at an active path. + edit(repo, 'src/source_integrity_toolkit/contracts/report.py') + git(repo, 'add', '-A') + git(repo, 'commit', '--quiet', '--amend', '--no-edit') + changed_merge = git(repo, 'rev-parse', 'HEAD').decode().strip() + with pytest.raises(ValueError, match='^current_unit_path_not_allowed$'): + guard.current_history(repo, ANCHOR, changed_merge) + with pytest.raises(ValueError, match='^current_merge_candidate_tree_mismatch$'): + guard.current_context('push', json.dumps(push_event(repo, changed_merge)), changed_merge, root=repo) + # A third parent cannot be passed off as the normal main-branch merge, + # even when its result exactly inherits the verified candidate tree. + octopus = git(repo, 'commit-tree', candidate_tree, '-p', ANCHOR, '-p', candidate, '-p', repaired, + '-m', 'Synthetic octopus merge\n\nSIT-Phase-Unit: P4-W10').decode().strip() + assert git(repo, 'rev-parse', octopus + '^{tree}').decode().strip() == candidate_tree + with pytest.raises(ValueError, match='^current_invalid_main_merge$'): + guard.current_context('push', json.dumps(push_event(repo, octopus)), octopus, root=repo) + + +def test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit(repo): + verified(repo) + git(repo, 'checkout', '--quiet', '-b', 'order-main') + main = advance(repo, 2)[2] + assert guard.current_history(repo, ANCHOR, main)[-1]['activation_stage'] == 2 + git(repo, 'checkout', '--quiet', '-b', 'order-side', ENTRY) + edit(repo, 'tests/contract/test_report_identity.py', b'# synthetic scope test\n') + side = commit(repo, unit=3) + with pytest.raises(ValueError, match='^current_unit_out_of_order$'): + guard.current_history(repo, ANCHOR, side) + git(repo, 'checkout', '--quiet', 'order-main') + git(repo, 'merge', '--quiet', '--no-ff', 'order-side', '-m', + 'Synthetic falsely ordered merge\n\nSIT-Phase-Unit: P4-W03') + merged = git(repo, 'rev-parse', 'HEAD').decode().strip() + with pytest.raises(ValueError, match='^current_unit_out_of_order$'): + guard.current_history(repo, ANCHOR, merged) diff --git a/tests/integration/test_analytical_installed_runtime.py b/tests/integration/test_analytical_installed_runtime.py index d72afad..90e4f7d 100644 --- a/tests/integration/test_analytical_installed_runtime.py +++ b/tests/integration/test_analytical_installed_runtime.py @@ -179,9 +179,11 @@ def test_clean_installed_analysis_original_heroes_and_completed_finite_case(inst ROOT / 'tests/integration/test_analytical_pipeline.py'] fixture_paths = [ROOT / 'tests' / kind / (case + suffix) for case in hero.HEROES for kind, suffix in (('fixtures/hero', '.bundle.json'), ('golden', '.logical.json'))] - record = {'head': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=ROOT, text=True).strip(), + guard = _load('sit_current_installed_context', 'tools/check_scaffold_boundary.py') + state = guard.current_local_state(ROOT) + record = {**state, 'scope': 'W14 installed private analysis; original hero stops are not completed golden certification', - 'unit': 'P3-W14', 'ok': True, 'runtime': actual, 'distributions': inventories, + 'ok': True, 'runtime': actual, 'distributions': inventories, 'test_sources': {path.relative_to(ROOT).as_posix(): hashlib.sha256(path.read_bytes()).hexdigest() for path in paths}, 'frozen_test_sources': {path.relative_to(ROOT).as_posix(): hashlib.sha256(path.read_bytes()).hexdigest() diff --git a/tests/scaffold/test_ci_contract.py b/tests/scaffold/test_ci_contract.py index 1cc80e7..6b7581c 100644 --- a/tests/scaffold/test_ci_contract.py +++ b/tests/scaffold/test_ci_contract.py @@ -325,13 +325,15 @@ def configure_context(): ("GITHUB_EVENT_PATH", "GITHUB_EVENT_NAME", "SIT_REVIEW_HEAD")), "current_external_context_required") return phase_guard.current_context(os.environ["GITHUB_EVENT_NAME"], - Path(os.environ["GITHUB_EVENT_PATH"]).read_bytes(), os.environ["SIT_REVIEW_HEAD"]) + Path(os.environ["GITHUB_EVENT_PATH"]).read_bytes(), os.environ["SIT_REVIEW_HEAD"], root=ROOT) def current_binding(*, local=False): head = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=ROOT, text=True).strip() if local: - return {"mode": "local", "head": head, "python": sys.version, + state = phase_guard.current_local_state(ROOT) + require(state["head"] == head, "wrong_checked_commit") + return {"mode": "local", **state, "python": sys.version, "platform": platform.platform(), "hosted_matrix_attestation": False} context = configure_context() require(os.environ.get("GITHUB_ACTIONS") == "true", "explicit Actions invocation required") @@ -375,8 +377,8 @@ def entry_and_scope(evidence): history = phase_guard.current_history(ROOT, context["base"], context["head"], authority) checkout = phase_guard.current_checkout(ROOT, context["head"], authority) record = {"ok": True, **context, **checkout, - "accepted_head": phase_guard.VC_ACCEPTED_HEAD, - "accepted_tree": phase_guard.VC_ACCEPTED_TREE, + "accepted_head": phase_guard.P4_ACCEPTED_HEAD, + "accepted_tree": phase_guard.P4_ACCEPTED_TREE, "actual_entry_files": len(authority[0]), "intermediate_commits": history, "provenance": "Accepted Git anchor, every subsequent commit including merge sides, index and actual worktree"} save(evidence / "entry-and-scope.json", record) @@ -387,9 +389,10 @@ def guard_command(tool, *, local=False): command = [sys.executable, "-B", "tools/" + tool + ".py"] if tool == "check_scaffold_boundary": if local: - command += ["--modules-only"] + state = phase_guard.current_local_state(ROOT) + command += ["--modules-only", "--stage", str(state["activation_stage"])] else: - command += ["--unit", "VC", "--event-name", os.environ["GITHUB_EVENT_NAME"], + command += ["--unit", configure_context()["unit"], "--event-name", os.environ["GITHUB_EVENT_NAME"], "--event-file", os.environ["GITHUB_EVENT_PATH"], "--head", os.environ["SIT_REVIEW_HEAD"]] return command @@ -411,7 +414,7 @@ def preflight(base, evidence): if risk["profile"] == "documentation": validate_documentation() save(evidence / "environment.json", {"binding": binding, "platform": platform.platform(), - "image_version": os.environ.get("ImageVersion"), "scope": "Current verification consolidation"}) + "image_version": os.environ.get("ImageVersion"), "scope": "Current Phase 4 verification"}) for tool in ("check_phase0_baseline", "check_scaffold_boundary"): run(guard_command(tool), evidence, tool + "-before") save(evidence / "preflight.json", {"binding": binding, "ok": True, @@ -431,9 +434,9 @@ def selected_profile(evidence): def validate_documentation(): """These records carry no authority, but their formats must remain readable.""" - value = json.loads((ROOT / "verification/consolidation_map.json").read_bytes(), object_pairs_hook=unique) - require(isinstance(value, dict) and bool(value), "documentation_map_must_be_nonempty_object") - require(bool((ROOT / "VERIFICATION_CONSOLIDATION_COMPLETION.md").read_text(encoding="utf-8").strip()), + value = json.loads((ROOT / "phase4/implementation_evidence.json").read_bytes(), object_pairs_hook=unique) + require(isinstance(value, dict) and bool(value), "documentation_evidence_must_be_nonempty_object") + require(bool((ROOT / "PHASE_4_COMPLETION.md").read_text(encoding="utf-8").strip()), "documentation_completion_must_be_nonempty_utf8") @@ -546,15 +549,19 @@ def installed_receipts(base, evidence, binding, archives, *, local=False): path.write_bytes(found[0].read_bytes()) receipt = json.loads(path.read_bytes()) require(receipt.get("head") == binding["head"] and receipt.get("ok") is True, "installed_receipt_head_or_result") + require(receipt.get("unit") == binding["unit"] and + type(receipt.get("activation_stage")) is int and + receipt.get("activation_stage") == binding["activation_stage"], + "installed_receipt_current_context_mismatch") runtime = receipt["runtime"] require(runtime["modules"] == modules and runtime["runtime_distributions"] == ["source-integrity-toolkit"] and runtime["normal_effects"] == [] and runtime["negative_events"] == ["open", "socket.getaddrinfo", "ctypes.dlopen"] and runtime["public_refusals"] == 2, "installed_runtime_boundary_incomplete") if label == "w08": - require(receipt["unit"] == "VC" and runtime["admitted_fixture_modes"] == 8 and + require(runtime["admitted_fixture_modes"] == 8 and runtime["rejected_empty_modes"] == 2, "installed_preparation_modes_missing") else: - require(receipt["unit"] == "P3-W14" and len(runtime["hero_modes"]) == 8 and + require(len(runtime["hero_modes"]) == 8 and len(runtime["completed_finite_modes"]) == 2 and runtime["invalid_modes"] == 2, "installed_analysis_modes_missing") source_sets = { @@ -580,14 +587,14 @@ def installed_receipts(base, evidence, binding, archives, *, local=False): def emit_summary(evidence, summary): save(evidence / "summary.json", summary) - print("VC_SUMMARY " + json.dumps(summary, sort_keys=True), flush=True) + print("P4_SUMMARY " + json.dumps(summary, sort_keys=True), flush=True) if os.environ.get("GITHUB_STEP_SUMMARY") and summary.get("mode") != "local": with open(os.environ["GITHUB_STEP_SUMMARY"], "a", encoding="utf-8") as output: - output.write("## Current verification consolidation\n\n```json\n" + json.dumps(summary, indent=2) + "\n```\n") + output.write("## Current Phase 4 verification\n\n```json\n" + json.dumps(summary, indent=2) + "\n```\n") def evidence_report(base, evidence, *, local=False): - summary = {"scope": "Current verification consolidation", "mode": "local" if local else "hosted", + summary = {"scope": "Current Phase 4 verification", "mode": "local" if local else "hosted", "pass": False, "full_suite": False, "hosted_matrix_attestation": False} try: binding = current_binding(local=local) @@ -655,7 +662,7 @@ def stage_failure(evidence, stage, exc, *, local=False): save(evidence / (stage + "-failure.json"), failure) summary_path = evidence / "summary.json" summary = json.loads(summary_path.read_bytes()) if summary_path.exists() else { - "scope": "Current verification consolidation", "mode": "local" if local else "hosted"} + "scope": "Current Phase 4 verification", "mode": "local" if local else "hosted"} summary.update({"pass": False, "full_suite": False, "hosted_matrix_attestation": False, "failure": failure}) emit_summary(evidence, summary) @@ -705,6 +712,94 @@ def workspace(self): self.addCleanup(temporary.cleanup) return Path(temporary.name) + def test_actual_event_is_checked_against_repository_commit_context(self): + event_file = self.workspace() / "event.json" + event_file.write_bytes(b'{"actual":"event"}') + context = {"unit": "P4-W01", "activation_stage": 1, "head": "a" * 40, + "base": "b" * 40, "event": "pull_request"} + with mock.patch.dict(os.environ, {"GITHUB_EVENT_NAME": "pull_request", + "GITHUB_EVENT_PATH": str(event_file), "SIT_REVIEW_HEAD": context["head"], + "SIT_PHASE_UNIT": "P4-W10"}), \ + mock.patch.object(phase_guard, "current_context", return_value=context) as resolve: + self.assertEqual(configure_context(), context) + resolve.assert_called_once_with("pull_request", event_file.read_bytes(), context["head"], root=ROOT) + + def test_local_binding_uses_verified_ancestry_without_hosted_attestation(self): + state = {"unit": "P4-W02", "activation_stage": 8, "head": "a" * 40, + "base": "b" * 40, "clean": False} + with mock.patch.object(phase_guard, "current_local_state", return_value=state) as resolve, \ + mock.patch.object(subprocess, "check_output", return_value=state["head"] + "\n"), \ + mock.patch.dict(os.environ, {"SIT_PHASE_UNIT": "P4-W01", "GITHUB_RUN_ID": "123"}): + binding = current_binding(local=True) + resolve.assert_called_once_with(ROOT) + self.assertEqual({key: binding[key] for key in state}, state) + self.assertEqual(binding["mode"], "local") + self.assertIs(binding["hosted_matrix_attestation"], False) + self.assertNotIn("run_id", binding) + + def test_local_package_probe_keeps_activation_after_earlier_unit_repair(self): + state = {"unit": "P4-W02", "activation_stage": 8, "head": "a" * 40} + with mock.patch.object(phase_guard, "current_local_state", return_value=state): + command = guard_command("check_scaffold_boundary", local=True) + self.assertEqual(command[-3:], ["--modules-only", "--stage", "8"]) + self.assertNotIn("--unit", command) + + def test_hosted_guard_unit_comes_from_verified_context(self): + context = {"unit": "P4-W01", "activation_stage": 1} + with mock.patch(__name__ + ".configure_context", return_value=context), \ + mock.patch.dict(os.environ, {"GITHUB_EVENT_NAME": "pull_request", + "GITHUB_EVENT_PATH": "actual-event.json", "SIT_REVIEW_HEAD": "a" * 40, + "SIT_PHASE_UNIT": "P4-W10"}): + command = guard_command("check_scaffold_boundary") + self.assertEqual(command[command.index("--unit") + 1], "P4-W01") + + def test_installed_receipts_bind_current_unit_activation_and_both_refusals(self): + evidence = self.workspace() + binding = {"head": "a" * 40, "unit": "P4-W01", "activation_stage": 1} + modules = {} + for path in sorted((ROOT / "src/source_integrity_toolkit").rglob("*.py")): + name = path.relative_to(ROOT / "src").as_posix().removesuffix(".py").replace("/", ".").removesuffix(".__init__") + modules[name] = hashlib.sha256(path.read_bytes()).hexdigest() + self.assertEqual(len(modules), 48) + distributions = [{"name": "synthetic.tar.gz", "members": {"source": "synthetic"}}, + {"name": "synthetic.whl", "members": {"module": "synthetic"}}, + {"name": "synthetic.whl", "members": {"module": "synthetic"}}] + runtime = {"modules": modules, "runtime_distributions": ["source-integrity-toolkit"], + "normal_effects": [], "negative_events": ["open", "socket.getaddrinfo", "ctypes.dlopen"], + "public_refusals": 2} + w08 = {**binding, "ok": True, "distributions": distributions, "runtime": { + **runtime, "admitted_fixture_modes": 8, "rejected_empty_modes": 2}} + w14 = {**binding, "ok": True, "distributions": distributions, "runtime": { + **runtime, "hero_modes": list(range(8)), "completed_finite_modes": list(range(2)), "invalid_modes": 2}} + for field, paths in { + "test_sources": ["tests/integration/test_analytical_installed_runtime.py", + "tests/integration/test_analytical_hero_inputs.py", "tests/integration/test_analytical_pipeline.py"], + "frozen_test_sources": ["tests/" + kind + "/" + case + suffix + for case in ("H7-01", "H7-V01", "H7-V02", "H7-V03") + for kind, suffix in (("fixtures/hero", ".bundle.json"), ("golden", ".logical.json"))], + }.items(): + w14[field] = {path: hashlib.sha256((ROOT / path).read_bytes()).hexdigest() for path in paths} + records = {"w08": w08, "w14": w14} + for label, record in records.items(): + save(evidence / (label + "-installed-runtime.json"), record) + self.assertEqual(set(installed_receipts(evidence, evidence, binding, distributions)), {"w08", "w14"}) + for label in records: + for field, value, reason in ( + ("unit", "VC", "installed_receipt_current_context_mismatch"), + ("unit", "P3-W14", "installed_receipt_current_context_mismatch"), + ("activation_stage", 8, "installed_receipt_current_context_mismatch"), + ("activation_stage", True, "installed_receipt_current_context_mismatch"), + ("head", "b" * 40, "installed_receipt_head_or_result"), + ("public_refusals", 1, "installed_runtime_boundary_incomplete")): + with self.subTest(label=label, field=field, value=value): + changed = copy.deepcopy(records[label]) + (changed["runtime"] if field == "public_refusals" else changed)[field] = value + save(evidence / (label + "-installed-runtime.json"), changed) + with self.assertRaisesRegex(ValueError, "^" + reason + "$"): + installed_receipts(evidence, evidence, binding, distributions) + save(evidence / (label + "-installed-runtime.json"), records[label]) + self.assertEqual(set(installed_receipts(evidence, evidence, binding, distributions)), {"w08", "w14"}) + def test_timeout_preserves_partial_stdout_stderr_and_status(self): evidence = self.workspace() command = [sys.executable, "-u", "-c", @@ -818,10 +913,12 @@ def test_local_children_do_not_inherit_hosted_receipt_destination(self): def test_wrong_head_attempt_or_matrix_cannot_reuse_stage_record(self): evidence = self.workspace() - binding = {"head": "candidate", "run_attempt": "1", "matrix_python": "3.11"} + binding = {"head": "candidate", "run_attempt": "1", "matrix_python": "3.11", + "unit": "P4-W01", "activation_stage": 1} save(evidence / "binding.json", binding) save(evidence / "preflight.json", {"binding": binding, "ok": True}) - for field, value in (("head", "other"), ("run_attempt", "2"), ("matrix_python", "3.13")): + for field, value in (("head", "other"), ("run_attempt", "2"), ("matrix_python", "3.13"), + ("unit", "P4-W02"), ("activation_stage", 8)): with self.subTest(field=field): with self.assertRaisesRegex(ValueError, "identity_mismatch"): bound_record(evidence, "preflight.json", {**binding, field: value}) @@ -862,15 +959,15 @@ def test_documentation_route_explicitly_records_no_install_or_full_suite(self): def test_documentation_still_requires_readable_nonempty_records(self): root = self.workspace() - (root / "verification").mkdir() - (root / "VERIFICATION_CONSOLIDATION_COMPLETION.md").write_text("Review record", encoding="utf-8") + (root / "phase4").mkdir() + (root / "PHASE_4_COMPLETION.md").write_text("Review record", encoding="utf-8") with mock.patch(__name__ + ".ROOT", root): for content in ("{", "{}", "[]", '{"a":1,"a":2}'): with self.subTest(content=content): - (root / "verification/consolidation_map.json").write_text(content, encoding="utf-8") + (root / "phase4/implementation_evidence.json").write_text(content, encoding="utf-8") with self.assertRaises(ValueError): validate_documentation() - (root / "verification/consolidation_map.json").write_text('{"record":"readable"}', encoding="utf-8") + (root / "phase4/implementation_evidence.json").write_text('{"record":"readable"}', encoding="utf-8") validate_documentation() def test_early_context_failure_still_writes_failed_summary(self): @@ -914,7 +1011,7 @@ def test_parameter_delimiters_remain_part_of_junit_test_name(self): parser.add_argument("--evidence-dir", type=Path) args = parser.parse_args() if args.local: - destination = args.evidence_dir or Path(tempfile.mkdtemp(prefix="sit-vc-local-")) + destination = args.evidence_dir or Path(tempfile.mkdtemp(prefix="sit-p4-local-")) print("Local evidence: " + str(destination.resolve()), flush=True) local_verify(destination) else: diff --git a/tests/scaffold/test_imports.py b/tests/scaffold/test_imports.py index 0ca6707..e4d4604 100644 --- a/tests/scaffold/test_imports.py +++ b/tests/scaffold/test_imports.py @@ -7,6 +7,7 @@ """ import ast +from functools import cache import importlib import os from pathlib import Path @@ -21,6 +22,10 @@ PACKAGE_FILES = ('__init__.py', 'analysis/__init__.py', 'analysis/context.py', 'analysis/contribution_profile.py', 'analysis/correction_outcomes.py', 'analysis/correction_routes.py', 'analysis/evaluator_lineage.py', 'analysis/findings.py', 'analysis/human_review.py', 'analysis/inventory.py', 'analysis/origins.py', 'analysis/presence.py', 'analysis/process_comparison.py', 'api.py', 'cli.py', 'contracts/__init__.py', 'contracts/bundle.py', 'contracts/constants.py', 'contracts/evidence.py', 'contracts/execution.py', 'contracts/report.py', 'contracts/results.py', 'graph/__init__.py', 'graph/cycles.py', 'graph/projections.py', 'graph/traversal.py', 'graph/witnesses.py', 'io/__init__.py', 'io/input_file.py', 'io/output_directory.py', 'io/platform_linux.py', 'io/platform_windows.py', 'io/publication.py', 'reporting/__init__.py', 'reporting/assemble.py', 'reporting/escaping.py', 'reporting/json_report.py', 'reporting/markdown_report.py', 'runtime/__init__.py', 'runtime/boundary.py', 'runtime/diagnostics.py', 'runtime/disclosure.py', 'runtime/resources.py', 'validation/__init__.py', 'validation/limits.py', 'validation/references.py', 'validation/semantics.py', 'validation/structure.py') ROOT = Path(__file__).resolve().parents[2] PACKAGE_ROOT = ROOT / "src" / "source_integrity_toolkit" +@cache +def current_stage(): + """Resolve trusted local activation only during execution, never collection.""" + return phase_guard.current_local_state(ROOT)["activation_stage"] def module_name(path): @@ -39,11 +44,11 @@ def test_each_planned_module_imports(path): def test_exact_package_file_set_and_inert_slots(): assert {p.relative_to(PACKAGE_ROOT).as_posix() for p in PACKAGE_ROOT.rglob("*.py")} == set(PACKAGE_FILES) - active = phase_guard.VC_ACTIVE + active = phase_guard.current_active(current_stage()) for relative in set(PACKAGE_FILES) - {"__init__.py", "api.py", "cli.py", "contracts/constants.py"}: source = (PACKAGE_ROOT / relative).read_text(encoding="utf-8") if relative in active: - assert not phase_guard.current_live_issues(relative, source) + assert not phase_guard.current_live_issues(relative, source, stage=current_stage()) else: tree = ast.parse(source) assert len(tree.body) == 1 @@ -51,7 +56,7 @@ def test_exact_package_file_set_and_inert_slots(): assert isinstance(tree.body[0].value, ast.Constant) assert isinstance(tree.body[0].value.value, str) assert "behavior unimplemented" in tree.body[0].value.value - result = phase_guard.current_check_repository(ROOT) + result = phase_guard.current_check_repository(ROOT, stage=current_stage()) assert result["ok"], result diff --git a/tests/scaffold/test_layer_boundaries.py b/tests/scaffold/test_layer_boundaries.py index a752c84..2881f21 100644 --- a/tests/scaffold/test_layer_boundaries.py +++ b/tests/scaffold/test_layer_boundaries.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 """Software dependency-direction tests; no source graph is evaluated.""" import sys +from functools import cache import unittest from pathlib import Path @@ -9,37 +10,42 @@ sys.path.insert(0, str(ROOT)) from tools import check_scaffold_boundary as guard +@cache +def current_stage(): + """Resolve trusted local activation only during execution, never collection.""" + return guard.current_local_state(ROOT)["activation_stage"] + class LayerBoundaryTests(unittest.TestCase): def test_accepted_imports_have_no_layer_errors(self): for path in guard.EXPECTED_PATHS: with self.subTest(path=path): source = (ROOT / "src/source_integrity_toolkit" / path).read_text(encoding="utf-8") - self.assertEqual(guard.current_layer_issues(path, source), []) + self.assertEqual(guard.current_layer_issues(path, source, stage=current_stage()), []) def test_allowed_architecture_direction_does_not_authorize_behavior(self): source = "from ..contracts import evidence\n" - self.assertEqual(guard.current_layer_issues("analysis/origins.py", source), []) + self.assertEqual(guard.current_layer_issues("analysis/origins.py", source, stage=current_stage()), []) self.assertTrue(guard.form_issues("analysis/origins.py", source)) def test_reporting_cannot_recompute_analysis(self): self.assertIn("layer_violation", guard.current_layer_issues( - "reporting/json_report.py", "from ..analysis.origins import trace\n")) + "reporting/json_report.py", "from ..analysis.origins import trace\n", stage=current_stage())) def test_lower_layers_cannot_import_runtime_authority(self): for path in ("contracts/bundle.py", "validation/structure.py", "graph/traversal.py"): with self.subTest(path=path): - self.assertIn("layer_violation", guard.current_layer_issues(path, "from ..runtime.boundary import run\n")) + self.assertIn("layer_violation", guard.current_layer_issues(path, "from ..runtime.boundary import run\n", stage=current_stage())) def test_cross_project_native_network_and_oracle_imports_fail(self): for name in ("recursive_integrity_toolkit", "integrity_core", "ctypes", "socket", "requests", "subprocess", "tests.golden", "scaffold", "tools"): with self.subTest(name=name): - self.assertIn("unapproved_import", guard.current_layer_issues("api.py", f"import {name}\n")) + self.assertIn("unapproved_import", guard.current_layer_issues("api.py", f"import {name}\n", stage=current_stage())) def test_relative_escape_and_wildcard_fail(self): - self.assertIn("relative_import_escape", guard.current_layer_issues("api.py", "from ...x import y\n")) - self.assertIn("wildcard_import", guard.current_layer_issues("analysis/origins.py", "from ..contracts import *\n")) + self.assertIn("relative_import_escape", guard.current_layer_issues("api.py", "from ...x import y\n", stage=current_stage())) + self.assertIn("wildcard_import", guard.current_layer_issues("analysis/origins.py", "from ..contracts import *\n", stage=current_stage())) def test_import_cycle_detection_has_positive_and_negative_controls(self): positive = {"analysis/origins.py": "from . import inventory\n", "analysis/inventory.py": '"""slot"""\n'} diff --git a/tests/scaffold/test_module_manifest.py b/tests/scaffold/test_module_manifest.py index c0a0661..9fde578 100644 --- a/tests/scaffold/test_module_manifest.py +++ b/tests/scaffold/test_module_manifest.py @@ -8,6 +8,7 @@ """ import ast +from functools import cache import copy import hashlib import json @@ -20,6 +21,11 @@ sys.path.insert(0, str(ROOT)) from tools import check_scaffold_boundary as phase_guard +@cache +def current_stage(): + """Resolve trusted local activation only during execution, never collection.""" + return phase_guard.current_local_state(ROOT)["activation_stage"] + PREFIX = "src/source_integrity_toolkit/" # PHASE_1_PLAN.md section 6: exact closed file list, including WU11 additions. PATHS = { @@ -76,7 +82,7 @@ def blob(raw): def verify_manifest(manifest, files, owners): require(manifest["status"] == STATUS, "False implementation status") require(manifest["package_prefix"] == PREFIX, "Unexpected package prefix") - active = phase_guard.VC_ACTIVE + active = phase_guard.current_active(current_stage()) rows = manifest["modules"] require(len(rows) == 48 and len({r[0] for r in rows}) == 48, "Duplicate/missing module") require({r[0] for r in rows} == EXPECTED == set(files), "Closed path set changed") @@ -94,7 +100,7 @@ def verify_manifest(manifest, files, owners): if path not in active: require(blob(raw) == expected_blob, "Protected source bytes changed: " + path) else: - require(not phase_guard.current_live_issues(path, raw.decode("utf-8")), + require(not phase_guard.current_live_issues(path, raw.decode("utf-8"), stage=current_stage()), "Forbidden live-module behavior") text = raw.decode("utf-8") tree = ast.parse(text) @@ -202,21 +208,26 @@ def test_mutations_cannot_hide_missing_or_operational_slots(self): def test_mutated_product_bytes_are_rejected(self): bad = dict(self.files) - bad["reporting/json_report.py"] += b"\ndef analyze():\n return 42\n" + bad["io/publication.py"] += b"\ndef analyze():\n return 42\n" with self.assertRaises(AssertionError): verify_manifest(self.manifest, bad, self.owners) class LiveModuleManifestTests(unittest.TestCase): - """Actual live-body/effect/owner controls, separate from historical bytes.""" + """Direct AST/effect/owner controls, separate from checkout authorization. + + Legal synthetic bodies isolate these checks. Current package/history + inspection independently freezes all W01 product bytes, including these + already operational analytical modules. + """ @classmethod def setUpClass(cls): ModuleManifestTests.setUpClass.__func__(cls) def _assert_live_effect_control(self, path): - self.assertIn(path, phase_guard.VC_ACTIVE) + self.assertIn(path, phase_guard.current_active(current_stage())) verify_manifest(self.manifest, self.files, self.owners) legal = dict(self.files) legal[path] += b"\ndef analyze():\n return 42\n" @@ -228,7 +239,7 @@ def _assert_live_effect_control(self, path): verify_manifest(self.manifest, self.files, self.owners) def _assert_live_owner_control(self, path): - self.assertIn(path, phase_guard.VC_ACTIVE) + self.assertIn(path, phase_guard.current_active(current_stage())) verify_manifest(self.manifest, self.files, self.owners) legal = dict(self.files) legal[path] += b"\ndef analyze():\n return 42\n" diff --git a/tests/scaffold/test_no_runtime_implementation.py b/tests/scaffold/test_no_runtime_implementation.py index e555759..4b4ea8b 100644 --- a/tests/scaffold/test_no_runtime_implementation.py +++ b/tests/scaffold/test_no_runtime_implementation.py @@ -4,6 +4,7 @@ from __future__ import annotations import json +from functools import cache import shutil import subprocess import sys @@ -15,6 +16,11 @@ sys.path.insert(0, str(ROOT)) from tools import check_scaffold_boundary as guard +@cache +def current_stage(): + """Resolve trusted local activation only during execution, never collection.""" + return guard.current_local_state(ROOT)["activation_stage"] + class NoRuntimeImplementationTests(unittest.TestCase): def setUp(self): @@ -25,7 +31,7 @@ def setUp(self): self.package = self.root / "src/source_integrity_toolkit" def test_real_accepted_package_passes_all_guards(self): - result = guard.current_check_repository(ROOT) + result = guard.current_check_repository(ROOT, stage=current_stage()) self.assertTrue(result["ok"], result) self.assertEqual(result["checked_modules"], 48) @@ -40,12 +46,12 @@ def test_extra_module_and_data_each_fail(self): path = self.package / name path.write_text("{}") with self.subTest(path=name): - self.assertFalse(guard.current_check_repository(self.root)["ok"]) + self.assertFalse(guard.current_check_repository(self.root, stage=current_stage())["ok"]) path.unlink() def test_missing_slot_fails(self): (self.package / "analysis/origins.py").unlink() - self.assertFalse(guard.current_check_repository(self.root)["ok"]) + self.assertFalse(guard.current_check_repository(self.root, stage=current_stage())["ok"]) def test_executable_body_is_detected_without_hash_check(self): for source in ('def calculate(x):\n return 1\n', 'REGISTRY = {}\n', @@ -58,13 +64,22 @@ def test_executable_body_is_detected_without_hash_check(self): def test_argument_inspection_before_refusal_fails_ast_and_tree(self): path = self.package / "api.py" - source = path.read_text().replace(' raise NotImplementedError(', - ' repr(options)\n raise NotImplementedError(', 1) - self.assertIn("non_scaffold_body", guard.form_issues("api.py", source)) + source = path.read_text() + before, file_function = source.split("def audit_file(", 1) + source = before + "def audit_file(" + file_function.replace( + " raise NotImplementedError(", + " repr(options)\n raise NotImplementedError(", 1) + # audit_file stays an immediate refusal throughout P4, including after + # audit_bundle becomes live. The static refusal-shape probe is separate. + reserved = guard.SPECIAL_FORMS["api.py"] + self.assertEqual(guard.form_issues("api.py", reserved), []) + changed = reserved.replace(" raise NotImplementedError(", + " repr(options)\n raise NotImplementedError(", 1) + self.assertIn("non_scaffold_body", guard.form_issues("api.py", changed)) path.write_text(source) - result = guard.current_check_repository(self.root) + result = guard.current_check_repository(self.root, stage=current_stage()) self.assertFalse(result["ok"]) - self.assertIn({"path": "api.py", "code": "non_scaffold_body"}, result["issues"]) + self.assertTrue(any(issue["path"] == "api.py" for issue in result["issues"]), result) def test_decorator_default_and_annotation_side_effects_fail(self): sources = [ @@ -79,29 +94,29 @@ def test_cached_directory_cannot_hide_python_source(self): path = self.package / "__pycache__" path.mkdir(exist_ok=True) (path / "hidden.py").write_text("pass\n") - self.assertFalse(guard.current_check_repository(self.root)["ok"]) + self.assertFalse(guard.current_check_repository(self.root, stage=current_stage())["ok"]) def test_changed_literal_or_fake_report_is_rejected(self): self.assertTrue(guard.form_issues("contracts/constants.py", 'SCAFFOLD_VERSION="1.0.0"')) self.assertTrue(guard.form_issues("api.py", 'def audit_bundle(bundle, *, options=None):\n return {"status":"success"}\n')) def test_syntax_error_and_oversize_do_not_crash_guard(self): - path = self.package / "reporting/json_report.py" + path = self.package / "io/publication.py" path.write_text("def (\n") - self.assertFalse(guard.current_check_repository(self.root)["ok"]) + self.assertFalse(guard.current_check_repository(self.root, stage=current_stage())["ok"]) path.write_text("#" * 20000) - self.assertFalse(guard.current_check_repository(self.root)["ok"]) + self.assertFalse(guard.current_check_repository(self.root, stage=current_stage())["ok"]) def test_extra_source_package_cannot_escape_inventory(self): (self.root / "src/shadow.py").write_text("pass\n") - self.assertFalse(guard.current_check_repository(self.root)["ok"]) + self.assertFalse(guard.current_check_repository(self.root, stage=current_stage())["ok"]) def test_real_guard_cli_is_not_removed_by_python_optimization(self): command = [sys.executable, "-I", "-B", "-O", str(ROOT / "tools/check_scaffold_boundary.py"), - "--root", str(self.root), "--modules-only"] + "--root", str(self.root), "--modules-only", "--unit", f"P4-W{current_stage():02d}"] positive = subprocess.run(command, capture_output=True, text=True, timeout=20) self.assertEqual(positive.returncode, 0, positive.stdout + positive.stderr) - (self.package / "reporting/json_report.py").write_text("ACTIVE = {}\n") + (self.package / "io/publication.py").write_text("ACTIVE = {}\n") negative = subprocess.run(command, capture_output=True, text=True, timeout=20) self.assertEqual(negative.returncode, 1) self.assertFalse(json.loads(negative.stdout)["ok"]) @@ -113,7 +128,7 @@ class W04R01LiveGuardTests(unittest.TestCase): setUp = NoRuntimeImplementationTests.setUp def _assert_current_copy(self): - result = guard.current_check_repository(self.root) + result = guard.current_check_repository(self.root, stage=current_stage()) self.assertTrue(result["ok"], result) self.assertEqual(result["checked_modules"], 48) @@ -123,7 +138,7 @@ def _mutation(self, relative, payload): original = path.read_bytes() try: path.write_bytes(payload) - result = guard.current_check_repository(self.root) + result = guard.current_check_repository(self.root, stage=current_stage()) finally: path.write_bytes(original) self._assert_current_copy() @@ -132,7 +147,7 @@ def _mutation(self, relative, payload): def _optimized_cli_mutation(self, relative, payload): self._assert_current_copy() command = [sys.executable, "-I", "-B", "-O", str(ROOT / "tools/check_scaffold_boundary.py"), - "--root", str(self.root), "--modules-only"] + "--root", str(self.root), "--modules-only", "--unit", f"P4-W{current_stage():02d}"] positive = subprocess.run(command, capture_output=True, text=True, timeout=20) self.assertEqual(positive.returncode, 0, positive.stdout + positive.stderr) self.assertTrue(json.loads(positive.stdout)["ok"]) @@ -158,8 +173,14 @@ def test_live_size_ceiling_accepts_equality_and_rejects_one_byte_excess(self): prefix = b"ACTIVE = {}\n#" equality = prefix + b"x" * (262144 - len(prefix)) self.assertEqual(len(equality), 262144) + # The actual W01 package is byte-frozen, independently of whether a + # synthetic live body obeys its separate effect and size constraints. + self.assertEqual(guard.current_live_issues( + "graph/cycles.py", equality.decode(), stage=current_stage()), []) positive = self._mutation("graph/cycles.py", equality) - self.assertTrue(positive["ok"], positive) + self.assertFalse(positive["ok"], positive) + self.assertIn({"path": "graph/cycles.py", "code": "accepted_blob_changed"}, positive["issues"]) + self.assertNotIn({"path": "graph/cycles.py", "code": "oversize_module"}, positive["issues"]) excess = equality + b"x" self.assertEqual(len(excess), 262145) negative = self._mutation("graph/cycles.py", excess) @@ -172,18 +193,18 @@ def test_real_optimized_cli_rejects_live_forbidden_effect(self): self.assertIn({"path": "graph/cycles.py", "code": "forbidden_effect"}, result["issues"]) def test_inert_size_ceiling_distinguishes_equal_and_one_byte_excess(self): - equality = self._mutation("reporting/json_report.py", b"#" * 16384) + equality = self._mutation("io/publication.py", b"#" * 16384) # A changed inert file must still fail its byte pin at this size. self.assertFalse(equality["ok"]) - self.assertIn({"path": "reporting/json_report.py", "code": "accepted_blob_changed"}, equality["issues"]) - self.assertNotIn({"path": "reporting/json_report.py", "code": "oversize_module"}, equality["issues"]) - excess = self._mutation("reporting/json_report.py", b"#" * 16385) + self.assertIn({"path": "io/publication.py", "code": "accepted_blob_changed"}, equality["issues"]) + self.assertNotIn({"path": "io/publication.py", "code": "oversize_module"}, equality["issues"]) + excess = self._mutation("io/publication.py", b"#" * 16385) self.assertFalse(excess["ok"]) - self.assertIn({"path": "reporting/json_report.py", "code": "oversize_module"}, excess["issues"]) + self.assertIn({"path": "io/publication.py", "code": "oversize_module"}, excess["issues"]) def test_real_optimized_cli_rejects_inert_body_independently_of_pin(self): - result = self._optimized_cli_mutation("reporting/json_report.py", b"ACTIVE = {}\n") - self.assertIn({"path": "reporting/json_report.py", "code": "non_scaffold_body"}, result["issues"]) + result = self._optimized_cli_mutation("io/publication.py", b"ACTIVE = {}\n") + self.assertIn({"path": "io/publication.py", "code": "non_scaffold_body"}, result["issues"]) if __name__ == "__main__": unittest.main() diff --git a/tests/security/test_preparation_inertness.py b/tests/security/test_preparation_inertness.py index 00ad074..a6a0c04 100644 --- a/tests/security/test_preparation_inertness.py +++ b/tests/security/test_preparation_inertness.py @@ -162,13 +162,14 @@ class Key(str): def test_whole_package_guard_rejects_forbidden_implementation_in_temporary_copy(tmp_path, target): sys.path.insert(0, str(ROOT)) from tools import check_scaffold_boundary as guard - unit = "VC" - assert guard.check_repository(ROOT, unit=unit)["ok"] + stage = guard.current_local_state(ROOT)["activation_stage"] + unit = f"P4-W{stage:02d}" + assert guard.current_check_repository(ROOT, stage=stage)["ok"] root = tmp_path / "isolated-probe" shutil.copytree(ROOT / "src/source_integrity_toolkit", root / "src/source_integrity_toolkit") - for name in ("PHASE_3_PLAN.md", "phase3/entry_manifest.json", "phase3/module_policy.json"): - dest = root / name; dest.parent.mkdir(parents=True, exist_ok=True); shutil.copyfile(ROOT / name, dest) - assert guard.check_repository(root, unit=unit)["ok"] + # The trusted repository supplies the verified stage. This package-only + # copy has no Git context and cannot self-authorize through copied records. + assert guard.current_check_repository(root, stage=stage)["ok"] changed = root / "src/source_integrity_toolkit" / target assert changed.is_file() payload = b'\nUNAUTHORIZED_RESULT = {"independent": True}\n' @@ -176,5 +177,5 @@ def test_whole_package_guard_rejects_forbidden_implementation_in_temporary_copy( # Later authorized analytical bodies still cannot acquire network authority. payload += b'import socket\n' changed.write_bytes(changed.read_bytes() + payload) - assert not guard.check_repository(root, unit=unit)["ok"] - assert guard.check_repository(ROOT, unit=unit)["ok"] + assert not guard.current_check_repository(root, stage=stage)["ok"] + assert guard.current_check_repository(ROOT, stage=stage)["ok"] diff --git a/tools/check_scaffold_boundary.py b/tools/check_scaffold_boundary.py index 2754667..0b5002f 100644 --- a/tools/check_scaffold_boundary.py +++ b/tools/check_scaffold_boundary.py @@ -238,10 +238,10 @@ def form_issues(path, source): def promotions(root, unit=None): - """Compatibility for package mutation probes; no stage promotion policy.""" - require(unit == "VC", "current_external_context_required") - return VC_ACTIVE - + """Explicit package probe only; this does not authorize a Git checkout.""" + require(type(unit) is str and re.fullmatch(r"P4-W(?:0[1-9]|10)", unit), + "current_external_context_required") + return current_active(int(unit[-2:])) def phase3_import_targets(path, tree): """Resolve real module aliases, including from package import future_slot.""" @@ -266,7 +266,7 @@ def phase3_import_targets(path, tree): return targets, issues -def _dependency_issues(path, source, active, prefix=""): +def _dependency_issues(path, source, active, prefix="", *, stage=1): """Current source dependencies; no historical policy or Git test loading.""" try: tree = ast.parse(source) @@ -283,9 +283,12 @@ def _dependency_issues(path, source, active, prefix=""): dependency = by_name[target] if layer(dependency) not in LAYER_PERMISSIONS[layer(path)]: issues.append("layer_violation") - if dependency.startswith("reporting/") or dependency in ( - "runtime/disclosure.py", "io/output_directory.py", "io/publication.py", - "io/platform_linux.py", "io/platform_windows.py", "api.py", "cli.py", "__init__.py"): + if (path == "runtime/boundary.py" and stage < 7 and + (dependency.startswith("reporting/") or dependency == "runtime/disclosure.py")) or dependency in ("io/output_directory.py", "io/publication.py", + "io/platform_linux.py", "io/platform_windows.py", "cli.py", "__init__.py") or ( + dependency == "api.py" and path != "__init__.py") or ( + (dependency.startswith("reporting/") or dependency == "runtime/disclosure.py") + and dependency not in active and not dependency.endswith("/__init__.py")): issues.append(prefix + "forbidden_dependency") elif dependency not in active and not dependency.endswith("/__init__.py"): issues.append(prefix + "unpromoted_dependency") @@ -363,42 +366,105 @@ def _source_effect_issues(path, source): def check_repository(root, *, unit=None): """Explicit package-only compatibility; never grants checkout authority.""" - if unit != "VC": + if type(unit) is not str or re.fullmatch(r"P4-W(?:0[1-9]|10)", unit) is None: return {"ok": False, "checked_modules": 0, "issues": [{"code": "current_external_context_required"}]} - return current_check_repository(root) - - -# Owner-approved verification consolidation. These literals are independent of -# candidate manifests and the one-time review map. Pre-acceptance development -# stages are archived in Git and are not replayed by this current checker. -VC_ACCEPTED_HEAD = "2413a29b839b7e1de8f76a449762f031de19d52b" -VC_ACCEPTED_TREE = "e2f230bdf6f838f3d12df233559732aa1d5c1699" -VC_ACCEPTED_PARENTS = ( - "6dbca96f3314d537beed4ccb6202147bd9248dd9", - "90684996eac568af6129973764fe40f3b666a15f", + return current_check_repository(root, int(unit[-2:])) + +# Owner-approved Phase 4 ceiling, transcribed once from the exact plan. +# Candidate records cannot authorize paths; pre-anchor test code is never loaded. +P4_ACCEPTED_HEAD = "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" +P4_ACCEPTED_TREE = "f6fbb8965520f33a09ca38cf413e11ca561110dd" +P4_ACCEPTED_PARENTS = ( + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719", ) -VC_PLAN = "VERIFICATION_CONSOLIDATION_PLAN.md" -VC_PLAN_SHA256 = "a94b59a0bfdbde3c70c7286fd48c5e0cbdb4a538afeb094ba97dce718bd7d11d" -VC_REPOSITORY = "DavidWallstructurallaw/source-integrity-toolkit" -VC_BRANCH = "verification/consolidation" -VC_SUITE_TIMEOUT = 2400 -VC_PATHS = frozenset(( - "tools/check_scaffold_boundary.py", - "tests/scaffold/test_imports.py", "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", "tests/scaffold/test_layer_boundaries.py", - "tests/scaffold/test_contract_catalogs.py", "tests/scaffold/test_ci_contract.py", - "tests/contract/test_phase2_transition.py", "tests/contract/test_phase3_transition.py", - ".github/workflows/phase1-ci.yml", "tests/contract/test_bundle_contract.py", - "tests/contract/test_input_schema_mapping.py", "tests/contract/test_observability_preparation.py", - "tests/security/test_input_capture.py", "tests/security/test_preparation_inertness.py", - "tests/contract/test_verification_boundary.py", "verification/consolidation_map.json", - VC_PLAN, "VERIFICATION_CONSOLIDATION_COMPLETION.md", "README.md", -)) -VC_REMOVABLE = frozenset(( - "tests/contract/test_phase2_transition.py", "tests/contract/test_phase3_transition.py", -)) -VC_ACTIVE = frozenset("""contracts/bundle.py contracts/evidence.py contracts/constants.py +P4_PLAN = "PHASE_4_PLAN.md" +P4_PLAN_SHA256 = "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" +P4_REPOSITORY = "DavidWallstructurallaw/source-integrity-toolkit" +P4_BRANCH = "phase4/public-report" +P4_SUITE_TIMEOUT = 2400 +P4_PATH_IDS = {'P01': 'src/source_integrity_toolkit/contracts/report.py', + 'P02': 'src/source_integrity_toolkit/contracts/execution.py', + 'P03': 'src/source_integrity_toolkit/reporting/assemble.py', + 'P04': 'src/source_integrity_toolkit/runtime/disclosure.py', + 'P05': 'src/source_integrity_toolkit/reporting/escaping.py', + 'P06': 'src/source_integrity_toolkit/reporting/json_report.py', + 'P07': 'src/source_integrity_toolkit/reporting/markdown_report.py', + 'P08': 'src/source_integrity_toolkit/runtime/resources.py', + 'P09': 'src/source_integrity_toolkit/runtime/diagnostics.py', + 'P10': 'src/source_integrity_toolkit/runtime/boundary.py', + 'P11': 'src/source_integrity_toolkit/api.py', + 'P12': 'src/source_integrity_toolkit/__init__.py', + 'V01': 'tools/check_scaffold_boundary.py', + 'V02': 'tests/contract/test_verification_boundary.py', + 'V03': 'tests/scaffold/test_ci_contract.py', + 'V04': 'tests/scaffold/test_imports.py', + 'V05': 'tests/scaffold/test_module_manifest.py', + 'V06': 'tests/scaffold/test_no_runtime_implementation.py', + 'V07': 'tests/scaffold/test_layer_boundaries.py', + 'V08': '.github/workflows/phase1-ci.yml', + 'T01': 'tests/scaffold/test_api_stubs.py', + 'T02': 'tests/scaffold/test_packaging.py', + 'T03': 'tests/security/test_scaffold_inertness.py', + 'T04': 'tests/security/test_preparation_inertness.py', + 'T05': 'tests/integration/test_preparation_capability_boundary.py', + 'T06': 'tests/contract/test_analytical_observability.py', + 'T07': 'tests/contract/test_phase2_transition.py', + 'T08': 'tests/integration/test_analytical_installed_runtime.py', + 'T09': 'tests/contract/test_phase3_transition.py', + 'T10': 'tests/contract/test_input_schema_mapping.py', + 'T11': 'tests/scaffold/test_contract_catalogs.py', + 'N01': 'tests/contract/test_report_contract.py', + 'N02': 'tests/contract/test_report_assembly.py', + 'N03': 'tests/contract/test_report_identity.py', + 'N04': 'tests/contract/test_json_report.py', + 'N05': 'tests/contract/test_report_parity.py', + 'N06': 'tests/contract/test_public_api.py', + 'N07': 'tests/contract/test_public_report_obligations.py', + 'N08': 'tests/security/test_report_disclosure.py', + 'N09': 'tests/security/test_rendering.py', + 'N10': 'tests/security/test_report_resource_limits.py', + 'N11': 'tests/security/test_public_api_boundary.py', + 'N12': 'tests/integration/test_public_audit.py', + 'N13': 'tests/integration/test_report_determinism.py', + 'N14': 'tests/integration/test_public_installed_runtime.py', + 'N15': 'tests/fixtures/micro/phase4_public_cases.json', + 'N16': 'tests/fixtures/adversarial/phase4_report_cases.json', + 'N17': 'tests/golden/phase4_report_expectations.json', + 'N18': 'tests/golden/phase4_reference_report.json', + 'N19': 'tests/golden/phase4_reference_report.md', + 'N20': 'tests/contract/test_report_test_oracles.py', + 'D01': 'PHASE_4_PLAN.md', + 'D02': 'schemas/report/sit-report-0.1.schema.json', + 'D03': 'schemas/report/README.md', + 'D04': 'phase4/report_contract_coverage.json', + 'D05': 'phase4/implementation_evidence.json', + 'D06': 'phase4/ci_review.md', + 'D07': 'PHASE_4_COMPLETION.md', + 'D08': 'README.md'} +P4_UNIT_IDS = {1: 'V01 V02 V03 V04 V05 V06 V07 V08 T04 T07 T08 T09 D01 D04 D05 D06 D08', + 2: 'P01 P02 T10 T11 N01 N15 N17 N18 N19 N20 D02 D03 D04 D05', + 3: 'P01 P03 N01 N02 N03 N15 N17 N20 D04 D05', + 4: 'P01 P03 P04 N02 N08 N15 N16 N17 N20 D04 D05', + 5: 'P01 P02 P05 P06 P08 P09 N04 N10 N16 N17 N18 N20 D04 D05', + 6: 'P05 P07 N05 N09 N10 N16 N17 N19 N20 D04 D05', + 7: 'P01 P02 P03 P04 P05 P06 P07 P08 P09 P10 N01 N02 N08 N10 N11 N12 N15 N16 D04 D05', + 8: 'P01 P02 P10 P11 P12 V03 T01 T02 T03 T05 T06 T07 T08 N06 N11 N12 N14 N15 N16 D04 D05 D08', + 9: 'N01 N02 N03 N04 N05 N06 N07 N08 N09 N10 N11 N12 N13 N15 N16 N17 N18 N19 N20 D04 D05', + 10: 'N14 D04 D05 D06 D07 D08'} +P4_PATHS = frozenset(P4_PATH_IDS.values()) +P4_UNIT_PATHS = {n: frozenset(P4_PATH_IDS[key] for key in keys.split()) + for n, keys in P4_UNIT_IDS.items()} +P4_ACTIVATION = { + "contracts/report.py": 2, "contracts/execution.py": 2, + "reporting/assemble.py": 3, "runtime/disclosure.py": 4, + "reporting/escaping.py": 5, "reporting/json_report.py": 5, + "runtime/resources.py": 5, "runtime/diagnostics.py": 5, + "reporting/markdown_report.py": 6, "runtime/boundary.py": 7, + "api.py": 8, "__init__.py": 8, +} +P4_BASE_ACTIVE = frozenset("""contracts/bundle.py contracts/evidence.py contracts/constants.py contracts/execution.py contracts/report.py contracts/results.py validation/limits.py validation/structure.py validation/references.py validation/semantics.py runtime/resources.py runtime/diagnostics.py runtime/boundary.py io/input_file.py graph/projections.py graph/traversal.py @@ -406,48 +472,75 @@ def check_repository(root, *, unit=None): analysis/process_comparison.py analysis/contribution_profile.py analysis/evaluator_lineage.py analysis/human_review.py analysis/presence.py analysis/correction_routes.py analysis/correction_outcomes.py analysis/context.py analysis/findings.py""".split()) -# These five preparation bodies and the 19 inert modules were byte-frozen at -# Phase 3 acceptance. Package-only probes preserve that same boundary without -# loading a phase manifest or any Git source. VC's outer scope freezes all 48. -VC_FROZEN_MODULES = {**{p: oid for p, oid in PINS if p not in VC_ACTIVE}, - "contracts/bundle.py": "efa93ccb6f750a38fe6f426fa409aa52651f78bf", - "contracts/constants.py": "be7acf3d76d444fef2e124bd343d89005def33d4", - "io/input_file.py": "05714101f621cffda6108cecb67915488d0541f6", - "validation/references.py": "25040fe157ec1cc939a0e742c7818d493f8992e7", - "validation/structure.py": "24eb56915d8bd561abdf64d4773d486db9fb18e7", -} -VC_MIXED_FUNCTIONS = { - "tests/contract/test_bundle_contract.py": frozenset(( - "_repair_driver", "test_repair_exception_names_exactly_two_paths", - "test_repair_does_not_expand_another_units_immediate_diff", - "test_repair_cumulative_accounting_retains_only_authorized_extras", - "test_repair_rejects_unlisted_and_similarly_named_paths", - "test_repair_rejects_invalid_context_without_mutating_plan", - "test_repair_preserves_original_observer_and_every_old_assertion")), - "tests/contract/test_input_schema_mapping.py": frozenset(( - "test_r02_exact_extra_path_and_other_units_keep_their_immediate_scope", - "test_r02_preserves_every_old_schema_assertion_except_the_named_stage_check")), - "tests/contract/test_observability_preparation.py": frozenset(( - "historical_segment", "test_preserves_existing_report_declarations_and_w05_admission_body", - "test_only_ten_w06_paths_and_no_old_test_permissions_changed")), - "tests/security/test_input_capture.py": frozenset(( - "old_file", "ci_driver", "test_r01_exact_four_paths_and_no_other_unit_permission_expansion", - "test_r01_similar_or_unlisted_repair_paths_are_refused", - "test_r01_only_two_old_scope_test_bodies_change_and_identities_survive", - "test_r01_execution_and_diagnostic_changes_are_exact_constant_additions")), - # Only its context/fixture wiring may change. VC-03 records one-time proof - # that every assertion and the positive/mutation/negative sequence remains. - "tests/security/test_preparation_inertness.py": frozenset(( - "test_whole_package_guard_rejects_forbidden_implementation_in_temporary_copy",)), -} -VC_TEST_SCOPES = ("contract", "integration", "scaffold", "security", "unit") -# These records are neither executed nor read by packaging or authorization. -# README.md is deliberately absent: pyproject.toml uses it as package metadata. -VC_DOCUMENTATION_PATHS = frozenset(( - "VERIFICATION_CONSOLIDATION_COMPLETION.md", "verification/consolidation_map.json", +P4_MODULE_PINS = {'__init__.py': '7bea94e138804cbeea4048ef152dcb5726047f1f', + 'analysis/__init__.py': '39f3b82fbbe9c331b5728e9366d08ad5b6750a0c', + 'analysis/context.py': 'da5a5cf361ff1c3178510c88605ad9fefd1d11fd', + 'analysis/contribution_profile.py': '2c1db4526b6aea8119c00d0977d347b02db67e0e', + 'analysis/correction_outcomes.py': '03f4f9995a9b8581508c1793f7bcbd83945f2b1d', + 'analysis/correction_routes.py': '7ea8572717bddc8a8f7546a616f3cff0628fbfe3', + 'analysis/evaluator_lineage.py': '07d9e6cb9ce52baf2d10050150392beefd45f532', + 'analysis/findings.py': 'c218b2476211757c80f6736506269cb2fdba7d11', + 'analysis/human_review.py': 'f4beebf190cff97696a9d718ce8bdb6801a017a6', + 'analysis/inventory.py': '8c163ad8aa48f478ff098451af0485da9002042d', + 'analysis/origins.py': '417e6c3b07447d825a756fc7ac457213b1d3ba48', + 'analysis/presence.py': '7f54a6642279952c7d6f857ff0f4a2417b92d456', + 'analysis/process_comparison.py': '09bd7f47583ee9583cd30501e7f257dbdd21351f', + 'api.py': '0603b4de9888a51190eeeefc6186b47e2afd88bd', + 'cli.py': 'f48f869385fbeb711458f0189ff55194f73fd050', + 'contracts/__init__.py': 'df81f7b32eee0e54a4606b3dd02332407cf53ec1', + 'contracts/bundle.py': 'efa93ccb6f750a38fe6f426fa409aa52651f78bf', + 'contracts/constants.py': 'be7acf3d76d444fef2e124bd343d89005def33d4', + 'contracts/evidence.py': '8ae7eb2185f22b52cc363d3d814aec65148209bb', + 'contracts/execution.py': '53ae5fce613ef90a8b16b1a6daf7108c8e1f0dc9', + 'contracts/report.py': 'a9d6a150299187b2b95e7f05eacadb6124de6e50', + 'contracts/results.py': 'd38094d924bf99b00b5b02c613de2945036104c5', + 'graph/__init__.py': 'd5eff5c90ff209f6f3f6b3d53b1a38d292da413e', + 'graph/cycles.py': 'e58dc6662287e43b8700dee8ad6b2e9d6dbecce4', + 'graph/projections.py': 'f8eb89afbd283830f955afa992d100bf3bfd0ae8', + 'graph/traversal.py': '0ab5b622b11ac102d06ec5a4aa46e945d3da76e9', + 'graph/witnesses.py': '7721cc527a8909584585aa468ea43697feebb2bd', + 'io/__init__.py': '2714a56fb4d2ed55cf66934c8a336f0d5a51944e', + 'io/input_file.py': '05714101f621cffda6108cecb67915488d0541f6', + 'io/output_directory.py': '9e974acb4ae4afe96a2dfb090dfd459effc8f7cb', + 'io/platform_linux.py': '6e7c6196ec22baa91a75ced2aba8de831d03f364', + 'io/platform_windows.py': 'b1023ff2d960f1a7b0374c46b57069957c807e2f', + 'io/publication.py': 'e86a93eedb87b56809977b1c038958c41e70a6a8', + 'reporting/__init__.py': 'f3070404ece65e7eb26d4cfbc1ce11eb7f02d57c', + 'reporting/assemble.py': 'c90193c4aceba2ab971cc960fbf370a775beaa64', + 'reporting/escaping.py': 'a33d2f6e6bc0840f3037f7a6376cabf581251c87', + 'reporting/json_report.py': 'fa7905d6743818af64d7d61b0a5bfcf5be17159a', + 'reporting/markdown_report.py': 'c6c31013559720421645b69c756e7cb137a28c33', + 'runtime/__init__.py': '830e640c62a1ce89f5425a17c9f225332d24a751', + 'runtime/boundary.py': 'cd0b1608ad0c47434588c7764a11eba53a04d4d5', + 'runtime/diagnostics.py': 'd64ba68f2f8bcc4dae3909a8f7d6aacd42289911', + 'runtime/disclosure.py': 'b543c75e314fc21b09799ed32ca913cf03d33157', + 'runtime/resources.py': 'f07108f7094fe153860c635b352f499863507d57', + 'validation/__init__.py': '775fff4175affb1c95a682423fc9c06317321e8e', + 'validation/limits.py': '8b248185dc7cc0e802c191fdc937d23cbc2beea5', + 'validation/references.py': '25040fe157ec1cc939a0e742c7818d493f8992e7', + 'validation/semantics.py': '45604679943dc456323f6ed046362e5982b4714d', + 'validation/structure.py': '24eb56915d8bd561abdf64d4773d486db9fb18e7'} +P4_AUDIT_FILE_BODY = 'def audit_file(\n input_path: object, output_directory: object, *, options: object = None\n) -> NoReturn:\n """Refuse immediately; never resolve, read or create a supplied path."""\n raise NotImplementedError(\n "Source Integrity Toolkit audit is not implemented in the Phase 1 scaffold."\n )' +P4_TEST_SCOPES = ("contract", "integration", "scaffold", "security", "unit") +# README is packaging metadata. Coverage/plan/schema/checkers are full-risk. +P4_DOCUMENTATION_PATHS = frozenset(( + "PHASE_4_COMPLETION.md", "phase4/implementation_evidence.json", )) +def current_active(stage): + require(type(stage) is int and 1 <= stage <= 10, "current_invalid_stage") + return P4_BASE_ACTIVE | frozenset(p for p, first in P4_ACTIVATION.items() if stage >= first) + + +def _current_unit(message): + require(type(message) is str, "current_invalid_commit_footer") + marks = re.findall(r"^[ \t]*SIT-(?:Verification|Phase)-Unit:[^\n]*$", message, re.M) + require(len(marks) == 1 and re.fullmatch(r"SIT-Phase-Unit: P4-W(?:0[1-9]|10)", marks[0]) + and message.rstrip().endswith(marks[0]), "current_invalid_commit_footer") + return marks[0].split(": ")[1] + + def _current_oid(value): return type(value) is str and re.fullmatch(r"[0-9a-f]{40}", value) is not None @@ -522,7 +615,7 @@ def current_commit_metadata(root, commits): objects = _current_objects(root, commits, "commit") result = {} for oid, body in objects.items(): - header, separator, _ = body.partition(b"\n\n") + header, separator, message = body.partition(b"\n\n") require(separator, "current_malformed_commit") lines = header.decode("utf-8").splitlines() require(lines and lines[0].startswith("tree ") and _current_oid(lines[0][5:]), @@ -535,55 +628,69 @@ def current_commit_metadata(root, commits): parents.append(parent) require(not any(line.startswith(("tree ", "parent ")) for line in rest), "current_malformed_commit_headers") - result[oid] = {"tree": lines[0][5:], "parents": parents} + result[oid] = {"tree": lines[0][5:], "parents": parents, "message": message.decode("utf-8")} return result def _current_snapshot(root, commit): + """Parse hash-verified tree objects, never trust a pretty tree listing.""" require(_current_oid(commit), "current_invalid_commit") - raw = _current_git(root, "ls-tree", "-r", "-z", "--full-tree", commit) - require(raw.endswith(b"\0"), "current_empty_or_malformed_tree") - result = {} - for row in raw[:-1].split(b"\0"): - fields, tab, name = row.partition(b"\t") - parts = fields.split(b" ") - path = name.decode("utf-8") - require(tab and len(parts) == 3 and _current_path(path) and path not in result, - "current_malformed_tree_path") - mode, kind, oid = (x.decode("ascii") for x in parts) - require(kind == "blob" and mode in ("100644", "100755") and _current_oid(oid), - "current_non_regular_tree_entry") - result[path] = (mode, oid) + root_tree = current_commit_metadata(root, [commit])[commit]["tree"] + pending, result, directories = [("", root_tree)], {}, set() + while pending: + objects = _current_objects(root, sorted({oid for prefix, oid in pending}), "tree") + following = [] + for prefix, oid in pending: + require(prefix not in directories, "current_duplicate_tree_path") + directories.add(prefix) + raw, offset, names = objects[oid], 0, set() + require(raw or prefix, "current_empty_or_malformed_tree") + while offset < len(raw): + end = raw.find(b"\0", offset) + require(end >= offset and end + 21 <= len(raw), "current_malformed_tree_entry") + mode, separator, name_bytes = raw[offset:end].partition(b" ") + name = name_bytes.decode("utf-8") + require(separator and _current_path(name) and "/" not in name and name not in names, + "current_malformed_tree_path") + names.add(name) + child = raw[end + 1:end + 21].hex() + path = prefix + name + offset = end + 21 + if mode == b"40000": + following.append((path + "/", child)) + else: + require(mode in (b"100644", b"100755") and path not in result, + "current_non_regular_tree_entry") + result[path] = (mode.decode("ascii"), child) + pending = following + require(result, "current_empty_or_malformed_tree") return result def current_authority(root): - """The accepted merge bounds history; the approved plan bounds VC changes.""" + """The accepted merge and exact approved plan bound current changes.""" _current_git_state(root) - metadata = current_commit_metadata(root, [VC_ACCEPTED_HEAD])[VC_ACCEPTED_HEAD] - require(metadata == {"tree": VC_ACCEPTED_TREE, "parents": list(VC_ACCEPTED_PARENTS)}, + metadata = current_commit_metadata(root, [P4_ACCEPTED_HEAD])[P4_ACCEPTED_HEAD] + require(metadata["tree"] == P4_ACCEPTED_TREE and metadata["parents"] == list(P4_ACCEPTED_PARENTS), "current_accepted_anchor_mismatch") - baseline = _current_snapshot(root, VC_ACCEPTED_HEAD) + baseline = _current_snapshot(root, P4_ACCEPTED_HEAD) blobs = _current_objects(root, sorted({row[1] for row in baseline.values()}), "blob") return baseline, blobs - -def current_context(event_name, event_json, review_head): - """Only trusted runner event bytes and the separately supplied exact head. - - Branch/footer selection is subordinate to the owner-approved constants; - no source manifest, dossier extension, map or environment unit grants scope. - """ +def current_context(event_name, event_json, review_head, *, root): + """Bind the trusted event to the hash-verified actual commit and history.""" require(_current_oid(review_head), "current_invalid_review_head") try: event = json.loads(event_json, object_pairs_hook=unique) - require(event["repository"]["full_name"] == VC_REPOSITORY, "current_wrong_repository") + require(event["repository"]["full_name"] == P4_REPOSITORY, "current_wrong_repository") + metadata = current_commit_metadata(root, [review_head])[review_head] + unit = _current_unit(metadata["message"]) if event_name == "pull_request": pr = event["pull_request"] require(pr["head"]["sha"] == review_head, "current_event_head_mismatch") - require(pr["head"]["ref"] == VC_BRANCH and pr["head"]["repo"]["full_name"] == VC_REPOSITORY, + require(pr["head"]["ref"] == P4_BRANCH and pr["head"]["repo"]["full_name"] == P4_REPOSITORY, "current_unapproved_branch") - require(pr["base"]["ref"] == "main" and pr["base"]["repo"]["full_name"] == VC_REPOSITORY, + require(pr["base"]["ref"] == "main" and pr["base"]["repo"]["full_name"] == P4_REPOSITORY, "current_wrong_base_ref") base = pr["base"]["sha"] else: @@ -591,85 +698,174 @@ def current_context(event_name, event_json, review_head): require(event["after"] == review_head and event["head_commit"]["id"] == review_head and event.get("deleted", False) is False and event.get("forced", False) is False, "current_event_head_mismatch") - marks = re.findall(r"^[ \t]*SIT-(?:Verification|Phase)-Unit:[^\n]*$", event["head_commit"]["message"], re.M) - require(marks == ["SIT-Verification-Unit: VC"], "current_invalid_merge_footer") + require(event["head_commit"]["message"].rstrip("\n") == metadata["message"].rstrip("\n"), + "current_event_commit_mismatch") base = event["before"] + if len(metadata["parents"]) > 1: + require(len(metadata["parents"]) == 2, "current_invalid_main_merge") + candidate = current_commit_metadata(root, [metadata["parents"][1]])[metadata["parents"][1]] + require(metadata["tree"] == candidate["tree"], "current_merge_candidate_tree_mismatch") require(_current_oid(base) and base != "0" * 40 and base != review_head, "current_invalid_base") - return {"unit": "VC", "base": base, "head": review_head, "event": event_name} - except (KeyError, TypeError, json.JSONDecodeError) as exc: + history = current_history(root, base, review_head) + return {"unit": unit, "activation_stage": history[-1]["activation_stage"], + "base": base, "head": review_head, "event": event_name} + except (KeyError, TypeError, AttributeError, json.JSONDecodeError) as exc: raise ValueError("current_malformed_event") from exc - -def _current_retained_parts(path, raw): - """Protect the accepted semantic portions of the four mixed test files. - - Only explicitly named historical functions are editable here. Dedicated - imports/constants remain unchanged at VC-02; later dead-helper cleanup - must demonstrate its call-site and retained-witness equivalence. +def _current_audit_file_unchanged(source): + tree = ast.parse(source) + definitions = [node for node in ast.walk(tree) + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)) + and node.name == "audit_file"] + if len(definitions) != 1 or definitions[0] not in tree.body or definitions[0].decorator_list: + return False + if ast.get_source_segment(source, definitions[0]) != P4_AUDIT_FILE_BODY: + return False + for node in ast.walk(tree): + if isinstance(node, ast.Name) and node.id == "audit_file" and isinstance(node.ctx, (ast.Store, ast.Del)): + return False + if isinstance(node, ast.alias) and (node.asname == "audit_file" or + (node.asname is None and node.name.split(".")[0] in ("audit_file", "*"))): + return False + if isinstance(node, (ast.ExceptHandler, ast.MatchAs, ast.MatchStar)) and node.name == "audit_file": + return False + if isinstance(node, ast.MatchMapping) and node.rest == "audit_file": + return False + return True + + +def _current_retained_parts(path, raw, stage): + """Keep semantic witnesses outside the exact mixed-file context migration. + + These are current accepted-byte comparisons, not old test execution or an + inverse patch chain. At W08 the approved public receipt behavior is replaced + atomically and directly tested by the current suite. """ source = raw.decode("utf-8") tree = ast.parse(source) - parts = [] - for node in tree.body: - if isinstance(node, ast.FunctionDef) and node.name in VC_MIXED_FUNCTIONS[path]: - continue - first = min([node.lineno] + [n.lineno for n in getattr(node, "decorator_list", ())]) - parts.append("\n".join(source.splitlines()[first - 1:node.end_lineno])) - return parts - - -def current_scope(baseline, actual, read_blob): - """Compare actual regular-file inventories to the accepted tree. - - This is a path/byte ceiling, not permission to erase a mapped assertion. - Retirement and the remaining mixed-file adaptations retain review gates. - """ + if path == "tests/security/test_preparation_inertness.py": + parts = [] + for node in tree.body: + if isinstance(node, ast.FunctionDef) and node.name == "test_whole_package_guard_rejects_forbidden_implementation_in_temporary_copy": + continue + first = min([node.lineno] + [n.lineno for n in getattr(node, "decorator_list", ())]) + parts.append("\n".join(source.splitlines()[first - 1:node.end_lineno])) + return parts + if stage >= 8: + return None + # Only receipt context statements differ in W01. Preserve the complete + # child program strings, assertion bodies, fixtures and installed witnesses. + class ReceiptContext(ast.NodeTransformer): + def visit_Assign(self, node): + names = [target.id for target in node.targets if isinstance(target, ast.Name)] + permitted = ("state = guard.current_local_state(ROOT)", + "guard = _load('sit_current_installed_context', 'tools/check_scaffold_boundary.py')") + if any(ast.dump(node, include_attributes=False) == ast.dump(ast.parse(text).body[0], include_attributes=False) + for text in permitted): + return None + if names == ["record"] and isinstance(node.value, ast.Dict): + pairs = [(key, value) for key, value in zip(node.value.keys, node.value.values) + if key is not None and not (isinstance(key, ast.Constant) and key.value in ("head", "unit"))] + node.value.keys = [key for key, value in pairs] + node.value.values = [value for key, value in pairs] + return self.generic_visit(node) + return ast.dump(ReceiptContext().visit(tree), include_attributes=False) + + +def current_scope(baseline, actual, read_blob, stage=1): + """Cumulative path/byte ceiling; per-commit ownership is checked separately.""" + current_active(stage) + allowed = frozenset().union(*(P4_UNIT_PATHS[n] for n in range(1, stage + 1))) require(all(_current_path(p) for p in actual), "current_path_alias") - require(set(actual) - set(baseline) <= VC_PATHS, "current_unlisted_path") - require(set(baseline) - set(actual) <= VC_REMOVABLE, "current_forbidden_deletion") - require(VC_PLAN in actual, "current_approved_plan_missing") + require(set(actual) - set(baseline) <= P4_PATHS, "current_unlisted_path") + require(not set(baseline) - set(actual), "current_forbidden_deletion") + require(P4_PLAN in actual, "current_approved_plan_missing") for path, row in actual.items(): require(row[0] == (baseline[path][0] if path in baseline else "100644"), "current_file_mode_changed") - if path in baseline and path not in VC_PATHS: - require(row == baseline[path], "current_frozen_file_changed") - if path in VC_MIXED_FUNCTIONS and row != baseline[path]: - require(_current_retained_parts(path, read_blob(baseline[path][1])) == - _current_retained_parts(path, read_blob(row[1])), "current_mixed_semantics_changed") - require(hashlib.sha256(read_blob(actual[VC_PLAN][1])).hexdigest() == VC_PLAN_SHA256, + if row != baseline.get(path): + relative = path.removeprefix("src/" + PACKAGE + "/") + if relative in P4_ACTIVATION: + require(stage >= P4_ACTIVATION[relative], "current_premature_activation") + require(path in allowed, "current_frozen_file_changed" if path in baseline else "current_unit_path_not_allowed") + workflow = ".github/workflows/phase1-ci.yml" + if actual[workflow] != baseline[workflow]: + current_workflow(json.loads(read_blob(actual[workflow][1]), object_pairs_hook=unique)) + api = "src/" + PACKAGE + "/api.py" + if actual[api] != baseline[api]: + source = read_blob(actual[api][1]).decode("utf-8") + require(_current_audit_file_unchanged(source), "current_audit_file_changed") + # Allowed paths do not permit intermediate forbidden effects that are later + # restored. Inspect changed active source without requiring future features + # to have been implemented in history-only synthetic permission fixtures. + for relative, first in P4_ACTIVATION.items(): + path = "src/" + PACKAGE + "/" + relative + if actual[path] != baseline[path]: + raw = read_blob(actual[path][1]) + require(len(raw) <= 262144 and not current_live_issues(relative, raw.decode("utf-8"), stage), + "current_product_boundary_failed") + for path in ("tests/security/test_preparation_inertness.py", "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py"): + if actual[path] != baseline[path]: + require(_current_retained_parts(path, read_blob(baseline[path][1]), stage) == + _current_retained_parts(path, read_blob(actual[path][1]), stage), "current_mixed_semantics_changed") + require(hashlib.sha256(read_blob(actual[P4_PLAN][1])).hexdigest() == P4_PLAN_SHA256, "current_approved_plan_changed") - def current_history(root, base, head, authority=None): - """Every post-acceptance commit, including reverted changes and side DAGs.""" + """Validate each original commit and every parent edge after acceptance. + + Owner unit determines new bytes. Activation is the maximum verified ancestor + progress and never decreases on repairs. Inherited merge bytes retain their + original validated ownership; a novel resolution needs this commit's scope. + This is history permission evidence, not proof of completed product behavior. + """ require(_current_oid(base) and _current_oid(head), "current_invalid_history_range") baseline, known_blobs = current_authority(root) if authority is None else authority - _current_git(root, "merge-base", "--is-ancestor", VC_ACCEPTED_HEAD, base) + _current_git(root, "merge-base", "--is-ancestor", P4_ACCEPTED_HEAD, base) _current_git(root, "merge-base", "--is-ancestor", base, head) - raw = _current_git(root, "rev-list", "--reverse", "--topo-order", VC_ACCEPTED_HEAD + ".." + head) + raw = _current_git(root, "rev-list", "--reverse", "--topo-order", P4_ACCEPTED_HEAD + ".." + head) commits = raw.decode("ascii").splitlines() require(bool(commits) and all(_current_oid(c) for c in commits) and len(set(commits)) == len(commits), "current_empty_or_malformed_history") metadata = current_commit_metadata(root, commits) - known, rows = {VC_ACCEPTED_HEAD}, [] + snapshots, stages, rows = {P4_ACCEPTED_HEAD: baseline}, {P4_ACCEPTED_HEAD: 0}, [] def read_blob(oid): if oid not in known_blobs: known_blobs.update(_current_objects(root, [oid], "blob")) return known_blobs[oid] for commit in commits: - parents = metadata[commit]["parents"] - require(parents and all(p in known for p in parents), "current_unanchored_parent") + meta = metadata[commit] + parents = meta["parents"] + require(parents and all(p in stages for p in parents), "current_unanchored_parent") + unit = _current_unit(meta["message"]) + owner = int(unit[-2:]) + previous = max(stages[p] for p in parents) + require(owner <= previous + 1, "current_unit_out_of_order") + stage = max(previous, owner) actual = _current_snapshot(root, commit) missing = sorted({row[1] for row in actual.values()} - set(known_blobs)) known_blobs.update(_current_objects(root, missing, "blob")) - current_scope(baseline, actual, read_blob) - known.add(commit) - rows.append({"commit": commit, **metadata[commit], + current_scope(baseline, actual, read_blob, stage) + edges = [] + for parent in parents: + before = snapshots[parent] + require(not set(before) - set(actual), "current_forbidden_deletion") + changed = sorted(p for p in set(before) | set(actual) if before.get(p) != actual.get(p)) + inherited = [] + for path in changed: + if any(actual.get(path) == snapshots[other].get(path) for other in parents if other != parent): + inherited.append(path) + else: + require(path in P4_UNIT_PATHS[owner], "current_unit_path_not_allowed") + edges.append({"parent": parent, "changed_paths": changed, "inherited_paths": inherited}) + snapshots[commit], stages[commit] = actual, stage + rows.append({"commit": commit, **meta, "unit": unit, "owner_unit": unit, "activation_stage": stage, + "parent_changes": edges, "changed_from_anchor": sorted(p for p in set(actual) | set(baseline) if actual.get(p) != baseline.get(p))}) - require(head in known and (base == VC_ACCEPTED_HEAD or base in known), "current_missing_range_endpoint") + require(head in stages and base in stages, "current_missing_range_endpoint") return rows - def current_risk(root, base, head, authority=None): """Classify the complete reviewed range after validating its authority. @@ -680,7 +876,7 @@ def current_risk(root, base, head, authority=None): """ require(_current_oid(base) and _current_oid(head), "current_invalid_history_range") authority = current_authority(root) if authority is None else authority - if base == head == VC_ACCEPTED_HEAD: + if base == head == P4_ACCEPTED_HEAD: rows = [] else: rows = current_history(root, base, head, authority) @@ -693,7 +889,7 @@ def ancestors(commit): if item in found: continue found.add(item) - if item == VC_ACCEPTED_HEAD: + if item == P4_ACCEPTED_HEAD: continue require(item in metadata, "current_incomplete_risk_history") pending.extend(metadata[item]["parents"]) @@ -702,7 +898,7 @@ def ancestors(commit): head_ancestors, base_ancestors = ancestors(head), ancestors(base) require(base in head_ancestors, "current_risk_base_not_ancestor") included = head_ancestors - base_ancestors - snapshots = {VC_ACCEPTED_HEAD: authority[0]} + snapshots = {P4_ACCEPTED_HEAD: authority[0]} def snapshot(commit): if commit not in snapshots: @@ -725,10 +921,12 @@ def changed(left, right): parents.append({"parent": parent, "changed_paths": paths}) changes.append({"commit": row["commit"], "tree": row["tree"], "parents": parents}) require(set(net) <= all_paths, "current_incomplete_risk_changes") - if all_paths - VC_DOCUMENTATION_PATHS: + if all_paths - P4_DOCUMENTATION_PATHS: profile, reason = "full", "non_documentation_paths" elif not all_paths or not net: profile, reason = "full", "empty_change_set" + elif not rows or rows[-1]["activation_stage"] < 10: + profile, reason = "full", "early_stage_requires_full" else: profile, reason = "documentation", "documentation_paths_only" return {"profile": profile, "reason": reason, "base": base, "head": head, @@ -736,11 +934,16 @@ def changed(left, right): "commit_changes": changes} -def current_checkout(root, head, authority=None, *, require_clean=True): +def current_checkout(root, head, authority=None, *, require_clean=True, stage=None): """Read index and worktree separately; do not trust assume-unchanged flags.""" baseline, blobs = current_authority(root) if authority is None else authority require(_current_git(root, "rev-parse", "HEAD").decode("ascii").strip() == head, "current_checkout_head_mismatch") + history = current_history(root, P4_ACCEPTED_HEAD, head, (baseline, blobs)) + verified_stage = history[-1]["activation_stage"] + require(stage is None or (type(stage) is int and stage == verified_stage), "current_stage_mismatch") + stage = verified_stage + owner = int(history[-1]["unit"][-2:]) committed = _current_snapshot(root, head) index = {} for row in _current_git(root, "ls-files", "--stage", "-z").split(b"\0"): @@ -757,7 +960,7 @@ def read_blob(oid): if oid not in blobs: blobs.update(_current_objects(root, [oid], "blob")) return blobs[oid] - current_scope(baseline, index, read_blob) + current_scope(baseline, index, read_blob, stage) unknown = _current_git(root, "ls-files", "--others", "--exclude-standard", "-z") paths = set(index) | {p.decode("utf-8") for p in unknown.split(b"\0") if p} actual, work_blobs = {}, dict(blobs) @@ -775,26 +978,31 @@ def read_blob(oid): oid = git_blob(data) mode = ("100755" if info.st_mode & 0o111 else "100644") if os.name != "nt" else index.get(path, ("100644",))[0] actual[path], work_blobs[oid] = (mode, oid), data - current_scope(baseline, actual, work_blobs.__getitem__) + current_scope(baseline, actual, work_blobs.__getitem__, stage) + if not require_clean: + for snapshot in (index, actual): + require(all(path in P4_UNIT_PATHS[owner] for path in set(snapshot) | set(committed) + if snapshot.get(path) != committed.get(path)), "current_unit_path_not_allowed") if require_clean: require(index == committed and actual == committed, "current_dirty_checkout") return {"tracked_files": len(index), "worktree_files": len(actual), - "clean": index == committed == actual, "frozen_files": len(set(baseline) - VC_PATHS)} + "clean": index == committed == actual, "frozen_files": len(set(baseline) - P4_PATHS)} -def current_live_issues(path, source): - if path not in VC_ACTIVE: +def current_live_issues(path, source, stage=1): + active = current_active(stage) + if path not in active: return ["unapproved_live_module"] - return sorted(set(_dependency_issues(path, source, VC_ACTIVE) + _source_effect_issues(path, source))) - + return sorted(set(_dependency_issues(path, source, active, stage=stage) + _source_effect_issues(path, source))) -def current_layer_issues(path, source): - return (_dependency_issues(path, source, VC_ACTIVE) if path in VC_ACTIVE +def current_layer_issues(path, source, stage=1): + active = current_active(stage) + return (_dependency_issues(path, source, active, stage=stage) if path in active else _phase2_layer_issues(path, source)) - -def current_module_issues(sources): - """Current 48-module effects/limits, separate from VC's all-product freeze.""" +def current_module_issues(sources, stage=1): + """All 48 baseline bodies stay pinned until their explicit activation stage.""" + active = current_active(stage) issues, decoded = [], {} for path in sorted(set(sources) | set(EXPECTED_PATHS)): if path not in EXPECTED_PATHS: @@ -802,24 +1010,40 @@ def current_module_issues(sources): if path not in sources: issues.append((path, "missing_module")); continue raw = sources[path] - if len(raw) > (262144 if path in VC_ACTIVE else 16384): + if len(raw) > (262144 if path in active else 16384): issues.append((path, "oversize_module")); continue - if path in VC_FROZEN_MODULES and git_blob(raw) != VC_FROZEN_MODULES[path]: + if (path not in P4_ACTIVATION or stage < P4_ACTIVATION[path]) and git_blob(raw) != P4_MODULE_PINS[path]: issues.append((path, "accepted_blob_changed")) try: source = raw.decode("utf-8") except UnicodeDecodeError: issues.append((path, "invalid_utf8")); continue decoded[path] = source - codes = (current_live_issues(path, source) - if path in VC_ACTIVE else _phase2_layer_issues(path, source) + form_issues(path, source)) + codes = (current_live_issues(path, source, stage) + if path in active else _phase2_layer_issues(path, source) + form_issues(path, source)) issues.extend((path, code) for code in codes) + if stage >= 8 and "__init__.py" in decoded: + try: + tree = ast.parse(decoded["__init__.py"]) + exports = [ast.literal_eval(node.value) for node in tree.body if isinstance(node, ast.Assign) + and any(isinstance(target, ast.Name) and target.id == "__all__" for target in node.targets)] + if exports != [("audit_bundle", "audit_file", "__version__", "AuditReport", "AuditAbort", "AuditCancelled", "AuditUsageError")]: + issues.append(("__init__.py", "current_public_exports_mismatch")) + except (SyntaxError, ValueError, TypeError): + issues.append(("__init__.py", "current_public_exports_mismatch")) + if stage >= 8 and "api.py" in decoded: + try: + if not _current_audit_file_unchanged(decoded["api.py"]): + issues.append(("api.py", "accepted_audit_file_changed")) + except (SyntaxError, ValueError): + issues.append(("api.py", "invalid_python")) issues.extend(("src/" + PACKAGE, code) for code in phase3_import_cycle_issues(decoded)) return sorted(set(issues)) -def _current_module_sources(root): +def _current_module_sources(root, stage=1): """Inspect the actual source tree, including ignored files and links.""" + active = current_active(stage) source_root, package = Path(root) / "src", Path(root) / "src" / PACKAGE require(not source_root.is_symlink() and not package.is_symlink() and package.is_dir(), "current_missing_or_linked_package") @@ -842,33 +1066,34 @@ def _current_module_sources(root): require(not path.is_symlink() and path.is_file(), "current_non_regular_source_file") require(relative in EXPECTED_PATHS, "current_unexpected_source_file") with path.open("rb") as stream: - sources[relative] = stream.read((262144 if relative in VC_ACTIVE else 16384) + 1) + sources[relative] = stream.read((262144 if relative in active else 16384) + 1) for child in source_root.iterdir(): require(child.name == PACKAGE or (child.name == "source_integrity_toolkit.egg-info" and child.is_dir() and not child.is_symlink()), "current_unexpected_source_entry") return sources -def current_modules(root): - sources = _current_module_sources(root) - require(not current_module_issues(sources), "current_module_boundary_failed") +def current_modules(root, stage=1): + sources = _current_module_sources(root, stage) + require(not current_module_issues(sources, stage), "current_module_boundary_failed") return len(sources) - -def current_check_repository(root): - """Package inspection report, not VC path authorization or conformance.""" +def current_check_repository(root, stage=1): + """Package inspection only; explicit stage never grants checkout authority.""" try: - sources = _current_module_sources(root) - issues = [{"path": path, "code": code} for path, code in current_module_issues(sources)] + active = current_active(stage) + sources = _current_module_sources(root, stage) + issues = [{"path": path, "code": code} for path, code in current_module_issues(sources, stage)] except (ValueError, OSError) as exc: return {"ok": False, "checked_modules": 0, "issues": [{"path": "src/" + PACKAGE, "code": str(exc)}]} return {"ok": not issues, "checked_modules": len(sources), "issues": issues, - "promoted_modules": sorted(VC_ACTIVE), "protected_modules": 19, - "entry_byte_protected_modules": 24, + "activation_stage": stage, "promoted_modules": sorted(active), + "protected_modules": len(EXPECTED_PATHS - active), + "entry_byte_protected_modules": sum(p not in P4_ACTIVATION or stage < P4_ACTIVATION[p] + for p in EXPECTED_PATHS), "scope": "current package inspection only; no checkout authorization or analytical conformance claim"} - def current_collection(nodes, expected_files): require(type(nodes) in (list, tuple) and nodes and all(type(n) is str for n in nodes), "current_empty_or_invalid_collection") @@ -964,42 +1189,53 @@ def current_workflow(value): raise ValueError("current_malformed_workflow") from exc +def current_local_state(root): + """Read actual local commit provenance, allowing only its owned worktree edits.""" + head = _current_git(root, "rev-parse", "HEAD").decode("ascii").strip() + authority = current_authority(root) + rows = current_history(root, P4_ACCEPTED_HEAD, head, authority) + checkout = current_checkout(root, head, authority, require_clean=False, stage=rows[-1]["activation_stage"]) + return {"clean": checkout["clean"], "unit": rows[-1]["unit"], "activation_stage": rows[-1]["activation_stage"], + "head": head, "base": P4_ACCEPTED_HEAD} + + def current_verify(root, event_name, event_json, review_head): - """Explicit VC entrypoint; no implicit environment or candidate promotion.""" - context = current_context(event_name, event_json, review_head) + """Explicit current entrypoint; no source records or environment grant scope.""" + context = current_context(event_name, event_json, review_head, root=root) authority = current_authority(root) history = current_history(root, context["base"], review_head, authority) - checkout = current_checkout(root, review_head, authority) - modules = current_modules(root) + stage = context["activation_stage"] + checkout = current_checkout(root, review_head, authority, stage=stage) + modules = current_modules(root, stage) current_workflow(json.loads((Path(root) / ".github/workflows/phase1-ci.yml").read_bytes(), object_pairs_hook=unique)) return {"ok": True, **context, **checkout, "checked_modules": modules, "history": history} - def main(argv=None): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--root", type=Path, default=Path(__file__).resolve().parents[1]) - parser.add_argument("--unit", choices=["VC"], default=None) + parser.add_argument("--unit", choices=["P4-W%02d" % n for n in range(1, 11)]) + parser.add_argument("--stage", type=int, choices=range(1, 11)) parser.add_argument("--event-name", choices=("pull_request", "push")) parser.add_argument("--event-file", type=Path) parser.add_argument("--head") parser.add_argument("--modules-only", action="store_true", - help="Inspect current package bytes/effects without granting checkout authorization") + help="Inspect explicit-stage package bytes/effects without checkout authorization") args = parser.parse_args(argv) - if args.modules_only: - if any((args.unit, args.event_name, args.event_file, args.head)): - parser.error("--modules-only cannot replace an authorized-context check") - result = current_check_repository(args.root) - elif args.unit == "VC": - try: - require(args.event_name and args.event_file and args.head, "current_external_context_required") + try: + if args.modules_only: + require(not any((args.event_name, args.event_file, args.head)), "current_external_context_required") + stage = args.stage if args.stage is not None else int(args.unit[-2:]) if args.unit else 1 + require(args.unit is None or int(args.unit[-2:]) == stage, "current_stage_mismatch") + result = current_check_repository(args.root, stage) + else: + require(args.stage is None and args.event_name and args.event_file and args.head, + "current_external_context_required") result = current_verify(args.root, args.event_name, args.event_file.read_bytes(), args.head) - except (ValueError, OSError, UnicodeError, SyntaxError) as exc: - result = {"ok": False, "unit": "VC", "issues": [{"code": str(exc)}]} - else: - result = check_repository(args.root, unit=args.unit) + require(args.unit is None or args.unit == result["unit"], "current_unit_mismatch") + except (ValueError, OSError, UnicodeError, SyntaxError) as exc: + result = {"ok": False, "issues": [{"code": str(exc)}]} print(json.dumps(result, sort_keys=True)) return 0 if result["ok"] else 1 - if __name__ == "__main__": raise SystemExit(main()) From d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 01:20:13 -0700 Subject: [PATCH 02/21] Record P4-W01 complete local verification 3772 tests and 445 separate subtests passed on the preceding exact source tree. Update execution evidence only; hosted exact-head checks follow in the draft implementation PR. SIT-Phase-Unit: P4-W01 --- phase4/implementation_evidence.json | 59 ++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index bd83081..645b291 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,7 +1,7 @@ { "phase": "P4", "current_unit": "P4-W01", - "status": "implementation_in_validation", + "status": "P4-W01 implementation complete; full local validation passed", "owner_authorization": { "instruction": "批准计划,启动 P4-W01", "date": "2026-10-14", @@ -86,10 +86,47 @@ "elapsed_seconds": 5.2, "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" }, - "current_test_nodes": 210 + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "passed", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." }, - "local_full": "pending on fixed checkpoint", - "hosted_four_profiles": "pending", "cross_review": "completed with recorded fixes; independent reviewer tree finding addressed by root and direct regression tests", "migrated_six_files": { "result": "passed", @@ -105,27 +142,27 @@ { "finding": "Top-level stage lookup executed Git during test collection.", "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "zero-Git collection positive/poisoned/no-.git controls passed" + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" }, { "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in boundary retry or latest focused regressions; final unified suite pending" + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" }, { "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in boundary retry or latest focused regressions; final unified suite pending" + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" }, { "finding": "Pretty Git tree listing was not itself hash-verified.", "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in boundary retry or latest focused regressions; final unified suite pending" + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" }, { "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "six focused latest-guard regressions passed" + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" } ], "remaining": { @@ -133,5 +170,7 @@ "public_api_and_reports": "not implemented", "file_native_cli_audit_release": "deferred" }, - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance." + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." } From f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 01:34:39 -0700 Subject: [PATCH 03/21] Reject incomplete preparation evidence in Phase 4 verification SIT-Phase-Unit: P4-W01 --- phase4/implementation_evidence.json | 66 +++++++++++++-- tests/scaffold/test_ci_contract.py | 121 ++++++++++++++++++++++++++++ 2 files changed, 182 insertions(+), 5 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 645b291..4456295 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,7 +1,7 @@ { "phase": "P4", "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; full local validation passed", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", "owner_authorization": { "instruction": "批准计划,启动 P4-W01", "date": "2026-10-14", @@ -24,7 +24,8 @@ "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects." + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." ], "guarantee_migrations": [ { @@ -90,7 +91,7 @@ "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" }, "local_full": { - "result": "passed", + "result": "full test suite passed; original preparation receipt incomplete", "mode": "local", "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", @@ -120,14 +121,51 @@ "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } }, "hosted_four_profiles": { "status_at_publication": "pending", "record_location": "exact-head implementation PR checks and raw run artifacts", "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." }, - "cross_review": "completed with recorded fixes; independent reviewer tree finding addressed by root and direct regression tests", + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", "migrated_six_files": { "result": "passed", "tests": 128, @@ -136,6 +174,19 @@ "collection_nodes": 128, "collection_subprocess_calls": 0, "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" } }, "failures_and_repairs": [ @@ -163,6 +214,11 @@ "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." } ], "remaining": { diff --git a/tests/scaffold/test_ci_contract.py b/tests/scaffold/test_ci_contract.py index 6b7581c..804c07d 100644 --- a/tests/scaffold/test_ci_contract.py +++ b/tests/scaffold/test_ci_contract.py @@ -593,6 +593,22 @@ def emit_summary(evidence, summary): output.write("## Current Phase 4 verification\n\n```json\n" + json.dumps(summary, indent=2) + "\n```\n") +def reconcile_preparation_commands(evidence, *, local=False): + """A stage success claim cannot replace its actual subprocess receipts.""" + names = (("installed", "pip-check") if local else + ("venv", "pip-version", "download", "install", "pip-check", "installed")) + for name in names: + try: + record = json.loads((evidence / (name + "-exit.json")).read_bytes(), object_pairs_hook=unique) + except (OSError, UnicodeError, ValueError) as exc: + raise ValueError("preparation_subprocess_receipt_invalid:" + name) from exc + require(type(record) is dict and type(record.get("exit_code")) is int and + record["exit_code"] == 0 and record.get("timed_out") is False and + record.get("interrupted") is False and record.get("incomplete") is False, + "preparation_subprocess_not_successful:" + name) + return list(names) + + def evidence_report(base, evidence, *, local=False): summary = {"scope": "Current Phase 4 verification", "mode": "local" if local else "hosted", "pass": False, "full_suite": False, "hosted_matrix_attestation": False} @@ -612,6 +628,8 @@ def evidence_report(base, evidence, *, local=False): prepared, tested = (bound_record(evidence, name, binding) for name in ("prepare.json", "test.json")) require(prepared.get("ok") is True and tested.get("ok") is True and prepared.get("profile") == tested.get("profile") == risk["profile"], "required_stage_incomplete") + if risk["profile"] == "full": + summary["preparation_commands_completed"] = reconcile_preparation_commands(evidence, local=local) after = tracked_bytes() save(evidence / "tracked-after.json", after) summary["tracked_bytes_unchanged"] = json.loads((evidence / "tracked-before.json").read_bytes()) == after @@ -624,6 +642,10 @@ def evidence_report(base, evidence, *, local=False): summary["guards_pass"] = True if risk["profile"] == "documentation": validate_documentation() + require(prepared.get("dependency_install_performed") is False and + not any((evidence / (name + "-exit.json")).exists() for name in + ("venv", "pip-version", "download", "install", "pip-check", "installed")), + "unexpected_preparation_execution_on_documentation_route") require(tested.get("full_suite") is False and tested.get("collection_performed") is False, "documentation_claimed_full_suite") require(not any((evidence / name).exists() for name in ("junit.xml", "collection.json", "pytest-exit.json")), @@ -957,6 +979,105 @@ def test_documentation_route_explicitly_records_no_install_or_full_suite(self): self.assertIs(tested["collection_performed"], False) self.assertFalse((evidence / "junit.xml").exists()) + def test_full_summary_reconciles_raw_preparation_despite_successful_stage_claims(self): + """Valid later-stage evidence cannot repair a missing earlier exit.""" + for local in (True, False): + evidence = self.workspace() + binding = {"head": "a" * 40, "base": "b" * 40} + save(evidence / "binding.json", binding) + save(evidence / "preflight.json", {"binding": binding, "ok": True}) + save(evidence / "prepare.json", {"binding": binding, "ok": True, + "profile": "full", "dependency_install_performed": not local}) + save(evidence / "test.json", {"binding": binding, "ok": True, "profile": "full"}) + save(evidence / "tracked-before.json", {}) + nodes = [ + "tests/contract/test_phase2_transition.py::W08R01Tests::test_clean_installed_components_need_no_phase_policy_or_developer_tools", + "tests/integration/test_analytical_installed_runtime.py::test_clean_installed_analysis_original_heroes_and_completed_finite_case", + ] + save(evidence / "collection.json", {"binding": binding, "nodes": nodes, + "count": 2, "test_files": [node.split("::")[0] for node in nodes], "scopes": list(ALL_SCOPES)}) + document = ET.Element("testsuites") + suite = ET.SubElement(document, "testsuite", tests="2", failures="0", errors="0", skipped="0") + for node in nodes: + parts = node.split("::") + ET.SubElement(suite, "testcase", classname=".".join( + [parts[0][:-3].replace("/", "."), *parts[1:-1]]), name=parts[-1]) + (evidence / "junit.xml").write_bytes(ET.tostring(document)) + (evidence / "pytest.log").write_text("2 passed\n", encoding="utf-8") + complete = {"exit_code": 0, "timed_out": False, "interrupted": False, + "incomplete": False, "timeout_seconds": 180} + save(evidence / "pytest-exit.json", {**complete, "timeout_seconds": 2400}) + names = (["installed", "pip-check"] if local else + ["venv", "pip-version", "download", "install", "pip-check", "installed"]) + for name in names: + save(evidence / (name + "-exit.json"), complete) + archives = [{"name": name} for name in ("a.tar.gz", "a.whl", "b.whl")] + with mock.patch(__name__ + ".current_binding", return_value=binding), \ + mock.patch(__name__ + ".selected_profile", return_value=(binding, {"profile": "full"})), \ + mock.patch(__name__ + ".archive_inventories", return_value=archives), \ + mock.patch(__name__ + ".tracked_bytes", return_value={}), \ + mock.patch(__name__ + ".guard_command", return_value=["synthetic-guard"]), \ + mock.patch(__name__ + ".run"), \ + mock.patch(__name__ + ".policy"), \ + mock.patch(__name__ + ".entry_and_scope"), \ + mock.patch(__name__ + ".installed_receipts", return_value={}), \ + mock.patch(__name__ + ".emit_summary", side_effect=lambda path, value: save(path / "summary.json", value)): + evidence_report(evidence / "work", evidence, local=local) + positive = json.loads((evidence / "summary.json").read_bytes()) + self.assertIs(positive["pass"], True) + self.assertEqual(positive["preparation_commands_completed"], names) + for name in names: + path = evidence / (name + "-exit.json") + mutations = [None, b"{", b"[]", b'{"exit_code":0,"exit_code":7}', + json.dumps({**complete, "exit_code": False}).encode(), + json.dumps({**complete, "exit_code": 7}).encode(), + json.dumps({**complete, "exit_code": None, "incomplete": True}).encode(), + json.dumps({**complete, "timed_out": True}).encode(), + json.dumps({**complete, "interrupted": True}).encode(), + json.dumps({**complete, "incomplete": True}).encode(), + json.dumps({key: value for key, value in complete.items() if key != "incomplete"}).encode()] + for index, raw in enumerate(mutations): + with self.subTest(local=local, command=name, mutation=index): + path.unlink() + if raw is not None: + path.write_bytes(raw) + with self.assertRaisesRegex(ValueError, "^preparation_subprocess_"): + evidence_report(evidence / "work", evidence, local=local) + self.assertIs(json.loads((evidence / "summary.json").read_bytes())["pass"], False) + self.assertIs(json.loads((evidence / "prepare.json").read_bytes())["ok"], True) + save(path, complete) + evidence_report(evidence / "work", evidence, local=local) + self.assertIs(json.loads((evidence / "summary.json").read_bytes())["pass"], True) + + def test_documentation_summary_has_no_preparation_execution(self): + evidence = self.workspace() + binding = {"head": "a" * 40} + save(evidence / "binding.json", binding) + save(evidence / "prepare.json", {"binding": binding, "ok": True, + "profile": "documentation", "dependency_install_performed": False}) + save(evidence / "test.json", {"binding": binding, "ok": True, + "profile": "documentation", "full_suite": False, "collection_performed": False}) + save(evidence / "tracked-before.json", {}) + with mock.patch(__name__ + ".current_binding", return_value=binding), \ + mock.patch(__name__ + ".selected_profile", return_value=(binding, {"profile": "documentation"})), \ + mock.patch(__name__ + ".archive_inventories", return_value=[]), \ + mock.patch(__name__ + ".tracked_bytes", return_value={}), \ + mock.patch(__name__ + ".guard_command", return_value=["synthetic-guard"]), \ + mock.patch(__name__ + ".run"), \ + mock.patch(__name__ + ".policy"), \ + mock.patch(__name__ + ".entry_and_scope"), \ + mock.patch(__name__ + ".validate_documentation"), \ + mock.patch(__name__ + ".reconcile_preparation_commands", side_effect=AssertionError("unexpected dependencies")), \ + mock.patch(__name__ + ".emit_summary", side_effect=lambda path, value: save(path / "summary.json", value)): + evidence_report(evidence / "work", evidence) + summary = json.loads((evidence / "summary.json").read_bytes()) + self.assertIs(summary["pass"], True) + self.assertIs(summary["full_suite"], False) + save(evidence / "pip-check-exit.json", {"exit_code": 0, "incomplete": False}) + with self.assertRaisesRegex(ValueError, "unexpected_preparation_execution_on_documentation_route"): + evidence_report(evidence / "work", evidence) + self.assertIs(json.loads((evidence / "summary.json").read_bytes())["pass"], False) + def test_documentation_still_requires_readable_nonempty_records(self): root = self.workspace() (root / "phase4").mkdir() From 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 19:47:59 -0700 Subject: [PATCH 04/21] Define immutable public report contract and independent reference SIT-Phase-Unit: P4-W02 --- phase4/implementation_evidence.json | 674 +- phase4/report_contract_coverage.json | 1126 +- schemas/report/README.md | 273 +- schemas/report/sit-report-0.1.schema.json | 10358 +++++++++ .../contracts/execution.py | 129 + .../contracts/report.py | 982 +- tests/contract/test_input_schema_mapping.py | 6 +- tests/contract/test_report_contract.py | 1519 ++ tests/contract/test_report_test_oracles.py | 365 + tests/fixtures/micro/phase4_public_cases.json | 458 + tests/golden/phase4_reference_report.json | 1 + tests/golden/phase4_reference_report.md | 19262 ++++++++++++++++ tests/golden/phase4_report_expectations.json | 18151 +++++++++++++++ tests/scaffold/test_contract_catalogs.py | 14 +- 14 files changed, 53098 insertions(+), 220 deletions(-) create mode 100644 schemas/report/sit-report-0.1.schema.json create mode 100644 tests/contract/test_report_contract.py create mode 100644 tests/contract/test_report_test_oracles.py create mode 100644 tests/fixtures/micro/phase4_public_cases.json create mode 100644 tests/golden/phase4_reference_report.json create mode 100644 tests/golden/phase4_reference_report.md create mode 100644 tests/golden/phase4_report_expectations.json diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 4456295..890ae28 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,13 +1,11 @@ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation, independent reference and targeted validation complete; exact published-head hosted checks pending at this record", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -19,214 +17,536 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output." ], + "changed_scope": "Exactly the fourteen P4-W02 paths listed by PHASE_4_PLAN.md; plan, workflow, dependency pins, budgets, input schema, analysis/graph/validation modules, API, renderers and runtime files remain frozen.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." } ], "validation": { - "package_boundary": { - "result": "passed", - "stage": 1, - "checked_modules": 48, - "byte_protected_modules": 48 - }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false - }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_final": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false - }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" } }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 - }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" - }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } - }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { + "package_boundary": { "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "activation_stage": 2, + "checked_modules": 48, + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": { + "status_at_record": "pending", + "record_location": "PR #36 exact-head checks and raw workflow artifacts", + "note": "Actual later hosted outcome is recorded externally without a self-referential evidence-only successor. No documentation-only exemption is used for W02." } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T02:44:05.675016+00:00", + "publication_note": "Targeted tests were run against the final W02 code/schema/tests before this evidence record was written. Exact source hashes are retained externally. Hosted final-head facts belong to the actual PR/run receipts, not this pre-publication record." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index ffc90a9..ed84e55 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,12 +1,12 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W01", - "status": "pending_public_report_skeleton", + "unit": "P4-W02", + "status": "W02 representation contracts and independent exact reference verified; public pipeline/rendering obligations remain pending", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", "sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "owner_authorization": "Exact plan approved; execution authorized for P4-W01 only." + "owner_authorization": "Exact plan approved; user subsequently instructed 启动 P4-W02. Execution is authorized through P4-W02 only." }, "accepted_core_baseline": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -11726,18 +11726,32 @@ "source": "OBSERVABILITY_AND_REPORTING.md §§12.2,16.1,16.8; PHASE_4_PLAN.md §4.1", "planned_unit": "P4-W02", "required_behavior": "Exactly 16 root members and only permitted report/run/input-state pairings; diagnostic envelopes have empty analytical arrays; actual installed tool identity and fixed unknown times.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W02 declaration/local contract verified; actual public envelope execution pending W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_contract.py::test_each_of_sixteen_root_members_is_required_and_typed", + "tests/contract/test_report_contract.py::test_all_four_diagnostic_state_combinations_preserve_actual_acceptance", + "tests/contract/test_report_contract.py::test_reference_envelope_is_accepted_by_both_independent_contract_surfaces" + ], + "execution_evidence": [ + "p4w02-targeted-combined-01.log", + "p4w02-targeted-combined-01.xml" + ] }, { "clause": "frozen_public_access", "source": "PHASE_4_PLAN.md §4.1", "planned_unit": "P4-W02", "required_behavior": "Read-only root attributes, immutable Mapping nested objects, tuple arrays, bounded native scalar types, immutable cached encoded bytes; no raw source, budget, prepared tree or private backing exposed.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W02 declaration and private immutable capture verified; delivered AuditReport and encoded caches pending W05-W08", + "actual_test_nodes": [ + "tests/contract/test_report_contract.py::test_immutable_document_is_deeply_detached_and_has_no_mutable_mapping_backing", + "tests/contract/test_report_contract.py::test_public_report_type_is_declared_without_a_fabricated_success_constructor", + "tests/contract/test_report_contract.py::test_hostile_protocols_cannot_run_during_contract_or_transport_rejection" + ], + "execution_evidence": [ + "p4w02-targeted-combined-01.log", + "p4w02-targeted-combined-01.xml" + ] }, { "clause": "scope_and_population", @@ -13657,9 +13671,1099 @@ } ], "remaining_limits": [ - "All public-envelope and rendering assertions are pending; schema/catalog membership is not behavior evidence.", + "W02 defines and directly tests representation contracts only. All 228 public-pipeline and rendering obligation rows remain pending until their actual behavior is exercised; schema membership or a constructed envelope does not close them.", "Original hero interruption under unchanged resource budgets is not full-field public completion.", "File/CLI/native/publication and release clauses remain separately deferred.", "Inherited private-core evidence and historical failures retain their original scopes; this map does not rewrite acceptance history." - ] + ], + "representation_choices": [ + { + "area": "public_type", + "source": "PHASE_4_PLAN.md §4.1 and P4-W02 stop point", + "choice": "AuditReport declares 16 read-only named attributes and two cached-byte accessors. Its ordinary constructor rejects; no completion factory or public audit delivery exists in W02. Private validation/freezing accepts only exact bounded JSON-domain values through a project-owned accounting port." + }, + { + "area": "input_reference", + "source": "OBSERVABILITY_AND_REPORTING.md §16.6; existing contracts/results.py _InputRef", + "choice": "Typed input links retain collection, identifier and nullable selector. Report-local references remain typed strings with the eight existing prefixes; text collision does not merge namespaces." + }, + { + "area": "tool_identity", + "source": "REPOSITORY_ARCHITECTURE.md §18.3; pyproject.toml actual version", + "choice": "tool_name uses the adopted product title Source Integrity Toolkit; tool_version remains actual 0.1.0.dev0. This text is an implementation spelling of the existing identity, not a new metric or schema root." + }, + { + "area": "profile_and_clock", + "source": "REPOSITORY_ARCHITECTURE.md §18.3; GOVERNANCE_AND_HANDOFF.md §22.2", + "choice": "run.qualifications fixes SIT-RP-0.1 and an explicit omitted-clock statement. Both run TimeValues are unknown/null/null with not_recorded_by_SIT-RP-0.1. Source-native TimeValue precision and offsets remain separate." + }, + { + "area": "release_limits", + "source": "OBSERVABILITY_AND_REPORTING.md §16.8; PHASE_4_PLAN.md §4.4", + "choice": "Six fixed tool-owned statements preserve caller-supplied/offline basis, no external authentication, no live/content detection, no global score, no intervention and scope-specific unknown/qualification limits. Source text cannot replace the statements." + }, + { + "area": "diagnostic_reasons", + "source": "OBSERVABILITY_AND_REPORTING.md §§12.2,16.1", + "choice": "Only the specified eight analytical arrays must be empty in diagnostic envelopes. A safe diagnostic Reason may have null scope_ref and empty input/affected-result links; parsed metadata must retain its acceptance limitations." + }, + { + "area": "private_scope_anchor", + "source": "PHASE_4_PLAN.md §4.2; REPOSITORY_ARCHITECTURE.md §18.1", + "choice": "Private operation_anchor participates in later semantic identity. It is not added as a public Scope key; existing target references and typed payload carry the required operation meaning." + }, + { + "area": "finding_projection", + "source": "OBSERVABILITY_AND_REPORTING.md §§18.1,19.2; PHASE_4_PLAN.md §4.2", + "choice": "Private result_refs/native_records are not copied into public Finding. Result witness_refs use Finding IDs and public Finding.witness carries finite evidence. No root witnesses array exists." + }, + { + "area": "domain_projection", + "source": "OBSERVABILITY_AND_REPORTING.md §15; PHASE_4_PLAN.md §4.2", + "choice": "Public domains have the specified six keys, excluding not_applicable_result_refs. Actual per-inquiry aggregation into five global domains remains W03 work." + }, + { + "area": "exact_numbers", + "source": "OBSERVABILITY_AND_REPORTING.md §16.5; REPOSITORY_ARCHITECTURE.md §§17.2,18.3", + "choice": "Runtime scalar integers are exact built-in int in the portable range; bool is never a count. Fractions keep original integer numerator/denominator. Optional display_decimal is omitted from this JSON profile. JSON Schema mathematical integer semantics are distinct from Python exact-type capture." + }, + { + "area": "contract_schema_boundary", + "source": "PHASE_4_PLAN.md §§4.2,7.3", + "choice": "The report schema is a closed repository development contract with local references. Installed runtime does not read it or source files. No package-data, dependencies, input schema, input semantics or native file API change is made." + }, + { + "area": "transport", + "source": "REPOSITORY_ARCHITECTURE.md §18.4; GOVERNANCE_AND_HANDOFF.md §22.3; PHASE_4_PLAN.md §4.1", + "choice": "AuditAbort exposes fixed processing/input/reason/publication states; AuditCancelled preserves input/publication state without a report reason; AuditUsageError uses invalid_invocation and fixed safe text. Phase 4 publication_state is not_published. Existing private stops remain unchanged." + }, + { + "area": "bounded_declarations", + "source": "PHASE_4_PLAN.md P4-W02; REPOSITORY_ARCHITECTURE.md §19", + "choice": "Report validation/freezing prospectively charges a trusted restricted port. Output/witness port methods are declarations only; runtime/resources, output-limit wiring and the single-ledger public composition remain later units." + } + ], + "record_disclosure_projection_definitions": [ + { + "field_key": "origin_boundary_disclosures", + "family": "SIT-M002", + "frozen_private_source": "analysis/origins.py:711-728", + "private_shape": { + "data": "AssessmentData", + "scope": "Scope", + "provenance": "Provenance", + "lifecycle_state": "enum_lifecycle_state", + "gaps?": { + "array": "Gap" + }, + "qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "OriginBoundaryFields", + "public_schema_pointer": "/$defs/OriginBoundaryFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "native_record", + "qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record", + "qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "ancestry_gap_disclosures", + "family": "SIT-M007", + "frozen_private_source": "analysis/origins.py:738-783", + "private_shape": { + "seed_ref": "Identifier", + "dimension": "enum_dimension", + "gaps": { + "array": { + "source": { + "collection": "str", + "identifier": "Identifier", + "selector": "str" + }, + "reason_codes": { + "array": "ReasonCode" + } + } + }, + "frontiers": { + "array": "Record (unresolved_reference)" + }, + "coverage": { + "array": { + "coverage_ref": "Identifier", + "qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + } + }, + "witness_paths": { + "array": { + "nodes": { + "array": "Identifier" + }, + "assertions": { + "array": "Identifier" + } + } + } + }, + "public_schema_definition": "AncestryGapFields", + "public_schema_pointer": "/$defs/AncestryGapFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "coverage", + "dimension", + "frontiers", + "gaps", + "seed_ref", + "witness_paths" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "coverage", + "dimension", + "frontiers", + "gaps", + "seed_ref", + "witness_paths" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "independence_assessment_disclosures", + "family": "SIT-M003", + "frozen_private_source": "analysis/process_comparison.py:867-901", + "private_shape": { + "data": "AssertionData", + "scope": "Scope", + "provenance": "Provenance", + "asserted_at": "TimeValue", + "lifecycle_state": "enum_lifecycle_state", + "lifecycle_basis_ref_ids": { + "array": "Identifier" + }, + "gaps?": { + "array": "Gap" + }, + "extensions?": "Extensions [PRIVATE ONLY; never automatic public copy]" + }, + "public_schema_definition": "IndependenceAssessmentFields", + "public_schema_pointer": "/$defs/IndependenceAssessmentFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "native_record", + "origin_qualification_state", + "process_qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "native_record", + "origin_qualification_state", + "process_qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "evaluator_overlap_disclosures", + "family": "SIT-M008", + "frozen_private_source": "analysis/evaluator_lineage.py:504-538", + "private_shape": { + "native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)" + }, + "public_schema_definition": "EvaluatorOverlapFields", + "public_schema_pointer": "/$defs/EvaluatorOverlapFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "common_ancestor_refs", + "left_object_refs", + "matching_family_labels", + "missing_family_model_refs", + "native_record", + "one_sided_ancestry", + "right_object_refs", + "roles", + "roles_complete", + "shared_object_refs" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "common_ancestor_refs", + "left_object_refs", + "matching_family_labels", + "missing_family_model_refs", + "native_record", + "one_sided_ancestry", + "right_object_refs", + "roles", + "roles_complete", + "shared_object_refs" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "externality_assessment_disclosures", + "family": "SIT-M009", + "frozen_private_source": "analysis/presence.py:681-705", + "private_shape": { + "spread_native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)" + }, + "public_schema_definition": "ExternalityAssessmentFields", + "public_schema_pointer": "/$defs/ExternalityAssessmentFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "native_record", + "qualification_state", + "qualified_externality", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "native_record", + "qualification_state", + "qualified_externality", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "externality_stage_links", + "family": "SIT-M009", + "frozen_private_source": "analysis/presence.py:706-726", + "private_shape": { + "spread_native_record": "Record (pipeline_record)", + "qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + }, + "externality_subject_refs": { + "array": "Identifier" + }, + "mapping_assertion_refs": { + "array": "Identifier" + } + }, + "public_schema_definition": "ExternalityStageFields", + "public_schema_pointer": "/$defs/ExternalityStageFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "externality_subject_refs", + "mapping_assertion_refs", + "native_record", + "qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "externality_subject_refs", + "mapping_assertion_refs", + "native_record", + "qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "pipeline_stage_disclosures", + "family": "SIT-M010", + "frozen_private_source": "analysis/presence.py:706-726", + "private_shape": { + "spread_native_record": "Record (pipeline_record)", + "qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "PipelineStageFields", + "public_schema_pointer": "/$defs/PipelineStageFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "native_record", + "qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record", + "qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "cohort_transition_disclosures", + "family": "SIT-M010", + "frozen_private_source": "analysis/presence.py:728-738", + "private_shape": { + "spread_native_record": "Assertion (coverage)", + "stage_anchor": { + "alternatives": [ + { + "tuple": [] + }, + { + "tuple": [ + "run_key:str", + "stage_key:str", + "enum_stage" + ] + } + ] + }, + "cohort_qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "transition_qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "CohortTransitionFields", + "public_schema_pointer": "/$defs/CohortTransitionFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "cohort_qualification_state", + "native_record", + "reason_codes", + "stage_anchor", + "transition_qualification_state" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "cohort_qualification_state", + "native_record", + "reason_codes", + "stage_anchor", + "transition_qualification_state" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "correction_route_disclosures", + "family": "SIT-M011", + "frozen_private_source": "analysis/correction_routes.py:455-480", + "private_shape": { + "native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)" + }, + "public_schema_definition": "CorrectionRouteFields", + "public_schema_pointer": "/$defs/CorrectionRouteFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "absence_description", + "action_type", + "authorized_route_recorded", + "authorized_route_state", + "declared_route_recorded", + "grant_matches_tuple", + "grant_qualification_state", + "grant_reason_codes", + "native_record", + "target_ref" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "absence_description", + "action_type", + "authorized_route_recorded", + "authorized_route_state", + "declared_route_recorded", + "native_record", + "target_ref" + ], + [ + "grant_matches_tuple", + "grant_qualification_state", + "grant_reason_codes", + "native_record" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "correction_case_disclosures", + "family": "SIT-M012", + "frozen_private_source": "analysis/correction_outcomes.py:448-477", + "private_shape": { + "native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)" + }, + "public_schema_definition": "CorrectionCaseFields", + "public_schema_pointer": "/$defs/CorrectionCaseFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "documentary_state", + "explicit_removal", + "native_record", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "documentary_state", + "explicit_removal", + "native_record", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "correction_target_change_disclosures", + "family": "SIT-M012", + "frozen_private_source": "analysis/correction_outcomes.py:491-510", + "private_shape": { + "native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)", + "case_rows": { + "array": { + "case_ref": "Identifier", + "declared": "bool", + "selected": "bool", + "change_event_refs": { + "array": "Identifier" + }, + "qualified_change_event_refs": { + "array": "Identifier" + }, + "documentary_state": { + "enum": [ + "met", + "unknown" + ] + }, + "requested_effect_state": { + "enum": [ + "available", + "unavailable" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + } + } + }, + "public_schema_definition": "CorrectionTargetChangeFields", + "public_schema_pointer": "/$defs/CorrectionTargetChangeFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "case_rows", + "native_record" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "case_rows", + "native_record" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "reported_capacity_disclosures", + "family": "SIT-M012", + "frozen_private_source": "analysis/correction_outcomes.py:478-489", + "private_shape": { + "native_record": "Assertion (capacity)" + }, + "public_schema_definition": "ReportedCapacityFields", + "public_schema_pointer": "/$defs/ReportedCapacityFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "documentary_state", + "native_record", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "documentary_state", + "native_record", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "corrective_independence_disclosures", + "family": "SIT-M013", + "frozen_private_source": "analysis/human_review.py:334-403", + "private_shape": { + "alternatives": [ + "independence_assessment_disclosures shape", + { + "spread_native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)" + } + ] + }, + "public_schema_definition": "CorrectiveIndependenceFields", + "public_schema_pointer": "/$defs/CorrectiveIndependenceFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "contribution_status", + "documentary_state", + "identity_state", + "native_record", + "origin_qualification_state", + "process_qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "contribution_status", + "documentary_state", + "identity_state", + "native_record", + "reason_codes" + ], + [ + "native_record", + "origin_qualification_state", + "process_qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "human_contribution_disclosures", + "family": "SIT-M013", + "frozen_private_source": "analysis/human_review.py:334-403", + "private_shape": { + "spread_native_record": "Native = Inquiry | Record | Assertion | EvidenceReference (private full record, PUBLIC MUST SELECT)" + }, + "public_schema_definition": "HumanContributionFields", + "public_schema_pointer": "/$defs/HumanContributionFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "contribution_status", + "documentary_state", + "identity_state", + "native_record", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record" + ], + [ + "contribution_status", + "documentary_state", + "identity_state", + "native_record", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "anomaly_context_disclosures", + "family": "SIT-M014", + "frozen_private_source": "analysis/context.py:444-477", + "private_shape": { + "native_record": "Record | Assertion", + "context_records": { + "array": "Record | Assertion | EvidenceReference" + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "AnomalyContextFields", + "public_schema_pointer": "/$defs/AnomalyContextFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "context_records", + "native_record", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "context_records", + "native_record", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "contestation_disclosures", + "family": "SIT-M014", + "frozen_private_source": "analysis/context.py:444-477", + "private_shape": { + "native_record": "Record | Assertion", + "context_records": { + "array": "Record | Assertion | EvidenceReference" + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "ContestationFields", + "public_schema_pointer": "/$defs/ContestationFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "context_records", + "native_record", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "context_records", + "native_record", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "tail_stage_result_links", + "family": "SIT-M014", + "frozen_private_source": "analysis/context.py:444-454", + "private_shape": { + "source_result_state": { + "enum": [ + "available", + "unavailable", + "not_applicable", + "not_evaluated" + ] + }, + "source_value_kind": { + "enum": [ + "count", + "fraction", + "completion_interval", + "partition", + "incidence", + "record_disclosures", + "witness_collection" + ] + } + }, + "public_schema_definition": "TailStageResultLinkFields", + "public_schema_pointer": "/$defs/TailStageResultLinkFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "source_result_state", + "source_value_kind" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "source_result_state", + "source_value_kind" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "coverage_disclosures", + "family": "SIT-M015", + "frozen_private_source": "validation/semantics.py:1017-1038", + "private_shape": { + "data": "AssessmentData", + "scope": "Scope", + "provenance": "Provenance", + "lifecycle_state": "enum_lifecycle_state", + "gaps?": { + "array": "Gap" + }, + "qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "CoverageFields", + "public_schema_pointer": "/$defs/CoverageFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "native_record", + "qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record", + "qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + }, + { + "field_key": "documentary_basis_gap_disclosures", + "family": "SIT-M015", + "frozen_private_source": "validation/semantics.py:1017-1038", + "private_shape": { + "provenance": "Provenance", + "gaps?": { + "array": "Gap" + }, + "qualification_state": { + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "array": "ReasonCode" + } + }, + "public_schema_definition": "DocumentaryBasisGapFields", + "public_schema_pointer": "/$defs/DocumentaryBasisGapFields", + "source_authority": "OBSERVABILITY_AND_REPORTING.md §§16.5–16.6,17; PHASE_4_PLAN.md §4.2", + "status": "closed_definition_present; projection_execution_pending_W03_W04", + "public_definition_fields": [ + "native_record", + "qualification_state", + "reason_codes" + ], + "limitation": "A declaration and static source map; not evidence that a private record has been disclosed, assembled or rendered.", + "public_definition_variants": [ + [ + "native_record", + "qualification_state", + "reason_codes" + ] + ], + "variant_rule": "Each complete closed variant stands alone; the field union is an index, not permission to mix branches." + } + ], + "schema_shape_inventory": { + "path": "schemas/report/sit-report-0.1.schema.json", + "definitions": 195, + "all_references_local": true, + "schema_runtime_reads": false, + "validation_claim": "Finite structural checks for the declared keyword subset, plus independent Python contract checks. No general Draft metaschema/conformance certification.", + "closed_objects": 160, + "local_references": 586, + "sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c" + }, + "private_public_projection_definitions": [ + { + "area": "analytical_outcome", + "private_source": "contracts/report.py _AnalyticalOutcome; contracts/evidence.py _PreparedBundle", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §§12,16.1; PHASE_4_PLAN.md §4.2", + "mapping": "Execution and actual input acceptance supply run/input_validation; accepted bundle/snapshot/predecessor supply input_identity. Results, capabilities, domains, Findings and witnesses are projected separately. Private prepared/raw trees, provider indexes, plan, job ledger and source execution objects are not serialized.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "scope", + "private_source": "contracts/results.py _Scope", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.2; REPOSITORY_ARCHITECTURE.md §18.1", + "mapping": "Public Scope keeps inquiry, claims, targets, dependency dimension, view, temporal basis, requested time, coverage and qualifications. Private operation_anchor remains an identity/sort key; actual operation meaning stays in existing target and typed payload fields.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "population", + "private_source": "contracts/results.py _Population, _CaseTarget", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.3", + "mapping": "Keep unit, scope, explicit membership, state, selection, basis, coverage and qualifications. Composite case targets retain case_ref/before_ref. Empty enumerated membership remains distinct from unestablished membership.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "basis", + "private_source": "contracts/results.py _BasisRef; contracts/evidence.py _BasisQualification, _CoverageQualification; accepted source records", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.6; PRIVACY_AND_DATA_HANDLING.md §4.2", + "mapping": "Resolve native source into explicit BasisEntry fields. Preserve basis_kind/attribution/method/support/availability/scope/time/lifecycle/qualifications and actual checks. No record dump, new provenance qualification or automatic source verification.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "result", + "private_source": "contracts/results.py _Result, _ResultRef, _ResultSet", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §§12.3,16.4,17", + "mapping": "Map each registered family/field and its exact scope slot to one Result; retain execution_state, result_state, origin, value_kind, value, population, basis/check/reason/Finding links and interpretation limits. Nonresults remain null. Conflicting equal slots are contract errors, not overwritten.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "count", + "private_source": "contracts/results.py _Count", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.5", + "mapping": "Use exact nonnegative integer value. Unit and member set remain in referenced Population; no float or boolean conversion.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "fraction", + "private_source": "contracts/results.py _Fraction", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.5; REPOSITORY_ARCHITECTURE.md §17.2", + "mapping": "Keep original numerator and denominator without reduction or decimal substitution. Registered fraction fields retain their specific denominator and bounds.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "partition", + "private_source": "contracts/results.py _Partition, _PartitionCategory", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.5", + "mapping": "Preserve category labels, member references, counts and common Population. Public total is the unchanged exclusive membership total, not a new analytical score.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "completion_interval", + "private_source": "contracts/results.py _CompletionInterval", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.5", + "mapping": "Keep exact endpoints, interval_kind, common Population and full partition. Public total/count relationships validate existing Y/F/U or D/O/M/U completion semantics without rerunning evidence qualification.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "incidence", + "private_source": "contracts/results.py _Incidence, _IncidenceRow", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.5; DEFINITIONS_AND_UNITS.md origin contribution definitions", + "mapping": "Keep each seed-to-origin membership and full origin-to-seed buckets/counts. Public total is the unchanged seed population N = len(memberships). Nonexclusive origin incidence remains in both directional lists and origin counts; sum(origin counts) can exceed N. No exclusive-normalization or cross-seed deduplication.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "record_disclosures", + "private_source": "contracts/results.py _RecordDisclosures, _Disclosure; 19 explicit owner payloads", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §§16.5,17; PRIVACY_AND_DATA_HANDLING.md §4", + "mapping": "Map source plus explicit field-specific selected payload plus qualifications. Full mapping is record_disclosure_projection_definitions, including closed native fragments. Tail-stage links use Result IDs; other source links use InputRef.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "reason", + "private_source": "contracts/results.py _Reason", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §12.4; REPOSITORY_ARCHITECTURE.md §18.1", + "mapping": "Retain code, scope, affected Results, input refs, detail and classification. Full ID-free body and anchor determine identity; matching code/detail alone does not authorize unioning affected Results or collapsing Findings.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "check", + "private_source": "contracts/results.py _PrerequisiteCheck", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §13", + "mapping": "Retain public id, check_id, scope_ref, state, input_refs, reason_refs and note. The private result_ref remains in the later identity anchor and inverse Result.check_refs, not a new public applies_to member. Preparatory pending facts are not promoted to executed Checks.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "capability", + "private_source": "contracts/report.py _Capability", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §16.7", + "mapping": "Keep each inquiry/family scope, complete Result list, exact four disjoint state lists, prerequisite checks, reasons and scope_note. Execution remains on linked Results and run metadata, not a new Capability field. Do not infer family completion from one available child.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "domains", + "private_source": "contracts/report.py _DomainOutcome", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §15; PHASE_4_PLAN.md §4.2", + "mapping": "Group the private per-inquiry references into exactly five global domain rows, preserving the six public members. not_applicable remains in Results/Capabilities and is not invented as a seventh domain field.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "private_finding", + "private_source": "contracts/report.py _PrivateFinding, _DetachedFindingWitness", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §18.1", + "mapping": "Preserve condition, observation kind, exact scope, witness/input material, basis, reasons, limitations, adverse associations and observed/not-observed meaning. Private result_refs become inverse public Result.witness_refs; native_records contribute only approved selected payload and basis. Dedup requires full body and anchor equality.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "witness_reference", + "private_source": "contracts/results.py _WitnessRef, _WitnessCollection; contracts/report.py _WitnessRecord", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §§18.1,19.2; PHASE_4_PLAN.md §4.2", + "mapping": "Resolve retained owner evidence to actual report Findings at its original context where a genuine registered condition is already proved, or account for duplicate inventory material in existing Population/Count/Basis/Check/disclosure positions. Never replace a positive trace by scoped_no_witness or attach it to a different target/coverage scope. Detailed six-owner mapping is recorded separately.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "graph_material", + "private_source": "graph/projections.py _GraphNode, _GraphEdge; graph/witnesses.py _GraphWitness; runtime/boundary.py _payload", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §18.1; REPOSITORY_ARCHITECTURE.md §18.1", + "mapping": "Graph nodes retain typed input ref/kind; edges retain source/target/source_ref/predicate/eligibility/reasons. Paths, cycles, examined material, frontiers, terminals and observations retain full native order and occurrence counts. Exact source selector and target recover edge identity; private tuple keys do not escape.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + }, + { + "area": "preparation_and_stops", + "private_source": "contracts/report.py preparation/completion classes; contracts/execution.py private stop classes", + "normative_source": "OBSERVABILITY_AND_REPORTING.md §§12,16.1; GOVERNANCE_AND_HANDOFF.md §22.3", + "mapping": "Prepared indexes and completion evidence are private inputs to later composition, not public arrays. Real processing/acceptance state supplies the prescribed diagnostic envelope or safe transport. No partial report, source exception representation or fabricated time is introduced.", + "status": "representation defined in W02; general assembly/disclosure/runtime execution pending W03-W08" + } + ], + "witness_projection_definitions": [ + { + "owner_form": "inventory_witness", + "private_source": "analysis/inventory.py _inventory_result and inventory witness construction", + "public_home": "The exact same scope Population membership and Count preserve this duplicate finite inventory; no synthetic Finding is created.", + "evidence": "inventory.py members/count derivation at accepted baseline; N17 reference mappings", + "execution_status": "definition and independent reference only; W03 implementation pending" + }, + { + "owner_form": "comparison_witness", + "private_source": "analysis/process_comparison.py _selected_witness, _witness_refs, _comparison_results and _checks", + "public_home": "Members remain in the four existing populations; nullable assessment remains in source targets and actual assessment disclosure/reasons. Examined assessments remain in actual PC03 source selectors and basis. Any genuine matching private Finding also retains its full component at the unchanged owner scope. Do not invent independence from a missing assessment or deduplicate occurrence counts.", + "execution_status": "definition and independent reference only; W03 implementation pending" + }, + { + "owner_form": "selected_members", + "private_source": "analysis/presence.py selection witness construction and _presence_results; analysis/context.py selection witness construction and _context_results", + "public_home": "Presence selection is the exact union of native and transition basis sources; the transition field retains the complete union. Context selection is the anomaly plus contestation basis union, excluding the separate tail-stage basis. No invented Population or blanket tail-stage source substitution. Same-scope original Findings retain their complete relevant component.", + "execution_status": "definition and independent reference only; W03 implementation pending" + }, + { + "owner_form": "graph_witness", + "private_source": "graph/witnesses.py; analysis/origins.py _witness_refs; analysis/contribution_profile.py _witness_refs; runtime/boundary.py _payload", + "public_home": "Retain every ordered proof/trace component in an actual Finding at the original operation scope. Existing owner-proven paths may use the registered positive_witness/transformation_path_witness representation without new search. Do not attach a coverage trace to a narrower target-only Finding. No new condition or empty positive path is allowed.", + "reference_decision": "N15 retains all 20 original private Findings and adds two already-proven same-owner-context path/complete-trace representations. Origin scope has target_refs=[] and coverage=[P4-COVER]; the original PARENT Finding has targets=[P4-E1,P4-O1] and no coverage, so they are not conflated. Full-body/anchor dedup is required in later assembly.", + "execution_status": "independent reference projection only; general W03 implementation pending" + }, + { + "owner_form": "human_review_witness", + "private_source": "analysis/human_review.py selection/source_refs, examined assessments and _human_review_results; analysis/findings.py _human_findings", + "public_home": "Members remain in the exact existing M013 Population. All original corrective_independence_disclosures rows, including primary and support rows, remain first; append one native-only selected-record row per examined_assessments item in original order, then one native-only row per source_refs slot in original order. Keep full source selectors and repeated slots. Never merge these rows, add input eligibility or create a Finding to house the selection. Actual same-owner private Findings retain their complete components as well.", + "scan_qualifications": [ + "Examined assessment only; this scan does not establish applicability or qualification for the selected review scope." + ], + "source_slot_qualifications": [ + "Actual owner selection/source reference slot; this record does not establish an applicable review or independent process." + ], + "qualification_rule": "These two arrays are fixed profile markers, not source-authored qualification overrides. Each appended row uses the existing closed native-only payload. Selected source fields retain the Inquiry target list and Assertion subjects/scope/dimension. They disclose which originals were actually examined, not a new comparison population or human-judgment count.", + "counterexample": "An unrelated independence assessment is retained in examined_assessments before relevance filtering even when no private human Finding exists. Basis/Checks alone cannot preserve it. Empty N15 likewise retains the actual Inquiry.target_object_refs source slot rather than claiming the root Inquiry Basis is the same selector.", + "member_count_accounting": "Original member_count is members length plus examined-assessment row occurrences plus source-slot row occurrences; no new public quantitative result is created.", + "sources": [ + "OBSERVABILITY_AND_REPORTING.md §§16.5,17", + "DEFINITIONS_AND_UNITS.md §25.3", + "analysis/human_review.py:135-155,211-226,271-281" + ], + "execution_status": "representation defined and independent positive/mutant oracle; W03/W04 projection and W07 reservation integration pending" + }, + { + "owner_form": "correction_outcome_witness", + "private_source": "analysis/correction_outcomes.py source slots and basis_entities; analysis/findings.py _outcome_findings", + "public_home": "Every case emits its actual case_handling_disclosure Finding with the full owner witness at its scope. Without cases, no case/event slots exist: source_refs is the Inquiry root, members are the already retained basis_entities, and any capacity is its existing reported_capacity_disclosures row. Do not infer that the human-review scan follows this different correction rule.", + "execution_status": "definition and independent reference only; general W03 implementation pending" + } + ], + "w02_verification": { + "tests": 1445, + "successful_subtests": 12, + "seconds": 28.53, + "scope": "Eight targeted files; includes all N01/N20, both narrow migrations and original private contracts/diagnostics. No full-suite or public audit completion claim.", + "new_contract_test_count": 953, + "new_oracle_test_count": 89, + "schema_test_claim": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification", + "reference": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "pending": "All 228 field obligations retain their existing pending public-pipeline/rendering state; representation tests do not close assembly, execution, privacy or release acceptance." + } } diff --git a/schemas/report/README.md b/schemas/report/README.md index 40778c8..63719c4 100644 --- a/schemas/report/README.md +++ b/schemas/report/README.md @@ -1,28 +1,251 @@ -# sit-report/0.1 reservation +# sit-report/0.1 structural contract Copyright 2026 Xiangyu Guo. SPDX-License-Identifier: Apache-2.0. -Status: logical contract adopted; executable schema not delivered. - -The output authority is [OBSERVABILITY_AND_REPORTING.md](../../OBSERVABILITY_AND_REPORTING.md) -sections 12-19, including all 57 field keys in section 17. The completed -realization is in [REPOSITORY_ARCHITECTURE.md](../../REPOSITORY_ARCHITECTURE.md) -sections 18-20, read with [GOVERNANCE_AND_HANDOFF.md](../../GOVERNANCE_AND_HANDOFF.md) -section 22 and the adopted privacy controls. - -The [Trace catalog](../../scaffold/trace_catalog.json) and -[obligation catalog](../../scaffold/obligation_catalog.json) retain field, -prerequisite, reason, finding and test references. They do not serialize an audit -report, classify observability, construct a witness or calculate any value. -Native source outcomes remain separate from toolkit processing/result states. -The existing code `outside_v01` retains its exact spelling, including digits; -indexing it does not enable a detector or another excluded feature. - -Available, unavailable, not-applicable and not-evaluated meanings retain their -scope and evidence prerequisites. No empty success envelope, constant hero -answer, global score or executable output schema is introduced. The temporary -CLI scaffold refusal remains exit 1 and is not a `sit-report/0.1` result. - -JSON/Markdown parity, exact numbers, disclosure and interrupted-run behavior -remain pending implementation. Catalog equality tests cannot satisfy those -behavioral obligations. This directory contains documentation only. +Status: structural schema delivered for P4-W02; public audit execution remains unavailable. + +[sit-report-0.1.schema.json](sit-report-0.1.schema.json) declares the closed logical +report structure for the accepted SIT-RP-0.1 reference profile. It does not construct +a report, run analysis, authorize disclosure, encode either format, or activate a +public audit function. A type or schema existing does not establish a completed audit. + +## Authority and limits + +The controlling sources remain: + +- [OBSERVABILITY_AND_REPORTING.md](../../OBSERVABILITY_AND_REPORTING.md) §§12-19: + six run/input combinations, six Result state pairings, 16 root members, nested + objects, seven value kinds, 57 field bindings, 40 Reason codes, 24 prerequisites, + five domains and 22 finding conditions. +- [REPOSITORY_ARCHITECTURE.md](../../REPOSITORY_ARCHITECTURE.md) §§17-18 and + [GOVERNANCE_AND_HANDOFF.md](../../GOVERNANCE_AND_HANDOFF.md) §22: exact scalars, + typed local identities, ordered witnesses, fixed clock metadata and no JSON + `display_decimal`. +- [CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md](../../CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md) + §§3-11: native source shapes, time, lifecycle, classifications, role bindings, + relation details, assessment conclusions, pipeline states and correction outcomes. +- [PRIVACY_AND_DATA_HANDLING.md](../../PRIVACY_AND_DATA_HANDLING.md) §§4, 6-8 and + [PHASE_4_PLAN.md](../../PHASE_4_PLAN.md) §§4.1-4.4, 6/P4-W02, 7.3: explicit + disclosure selection, safe diagnostics, exact integers, finite payloads, + repository-only schema and the current implementation stop. + +The historical [Trace catalog](../../scaffold/trace_catalog.json) and +[obligation catalog](../../scaffold/obligation_catalog.json) retain their original +status and source mappings. Their existence does not complete later public report, +native-file, CLI or release obligations. + +The declaration uses the same Draft 2020-12 style as the bundle schema. Every +`$ref` resolves inside this file. Fixed objects have `additionalProperties: false`; +source variants and disclosure/witness alternatives have explicit member types. +There is no arbitrary JSON value, extension dictionary, remote reference, default, +executable selector or runtime schema lookup. + +Schema validation is structural evidence, not full Draft conformance certification. +JSON Schema's mathematical integer convention does not establish the Python +transport's exact built-in-int requirement. Raw duplicate keys, Unicode scalar +validity, byte counts, source time syntax, operation provenance, global reference +closure, semantic identities, reference partitions, count/member equality, interval +ordering, documentary qualification, disclosure selection, budgets and format parity +require separate direct checks. Schema acceptance does not authenticate input or +certify analysis. This file is development contract material; current package-data +rules do not place it in the wheel, and installed runtime code does not read +repository schema or test files. + +## Core representations + +The root is `AuditReport`, with exactly reporting §16.1's 16 fields. Diagnostic +envelopes require the eight analytical arrays to be empty; Reasons may remain with +a null scope for an unscoped diagnostic. Audits have five domain entries. Domains +have six fields and no `not_applicable_result_refs`; that state remains in Results +and Capabilities. Requested diagnostic IDs always cover all fifteen families. + +`InputRef` is `{collection, identifier, selector}`. Its collection is `inquiries`, +`records`, `assertions` or `evidence_references`; selector is null or a complete +source field/role selector. A selector is not split on dots in embedded input IDs +and never executed. Local references require their own `SIT-...-` prefix and a +positive sequence of at least six digits. Input IDs resembling local IDs retain +their separate typed namespace. A case-target pair uses a record case reference and +a before reference to either a Record or an Assertion, as the native correction +target contract permits. + +TimeValue preserves state/value/precision and optional reason. Known time may omit +reason; other states require a nonempty reason and null value/precision. Run times +are the fixed unknown TimeValues with `not_recorded_by_SIT-RP-0.1`. Diagnostic +location is null in this profile, matching existing safe private diagnostics; +source-supplied IDs and exception representations do not become locations. + +| Value kind | Public representation | +| --- | --- | +| count | Nonnegative portable integer; unit/membership belong to the referenced Population | +| fraction | `{numerator, denominator}` with the original positive denominator | +| completion_interval | `{lower, upper, interval_kind, population_ref, partition}` | +| partition | `{population_ref, categories, total}`; each category is `{label, member_refs, count}` | +| incidence | `{population_ref, memberships, origin_counts, total, nonexclusive}`; nonexclusive is true; memberships retain member/origin references and origin rows retain members/count | +| record_disclosures | `{records}`; each entry is `{source, fields, qualifications}` with a field-specific closed payload | +| witness_collection | `{witness_refs}` referencing this report's Findings | + +Structured correction target members use `{case_ref, before_ref}` only for unit +`case_target`. Counts, totals, membership equality and HHI bucket meaning are +independently checked; the schema does not recompute analysis. + +BasisEntry has exactly `id`, `source`, `basis_kind`, `asserter_ref`, `attestor_ref`, +`method`, `support_refs`, `availability`, `scope`, `time`, `lifecycle`, +`qualifications`, `check_refs`. Missing source metadata stays null where declared. +Scope retains inquiry/claim references and effective window. The closed time bag +allows only actual asserted/occurred/observed/published/retrieved/as-of TimeValues +and valid/inquiry time windows; absent source fields are omitted. Lifecycle is null or `{state, +basis_refs}`. Documentary outcomes remain linked Checks, not source-verification +flags. Empty method text remains representable without qualifying its basis. + +Run identity is `Source Integrity Toolkit`, version `0.1.0.dev0`, with supported +input contract `sit-bundle/0.1`. Run qualifications and six release-limit statements +are exact tool-owned arrays. Source metadata cannot override them. Source-specific +limitations stay in Scope, Result, Finding, Reason, Basis and disclosure qualifications. + +## Selected native fields and disclosure mappings + +Private analytical disclosures can contain complete immutable input records. Those +are not public values. Public `fields.native_record` is an explicitly selected +`SelectedNative` fragment. Its closed Inquiry/Record/Assertion/EvidenceReference +branch preserves source layering and native conclusions; family qualification +fields sit beside it. Input records are not mutated. + +Every record data, relation detail, assessment detail and correction detail uses an +explicit property allowlist. The schema rejects `extensions`, `excerpt`, +`contact_locator`, `display_name`, `identity_key`, `locator`, `locators`, +`citation_locator`, `external_locator`, `protected_key`, source record labels and +full artifact checksums. Claim text and Artifact work keys are not selected. IDs, +exact family labels, methods, role bindings, pertinent context, original outcomes, +coverage, time, lifecycle, scope notes, attribution and qualifications remain where +the fragment requires them. Allowed strings and topology can still identify people +or material; this is not anonymization or publication approval. + +| Field key | Closed fields definition | Existing private owner | +| --- | --- | --- | +| origin_boundary_disclosures | OriginBoundaryFields | analysis/origins.py | +| ancestry_gap_disclosures | AncestryGapFields | analysis/origins.py | +| independence_assessment_disclosures | IndependenceAssessmentFields | analysis/process_comparison.py | +| evaluator_overlap_disclosures | EvaluatorOverlapFields | analysis/evaluator_lineage.py | +| externality_assessment_disclosures | ExternalityAssessmentFields | analysis/presence.py | +| externality_stage_links | ExternalityStageFields | analysis/presence.py | +| pipeline_stage_disclosures | PipelineStageFields | analysis/presence.py | +| cohort_transition_disclosures | CohortTransitionFields | analysis/presence.py | +| correction_route_disclosures | CorrectionRouteFields | analysis/correction_routes.py | +| correction_case_disclosures | CorrectionCaseFields | analysis/correction_outcomes.py | +| correction_target_change_disclosures | CorrectionTargetChangeFields | analysis/correction_outcomes.py | +| reported_capacity_disclosures | ReportedCapacityFields | analysis/correction_outcomes.py | +| corrective_independence_disclosures | CorrectiveIndependenceFields | analysis/human_review.py | +| human_contribution_disclosures | HumanContributionFields | analysis/human_review.py | +| anomaly_context_disclosures | AnomalyContextFields | analysis/context.py | +| contestation_disclosures | ContestationFields | analysis/context.py | +| tail_stage_result_links | TailStageResultLinkFields | analysis/context.py | +| coverage_disclosures | CoverageFields | validation/semantics.py | +| documentary_basis_gap_disclosures | DocumentaryBasisGapFields | validation/semantics.py | + +These are explicit representations of the frozen meanings, never recursive +serialization or a permissive replacement for the private tree. Ancestry gaps keep +typed seeds, source gaps, selected frontier records, coverage qualifications and +ordered paths. Tail-stage links use a local Result ID as source and retain its +state/value kind; others use InputRef. A private stage-anchor tuple becomes null or +`{run_key, stage_key, stage}`. Private spreads become `native_record`; required +family qualification groups remain complete, not partly supplied. + +## Findings and witness components + +A Finding retains exactly reporting §18.1's members; there are no public +`native_records`, `result_refs` or root `witnesses` additions. Its `witness` is +`{input_refs, components}`. Components are the six existing finite owner forms: +`graph_witness`, `inventory_witness`, `comparison_witness`, `selected_members`, +`human_review_witness`, `correction_outcome_witness`. Component `type` selects the +closed shape. Graph components retain path/cycle/member/complete-trace/examined material, +frontiers, terminals and observation edges. Absence is named +`no_witness_in_examined_view`, not a positive empty path. + +GraphNode is `{ref, kind}`; its whole-entity reference has a null selector and a +collection matching the node kind, including Inquiry, Assertion and EvidenceReference +nodes as well as the twelve Record kinds. GraphEdge is `{source, target, source_ref, predicate, +eligible, reason_codes}`. Its identity is recoverable from the complete source +selector and target; no private tuple key or `operation_anchor` is serialized. +A non-null predicate identifies a whole Assertion source with null selector. A +canonical link has null predicate and a nonempty selector; its source reference +collection and identifier match the source node. The schema enforces the two +structural forms; the cross-field identity equality has a separate direct check. +Each projected component must retain its actual inquiry/claim/dimension/operation +meaning through the matching public Scope and explicit subject payload. A permitted +component shape alone does not establish a valid Finding home or completed +projection. Conditions cannot be invented to accommodate a private payload. +Source-native ordered arrays and causal path order remain ordered. This +schema does not deduplicate, shorten or select witnesses, or change reserved counts. + +Component `member_count` preserves the existing owner occurrence count: inventory +and selected-members use member length; comparison adds examined-assessment +length, with nullable assessment anchor not separately counted; human-review adds +examined-assessment and source-reference lengths; correction-outcome adds +source-reference length. Graph counts all eleven material arrays and a non-null +target. Human-review and correction-outcome source references preserve repeated +slots. These local counts differ from a private Finding wrapper count and from +the shared reservation ledger; neither is recomputed by deduplicating identifiers. + +### Existing owner material and public homes + +A private reservation is not itself an additional Finding condition. Existing +same-owner Findings retain their complete finite components. When pure member or +selection lists already have a complete public home, the projection keeps those +facts there and preserves ledger accounting separately: + +- Inventory member references and count remain in that same Result's Population + and count. Comparison members remain in Population; its assessment remains in + Scope and native disclosure, and its examined assessments remain in PC03's + exact selector inputs and corresponding basis sources. +- Presence selected-members remain in the corresponding transition Result's full + basis sources. Context selected-members remain in the combined basis sources + of anomaly and contestation disclosures, without mixing in tail-stage links. +- Graph path, complete-trace, eligibility and ordered search material remains in + Findings under the actual original scope. A different path Finding's scope + cannot silently replace the trace's targets or coverage. +- Correction outcomes with cases already have a case-handling Finding carrying + the complete owner component. With no cases, the owner source-slot list is only + the Inquiry root; owner members are the Result's full basis source list. + +Human-review material has an explicit selection projection into the existing +`corrective_independence_disclosures` field. Its selected members remain in that +scope's Population. After all original disclosure rows, including primary and +support rows, each actually +examined assessment contributes a native-only row in the original scan order, +with its actual AssertionRef as `source`. Each actual owner source-reference slot +then contributes a native-only row in slot order, with its complete InputRef +selector and selected original record fields. Repeated slots remain repeated +rows; no source-ID deduplication or primary-row replacement occurs. + +The scan row's `qualifications` is exactly this one-element array: + +```json +["Examined assessment only; this scan does not establish applicability or qualification for the selected review scope."] +``` + +The source-slot row's `qualifications` is exactly this one-element array: + +```json +["Actual owner selection/source reference slot; this record does not establish an applicable review or independent process."] +``` + +These fixed SIT-RP-0.1 markers distinguish the two original owner sequences; they +are not imported qualifications or new analysis. Selected Inquiry fields retain +`target_object_refs`; selected assessment fields retain their original scope, +subjects and dimension. The member count reconciles Population member count plus +scan-row count plus source-slot-row count. This projection neither adds Basis or +Check qualification nor creates a Finding, condition, reason or metric. It is +based on the actual selections in `analysis/human_review.py`, the ordered +reference/selected-field representation in reporting §16.5, finite disclosures in +§17 and the corrective-process meaning in Definitions §25.3. Shape availability +in W02 does not implement the later disclosure projection or ledger integration. + +## Current verification boundary + +P4-W02 tests cover closed root/nested declarations, normal variants before mutations, +state/family bindings, local references and safe typed contracts. The limited +test-side schema reader rejects unsupported validation keywords; it is not a general +Draft validator. Semantic reference, partition and value checks are separate. +Existing private tests keep their meaning. Public execution, disclosure selection, +ID allocation, budget integration, rendering and installed public receipts remain +assigned to later approved work units. diff --git a/schemas/report/sit-report-0.1.schema.json b/schemas/report/sit-report-0.1.schema.json new file mode 100644 index 0000000..57b4c6c --- /dev/null +++ b/schemas/report/sit-report-0.1.schema.json @@ -0,0 +1,10358 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "urn:sit:report:0.1:structure", + "title": "sit-report/0.1 structural contract", + "description": "Closed structural report contract for the SIT-RP-0.1 reference profile. Schema acceptance does not establish source authenticity, analytical correctness, reference closure or successful audit execution.", + "$comment": "P4-W02. Local references only. Reporting sections 12-19, architecture sections 17-18 and governance section 22 control. Cross-reference identities, semantic partitions, exact integer provenance, native-time syntax, disclosure selection, resource accounting and encoding parity remain independently checked. This repository contract is not read by the installed runtime.", + "$ref": "#/$defs/AuditReport", + "$defs": { + "Identifier": { + "type": "string", + "minLength": 1, + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$", + "not": { + "pattern": "[^A-Za-z0-9._:-]" + }, + "maxLength": 128 + }, + "TimeValue": { + "type": "object", + "properties": { + "state": { + "$ref": "#/$defs/enum_time_state" + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "precision": { + "anyOf": [ + { + "$ref": "#/$defs/enum_precision" + }, + { + "type": "null" + } + ] + }, + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "state", + "value", + "precision" + ], + "allOf": [ + { + "if": { + "required": [ + "state" + ], + "properties": { + "state": { + "const": "known" + } + } + }, + "then": { + "properties": { + "value": { + "type": "string" + }, + "precision": { + "$ref": "#/$defs/enum_precision" + } + } + }, + "else": { + "required": [ + "reason" + ], + "properties": { + "value": { + "type": "null" + }, + "precision": { + "type": "null" + }, + "reason": { + "type": "string", + "minLength": 1 + } + } + } + } + ] + }, + "TimeWindow": { + "type": "object", + "properties": { + "start": { + "$ref": "#/$defs/TimeValue" + }, + "end": { + "$ref": "#/$defs/TimeValue" + }, + "note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "start", + "end" + ] + }, + "Predecessor": { + "type": "object", + "properties": { + "bundle_id": { + "$ref": "#/$defs/Identifier" + }, + "snapshot_id": { + "$ref": "#/$defs/Identifier" + } + }, + "additionalProperties": false, + "required": [ + "bundle_id", + "snapshot_id" + ] + }, + "enum_time_state": { + "type": "string", + "enum": [ + "known", + "unknown", + "withheld", + "not_applicable" + ] + }, + "enum_precision": { + "type": "string", + "enum": [ + "date", + "instant" + ] + }, + "DiagnosticId": { + "type": "string", + "enum": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ] + }, + "ReasonCode": { + "type": "string", + "enum": [ + "no_seed_contributions", + "zero_denominator", + "missing_comparison_assessment", + "scope_unestablished", + "dimension_not_selected", + "unknown_endpoint", + "upstream_coverage_incomplete", + "unqualified_origin_boundary", + "baseline_or_scope_cut", + "declared_origin_only", + "multi_origin_unallocated", + "identity_unresolved", + "premise_disputed", + "lineage_cycle", + "support_uninspectable", + "documentary_basis_incomplete", + "self_supporting_assurance", + "time_applicability_unknown", + "temporal_inconsistency", + "roles_incomplete", + "externality_unestablished", + "cohort_anchor_missing", + "cohort_anchor_ambiguous", + "cohort_universe_unestablished", + "stage_classification_unresolved", + "transition_baseline_unestablished", + "route_not_recorded", + "authority_unestablished", + "authority_inapplicable", + "change_evidence_missing", + "before_after_unresolved", + "context_withheld_or_unavailable", + "no_applicable_subject", + "outside_v01", + "analysis_not_selected", + "resource_limit_reached", + "execution_failed", + "input_not_accepted", + "completion_interval_not_needed", + "comparison_scope_mismatch" + ] + }, + "ResultOrigin": { + "type": "string", + "enum": [ + "inventory", + "graph_derivation", + "attributed_record", + "qualification_check" + ] + }, + "ValueKind": { + "type": "string", + "enum": [ + "count", + "fraction", + "completion_interval", + "partition", + "incidence", + "record_disclosures", + "witness_collection" + ] + }, + "CheckState": { + "type": "string", + "enum": [ + "met", + "unmet", + "unknown", + "not_applicable" + ] + }, + "ReasonClassification": { + "type": "string", + "enum": [ + "evidence_gap", + "conflict", + "structural_inapplicability", + "release_boundary", + "execution" + ] + }, + "DependencyDimension": { + "type": "string", + "enum": [ + "acquisition", + "analytical_method", + "model_ancestry", + "evaluation_rubric", + "organizational_control" + ] + }, + "GraphView": { + "type": "string", + "enum": [ + "citation", + "material_transformation", + "claim_origin", + "model_evaluation", + "organizational", + "stance_contestation", + "correction_routing", + "correction_outcomes", + "pipeline_stages", + "assertion_assurance", + "succession" + ] + }, + "PopulationUnit": { + "type": "string", + "enum": [ + "artifact_record", + "locator", + "actor_record", + "evidence_item", + "origin_event", + "relation_assertion", + "witness_path", + "comparison_member", + "unresolved_reference", + "frontier_occurrence", + "evaluation", + "correction_case", + "correction_change_record", + "pipeline_record", + "pipeline_member", + "case_target", + "record", + "evidence_reference", + "family_label", + "handling_event" + ] + }, + "BasisKind": { + "type": "string", + "enum": [ + "declaration", + "documented_record", + "upstream_inference", + "protected_attestation", + "unspecified" + ] + }, + "Availability": { + "type": "string", + "enum": [ + "supplied", + "locator_only", + "withheld", + "unavailable" + ] + }, + "ScopeId": { + "type": "string", + "pattern": "^SIT-SCP-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-SCP-0+$" + } + ] + } + }, + "PopulationId": { + "type": "string", + "pattern": "^SIT-POP-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-POP-0+$" + } + ] + } + }, + "BasisId": { + "type": "string", + "pattern": "^SIT-BAS-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-BAS-0+$" + } + ] + } + }, + "CapabilityId": { + "type": "string", + "pattern": "^SIT-CAP-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-CAP-0+$" + } + ] + } + }, + "CheckId": { + "type": "string", + "pattern": "^SIT-CHK-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-CHK-0+$" + } + ] + } + }, + "ResultId": { + "type": "string", + "pattern": "^SIT-RES-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-RES-0+$" + } + ] + } + }, + "FindingId": { + "type": "string", + "pattern": "^SIT-FND-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-FND-0+$" + } + ] + } + }, + "ReasonId": { + "type": "string", + "pattern": "^SIT-RSN-[0-9]{6,}$", + "not": { + "anyOf": [ + { + "pattern": "[^A-Z0-9-]" + }, + { + "pattern": "^SIT-RSN-0+$" + } + ] + } + }, + "InputRef": { + "type": "object", + "properties": { + "collection": { + "type": "string", + "enum": [ + "inquiries", + "records", + "assertions", + "evidence_references" + ] + }, + "identifier": { + "$ref": "#/$defs/Identifier" + }, + "selector": { + "anyOf": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "collection", + "identifier", + "selector" + ] + }, + "InquiryRef": { + "allOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "properties": { + "collection": { + "const": "inquiries" + } + } + } + ] + }, + "RecordRef": { + "allOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "properties": { + "collection": { + "const": "records" + } + } + } + ] + }, + "AssertionRef": { + "allOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "properties": { + "collection": { + "const": "assertions" + } + } + } + ] + }, + "EvidenceRef": { + "allOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "properties": { + "collection": { + "const": "evidence_references" + } + } + } + ] + }, + "CaseTarget": { + "type": "object", + "properties": { + "case_ref": { + "$ref": "#/$defs/RecordRef" + }, + "before_ref": { + "anyOf": [ + { + "$ref": "#/$defs/RecordRef" + }, + { + "$ref": "#/$defs/AssertionRef" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "case_ref", + "before_ref" + ] + }, + "PopulationMember": { + "anyOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "$ref": "#/$defs/CaseTarget" + } + ] + }, + "Scope": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/ScopeId" + }, + "inquiry_ref": { + "allOf": [ + { + "$ref": "#/$defs/InquiryRef" + }, + { + "properties": { + "selector": { + "type": "null" + } + } + } + ] + }, + "claim_refs": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/$defs/RecordRef" + }, + { + "properties": { + "selector": { + "type": "null" + } + } + } + ] + }, + "uniqueItems": true + }, + "target_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "dependency_dimension": { + "anyOf": [ + { + "$ref": "#/$defs/DependencyDimension" + }, + { + "type": "null" + } + ] + }, + "graph_view": { + "anyOf": [ + { + "$ref": "#/$defs/GraphView" + }, + { + "type": "null" + } + ] + }, + "temporal_basis": { + "type": "string", + "enum": [ + "snapshot_structural", + "time_specific" + ] + }, + "requested_time": { + "anyOf": [ + { + "$ref": "#/$defs/TimeValue" + }, + { + "type": "null" + } + ] + }, + "coverage_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/AssertionRef" + }, + "uniqueItems": true + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "inquiry_ref", + "claim_refs", + "target_refs", + "dependency_dimension", + "graph_view", + "temporal_basis", + "requested_time", + "coverage_refs", + "qualifications" + ], + "allOf": [ + { + "if": { + "required": [ + "temporal_basis" + ], + "properties": { + "temporal_basis": { + "const": "time_specific" + } + } + }, + "then": { + "properties": { + "requested_time": { + "$ref": "#/$defs/TimeValue" + } + } + } + } + ] + }, + "Population": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/PopulationId" + }, + "scope_ref": { + "$ref": "#/$defs/ScopeId" + }, + "unit": { + "$ref": "#/$defs/PopulationUnit" + }, + "member_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/PopulationMember" + }, + "uniqueItems": true + }, + "selection_rule": { + "type": "string", + "minLength": 1 + }, + "coverage_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/AssertionRef" + }, + "uniqueItems": true + }, + "basis_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/BasisId" + }, + "uniqueItems": true + }, + "membership_state": { + "type": "string", + "enum": [ + "enumerated_for_scope", + "unestablished" + ] + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "scope_ref", + "unit", + "member_refs", + "selection_rule", + "coverage_refs", + "basis_refs", + "membership_state", + "qualifications" + ], + "allOf": [ + { + "if": { + "required": [ + "unit" + ], + "properties": { + "unit": { + "const": "case_target" + } + } + }, + "then": { + "properties": { + "member_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/CaseTarget" + }, + "uniqueItems": true + } + } + }, + "else": { + "properties": { + "member_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + } + } + } + } + ] + }, + "BasisScope": { + "type": "object", + "properties": { + "inquiry_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InquiryRef" + }, + "uniqueItems": true, + "minItems": 1 + }, + "claim_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/RecordRef" + }, + "uniqueItems": true + }, + "effective_window": { + "$ref": "#/$defs/TimeWindow" + } + }, + "additionalProperties": false, + "required": [ + "inquiry_refs", + "claim_refs", + "effective_window" + ] + }, + "BasisTime": { + "type": "object", + "properties": { + "asserted_at": { + "$ref": "#/$defs/TimeValue" + }, + "occurred_at": { + "$ref": "#/$defs/TimeValue" + }, + "observed_at": { + "$ref": "#/$defs/TimeValue" + }, + "published_at": { + "$ref": "#/$defs/TimeValue" + }, + "retrieved_at": { + "$ref": "#/$defs/TimeValue" + }, + "as_of": { + "$ref": "#/$defs/TimeValue" + }, + "valid_window": { + "$ref": "#/$defs/TimeWindow" + }, + "time_window": { + "$ref": "#/$defs/TimeWindow" + } + }, + "additionalProperties": false, + "required": [] + }, + "Lifecycle": { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "active", + "withdrawn", + "superseded" + ] + }, + "basis_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/EvidenceRef" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "state", + "basis_refs" + ] + }, + "BasisEntry": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/BasisId" + }, + "source": { + "$ref": "#/$defs/InputRef" + }, + "basis_kind": { + "anyOf": [ + { + "$ref": "#/$defs/BasisKind" + }, + { + "type": "null" + } + ] + }, + "asserter_ref": { + "anyOf": [ + { + "$ref": "#/$defs/RecordRef" + }, + { + "type": "null" + } + ] + }, + "attestor_ref": { + "anyOf": [ + { + "$ref": "#/$defs/RecordRef" + }, + { + "type": "null" + } + ] + }, + "method": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "support_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/EvidenceRef" + }, + "uniqueItems": true + }, + "availability": { + "anyOf": [ + { + "$ref": "#/$defs/Availability" + }, + { + "type": "null" + } + ] + }, + "scope": { + "anyOf": [ + { + "$ref": "#/$defs/BasisScope" + }, + { + "type": "null" + } + ] + }, + "time": { + "$ref": "#/$defs/BasisTime" + }, + "lifecycle": { + "anyOf": [ + { + "$ref": "#/$defs/Lifecycle" + }, + { + "type": "null" + } + ] + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "check_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/CheckId" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "id", + "source", + "basis_kind", + "asserter_ref", + "attestor_ref", + "method", + "support_refs", + "availability", + "scope", + "time", + "lifecycle", + "qualifications", + "check_refs" + ] + }, + "Capability": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/CapabilityId" + }, + "diagnostic_id": { + "$ref": "#/$defs/DiagnosticId" + }, + "inquiry_ref": { + "allOf": [ + { + "$ref": "#/$defs/InquiryRef" + }, + { + "properties": { + "selector": { + "type": "null" + } + } + } + ] + }, + "scope_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ScopeId" + }, + "uniqueItems": true + }, + "check_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/CheckId" + }, + "uniqueItems": true + }, + "result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "available_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "unavailable_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "not_applicable_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "not_evaluated_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "reason_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonId" + }, + "uniqueItems": true + }, + "scope_note": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "id", + "diagnostic_id", + "inquiry_ref", + "scope_refs", + "check_refs", + "result_refs", + "available_result_refs", + "unavailable_result_refs", + "not_applicable_result_refs", + "not_evaluated_result_refs", + "reason_refs", + "scope_note" + ] + }, + "PrerequisiteCheck": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/CheckId" + }, + "check_id": { + "type": "string", + "enum": [ + "PC01", + "PC02", + "PC03", + "PC04", + "PC05", + "PC06", + "PC07", + "PC08", + "PC09", + "PC10", + "PC11", + "PC12", + "PC13", + "PC14", + "PC15", + "PC16", + "PC17", + "PC18", + "PC19", + "PC20", + "PC21", + "PC22", + "PC23", + "PC24" + ] + }, + "scope_ref": { + "$ref": "#/$defs/ScopeId" + }, + "state": { + "$ref": "#/$defs/CheckState" + }, + "input_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "reason_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonId" + }, + "uniqueItems": true + }, + "note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "check_id", + "scope_ref", + "state", + "input_refs", + "reason_refs", + "note" + ] + }, + "ObservabilityDomain": { + "type": "object", + "properties": { + "level_index": { + "type": "integer", + "minimum": 0, + "maximum": 4 + }, + "label": { + "type": "string", + "enum": [ + "Artifact and contribution inventory", + "Declared provenance and process metadata", + "Origin-resolution and scoped process-assessment evidence", + "Evaluator, correction-route and authority evidence", + "Boundary-qualified external input, stage histories and documented correction outcomes" + ] + }, + "available_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "unavailable_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "not_evaluated_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "reason_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonId" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "level_index", + "label", + "available_result_refs", + "unavailable_result_refs", + "not_evaluated_result_refs", + "reason_refs" + ], + "allOf": [ + { + "if": { + "required": [ + "level_index" + ], + "properties": { + "level_index": { + "const": 0 + } + } + }, + "then": { + "properties": { + "label": { + "const": "Artifact and contribution inventory" + } + } + } + }, + { + "if": { + "required": [ + "level_index" + ], + "properties": { + "level_index": { + "const": 1 + } + } + }, + "then": { + "properties": { + "label": { + "const": "Declared provenance and process metadata" + } + } + } + }, + { + "if": { + "required": [ + "level_index" + ], + "properties": { + "level_index": { + "const": 2 + } + } + }, + "then": { + "properties": { + "label": { + "const": "Origin-resolution and scoped process-assessment evidence" + } + } + } + }, + { + "if": { + "required": [ + "level_index" + ], + "properties": { + "level_index": { + "const": 3 + } + } + }, + "then": { + "properties": { + "label": { + "const": "Evaluator, correction-route and authority evidence" + } + } + } + }, + { + "if": { + "required": [ + "level_index" + ], + "properties": { + "level_index": { + "const": 4 + } + } + }, + "then": { + "properties": { + "label": { + "const": "Boundary-qualified external input, stage histories and documented correction outcomes" + } + } + } + } + ] + }, + "Reason": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/ReasonId" + }, + "code": { + "$ref": "#/$defs/ReasonCode" + }, + "scope_ref": { + "anyOf": [ + { + "$ref": "#/$defs/ScopeId" + }, + { + "type": "null" + } + ] + }, + "affected_result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ResultId" + }, + "uniqueItems": true + }, + "input_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "detail": { + "type": "string", + "minLength": 1 + }, + "classification": { + "$ref": "#/$defs/ReasonClassification" + } + }, + "additionalProperties": false, + "required": [ + "id", + "code", + "scope_ref", + "affected_result_refs", + "input_refs", + "detail", + "classification" + ] + }, + "Fraction": { + "type": "object", + "properties": { + "numerator": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "numerator", + "denominator" + ] + }, + "PartitionCategory": { + "type": "object", + "properties": { + "label": { + "type": "string", + "minLength": 1 + }, + "member_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/PopulationMember" + }, + "uniqueItems": true + }, + "count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "label", + "member_refs", + "count" + ] + }, + "Partition": { + "type": "object", + "properties": { + "population_ref": { + "$ref": "#/$defs/PopulationId" + }, + "categories": { + "type": "array", + "items": { + "$ref": "#/$defs/PartitionCategory" + } + }, + "total": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "population_ref", + "categories", + "total" + ] + }, + "CompletionInterval": { + "type": "object", + "properties": { + "lower": { + "$ref": "#/$defs/Fraction" + }, + "upper": { + "$ref": "#/$defs/Fraction" + }, + "interval_kind": { + "type": "string", + "enum": [ + "finite_record_completion", + "finite_cohort_completion" + ] + }, + "population_ref": { + "$ref": "#/$defs/PopulationId" + }, + "partition": { + "$ref": "#/$defs/Partition" + } + }, + "additionalProperties": false, + "required": [ + "lower", + "upper", + "interval_kind", + "population_ref", + "partition" + ] + }, + "IncidenceMembership": { + "type": "object", + "properties": { + "member_ref": { + "$ref": "#/$defs/InputRef" + }, + "origin_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/RecordRef" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "member_ref", + "origin_refs" + ] + }, + "OriginIncidenceCount": { + "type": "object", + "properties": { + "origin_ref": { + "$ref": "#/$defs/RecordRef" + }, + "member_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "origin_ref", + "member_refs", + "count" + ] + }, + "Incidence": { + "type": "object", + "properties": { + "population_ref": { + "$ref": "#/$defs/PopulationId" + }, + "memberships": { + "type": "array", + "items": { + "$ref": "#/$defs/IncidenceMembership" + } + }, + "origin_counts": { + "type": "array", + "items": { + "$ref": "#/$defs/OriginIncidenceCount" + } + }, + "total": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "nonexclusive": { + "const": true + } + }, + "additionalProperties": false, + "required": [ + "population_ref", + "memberships", + "origin_counts", + "total", + "nonexclusive" + ] + }, + "WitnessCollection": { + "type": "object", + "properties": { + "witness_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/FindingId" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "witness_refs" + ] + }, + "RecordDisclosures": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "$ref": "#/$defs/Disclosure" + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + }, + "Result": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/ResultId" + }, + "diagnostic_id": { + "$ref": "#/$defs/DiagnosticId" + }, + "field_key": { + "type": "string", + "enum": [ + "nominal_seed_artifact_record_count", + "unresolved_seed_artifact_reference_count", + "seed_evidence_item_count", + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "reached_origin_record_count", + "documentary_origin_boundary_record_count", + "origin_boundary_disclosures", + "submitted_comparison_member_count", + "qualified_process_set_member_count", + "qualified_origin_set_member_count", + "independence_assessment_disclosures", + "per_seed_origin_memberships", + "origin_incidence_counts", + "seed_origin_dispositions", + "documentary_origin_resolution_fraction", + "single_origin_contribution_hhi", + "immediate_evidence_layer_dispositions", + "inherited_only_seed_fraction", + "inherited_only_completion_interval", + "unresolved_frontier_reference_count", + "unqualified_terminal_record_count", + "seed_items_with_unresolved_ancestry_count", + "ancestry_gap_disclosures", + "shared_recorded_ancestor_count", + "matching_family_label_count", + "evaluator_overlap_disclosures", + "evaluator_overlap_witnesses", + "externality_assessment_disclosures", + "externality_stage_links", + "pipeline_stage_disclosures", + "stage_member_partition", + "stage_occurrence_fraction", + "stage_occurrence_completion_interval", + "cohort_transition_disclosures", + "cohort_transition_fraction", + "cohort_transition_completion_interval", + "declared_correction_route_witnesses", + "applicable_authorized_route_witnesses", + "correction_route_disclosures", + "correction_case_record_count", + "handling_event_record_count", + "linked_change_event_record_count", + "documentary_linked_change_target_count", + "cases_with_documentary_linked_change_count", + "correction_case_disclosures", + "correction_target_change_disclosures", + "reported_capacity_disclosures", + "corrective_independence_disclosures", + "human_contribution_disclosures", + "anomaly_context_disclosures", + "contestation_disclosures", + "tail_stage_result_links", + "coverage_disclosures", + "documentary_basis_gap_disclosures", + "declared_basis_inventory", + "reference_availability_inventory" + ] + }, + "scope_ref": { + "$ref": "#/$defs/ScopeId" + }, + "population_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/PopulationId" + }, + "uniqueItems": true + }, + "execution_state": { + "type": "string", + "enum": [ + "completed", + "not_performed", + "interrupted", + "failed" + ] + }, + "result_state": { + "type": "string", + "enum": [ + "available", + "unavailable", + "not_applicable", + "not_evaluated" + ] + }, + "result_origin": { + "$ref": "#/$defs/ResultOrigin" + }, + "value_kind": { + "$ref": "#/$defs/ValueKind" + }, + "value": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + { + "$ref": "#/$defs/Fraction" + }, + { + "$ref": "#/$defs/CompletionInterval" + }, + { + "$ref": "#/$defs/Partition" + }, + { + "$ref": "#/$defs/Incidence" + }, + { + "$ref": "#/$defs/RecordDisclosures" + }, + { + "$ref": "#/$defs/WitnessCollection" + } + ] + }, + "check_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/CheckId" + }, + "uniqueItems": true + }, + "basis_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/BasisId" + }, + "uniqueItems": true + }, + "witness_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/FindingId" + }, + "uniqueItems": true + }, + "reason_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonId" + }, + "uniqueItems": true + }, + "interpretation_limit": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "id", + "diagnostic_id", + "field_key", + "scope_ref", + "population_refs", + "execution_state", + "result_state", + "result_origin", + "value_kind", + "value", + "check_refs", + "basis_refs", + "witness_refs", + "reason_refs", + "interpretation_limit" + ], + "allOf": [ + { + "anyOf": [ + { + "properties": { + "execution_state": { + "const": "completed" + }, + "result_state": { + "const": "available" + } + } + }, + { + "properties": { + "execution_state": { + "const": "completed" + }, + "result_state": { + "const": "unavailable" + } + } + }, + { + "properties": { + "execution_state": { + "const": "completed" + }, + "result_state": { + "const": "not_applicable" + } + } + }, + { + "properties": { + "execution_state": { + "const": "not_performed" + }, + "result_state": { + "const": "not_evaluated" + } + } + }, + { + "properties": { + "execution_state": { + "const": "interrupted" + }, + "result_state": { + "const": "not_evaluated" + } + } + }, + { + "properties": { + "execution_state": { + "const": "failed" + }, + "result_state": { + "const": "not_evaluated" + } + } + } + ] + }, + { + "if": { + "required": [ + "result_state" + ], + "properties": { + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "not": { + "type": "null" + } + } + } + }, + "else": { + "properties": { + "value": { + "type": "null" + }, + "reason_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonId" + }, + "uniqueItems": true, + "minItems": 1 + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "nominal_seed_artifact_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M001" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "unresolved_seed_artifact_reference_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M001" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "seed_evidence_item_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M001" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "claim_artifact_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M001" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "claim_unassigned_seed_artifact_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M001" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "reached_origin_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M002" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "documentary_origin_boundary_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M002" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "origin_boundary_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M002" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "submitted_comparison_member_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M003" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "qualified_process_set_member_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M003" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "qualified_origin_set_member_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M003" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "independence_assessment_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M003" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "per_seed_origin_memberships" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M004" + }, + "value_kind": { + "const": "incidence" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "origin_incidence_counts" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M004" + }, + "value_kind": { + "const": "incidence" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "seed_origin_dispositions" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M004" + }, + "value_kind": { + "const": "partition" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "documentary_origin_resolution_fraction" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M004" + }, + "value_kind": { + "const": "fraction" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "single_origin_contribution_hhi" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M005" + }, + "value_kind": { + "const": "fraction" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "immediate_evidence_layer_dispositions" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M006" + }, + "value_kind": { + "const": "partition" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "inherited_only_seed_fraction" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M006" + }, + "value_kind": { + "const": "fraction" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "inherited_only_completion_interval" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M006" + }, + "value_kind": { + "const": "completion_interval" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "unresolved_frontier_reference_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M007" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "unqualified_terminal_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M007" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "seed_items_with_unresolved_ancestry_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M007" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "ancestry_gap_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M007" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "shared_recorded_ancestor_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M008" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "matching_family_label_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M008" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "evaluator_overlap_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M008" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "evaluator_overlap_witnesses" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M008" + }, + "value_kind": { + "const": "witness_collection" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "externality_assessment_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M009" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "externality_stage_links" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M009" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "pipeline_stage_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "stage_member_partition" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "partition" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "stage_occurrence_fraction" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "fraction" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "stage_occurrence_completion_interval" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "completion_interval" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "cohort_transition_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "cohort_transition_fraction" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "fraction" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "cohort_transition_completion_interval" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M010" + }, + "value_kind": { + "const": "completion_interval" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "declared_correction_route_witnesses" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M011" + }, + "value_kind": { + "const": "witness_collection" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "applicable_authorized_route_witnesses" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M011" + }, + "value_kind": { + "const": "witness_collection" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "correction_route_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M011" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "correction_case_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "handling_event_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "linked_change_event_record_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "documentary_linked_change_target_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "cases_with_documentary_linked_change_count" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "count" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "correction_case_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "correction_target_change_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "reported_capacity_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M012" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "corrective_independence_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M013" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "human_contribution_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M013" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "anomaly_context_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M014" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "contestation_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M014" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "tail_stage_result_links" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M014" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "coverage_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M015" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "documentary_basis_gap_disclosures" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M015" + }, + "value_kind": { + "const": "record_disclosures" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "declared_basis_inventory" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M015" + }, + "value_kind": { + "const": "partition" + } + } + } + }, + { + "if": { + "required": [ + "field_key" + ], + "properties": { + "field_key": { + "const": "reference_availability_inventory" + } + } + }, + "then": { + "properties": { + "diagnostic_id": { + "const": "SIT-M015" + }, + "value_kind": { + "const": "partition" + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "count" + } + } + }, + "then": { + "properties": { + "value": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "fraction" + } + } + }, + "then": { + "properties": { + "value": { + "$ref": "#/$defs/Fraction" + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "completion_interval" + } + } + }, + "then": { + "properties": { + "value": { + "$ref": "#/$defs/CompletionInterval" + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "partition" + } + } + }, + "then": { + "properties": { + "value": { + "$ref": "#/$defs/Partition" + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "incidence" + } + } + }, + "then": { + "properties": { + "value": { + "$ref": "#/$defs/Incidence" + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "record_disclosures" + } + } + }, + "then": { + "properties": { + "value": { + "$ref": "#/$defs/RecordDisclosures" + } + } + } + }, + { + "if": { + "required": [ + "result_state", + "value_kind" + ], + "properties": { + "result_state": { + "const": "available" + }, + "value_kind": { + "const": "witness_collection" + } + } + }, + "then": { + "properties": { + "value": { + "$ref": "#/$defs/WitnessCollection" + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "origin_boundary_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/OriginBoundaryFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "coverage_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/CoverageFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "documentary_basis_gap_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/DocumentaryBasisGapFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "independence_assessment_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/IndependenceAssessmentFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "ancestry_gap_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/AncestryGapFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "evaluator_overlap_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/EvaluatorOverlapFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "externality_assessment_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/ExternalityAssessmentFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "pipeline_stage_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/PipelineStageFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "externality_stage_links" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/ExternalityStageFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "cohort_transition_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/CohortTransitionFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "correction_route_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/CorrectionRouteFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "correction_case_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/CorrectionCaseFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "correction_target_change_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/CorrectionTargetChangeFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "reported_capacity_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/ReportedCapacityFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "human_contribution_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/HumanContributionFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "corrective_independence_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/CorrectiveIndependenceFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "anomaly_context_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/AnomalyContextFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "contestation_disclosures" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "fields": { + "$ref": "#/$defs/ContestationFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + }, + { + "if": { + "required": [ + "field_key", + "result_state" + ], + "properties": { + "field_key": { + "const": "tail_stage_result_links" + }, + "result_state": { + "const": "available" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/ResultId" + }, + "fields": { + "$ref": "#/$defs/TailStageResultLinkFields" + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "records" + ] + } + } + } + } + ] + }, + "Diagnostic": { + "type": "object", + "properties": { + "code": { + "type": "string", + "enum": [ + "invalid_syntax", + "duplicate_key", + "unsupported_input_contract", + "duplicate_identifier", + "dangling_reference", + "type_or_enum_violation", + "missing_required_field", + "endpoint_or_claim_mismatch", + "invalid_time", + "input_constraint_violation", + "resource_limit_reached", + "execution_failed" + ] + }, + "location": { + "type": "null" + }, + "safe_message": { + "type": "string", + "minLength": 1 + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "code", + "location", + "safe_message", + "qualifications" + ] + }, + "RunTime": { + "const": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "not_recorded_by_SIT-RP-0.1" + } + }, + "Run": { + "type": "object", + "properties": { + "processing_state": { + "type": "string", + "enum": [ + "completed", + "interrupted", + "rejected", + "failed" + ] + }, + "tool_name": { + "const": "Source Integrity Toolkit" + }, + "tool_version": { + "const": "0.1.0.dev0" + }, + "input_contract_version": { + "const": "sit-bundle/0.1" + }, + "requested_diagnostic_ids": { + "type": "array", + "items": { + "$ref": "#/$defs/DiagnosticId" + }, + "uniqueItems": true, + "minItems": 15, + "maxItems": 15 + }, + "completed_diagnostic_ids": { + "type": "array", + "items": { + "$ref": "#/$defs/DiagnosticId" + }, + "uniqueItems": true + }, + "started_at": { + "$ref": "#/$defs/RunTime" + }, + "finished_at": { + "$ref": "#/$defs/RunTime" + }, + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/$defs/Diagnostic" + } + }, + "qualifications": { + "const": [ + "SIT-RP-0.1", + "Wall-clock start and finish times are not recorded by SIT-RP-0.1." + ] + } + }, + "additionalProperties": false, + "required": [ + "processing_state", + "tool_name", + "tool_version", + "input_contract_version", + "requested_diagnostic_ids", + "completed_diagnostic_ids", + "started_at", + "finished_at", + "diagnostics", + "qualifications" + ] + }, + "RawFileDigest": { + "type": "object", + "properties": { + "algorithm": { + "const": "sha256" + }, + "value": { + "type": "string", + "pattern": "^[0-9a-f]{64}$", + "not": { + "pattern": "[^0-9a-f]" + } + }, + "covered_material": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "algorithm", + "value", + "covered_material" + ] + }, + "InputIdentity": { + "type": "object", + "properties": { + "source_mode": { + "type": "string", + "enum": [ + "local_file", + "in_process" + ] + }, + "input_contract_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "bundle_id": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "snapshot_id": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "declared_predecessor": { + "anyOf": [ + { + "$ref": "#/$defs/Predecessor" + }, + { + "type": "null" + } + ] + }, + "raw_file_digest": { + "anyOf": [ + { + "$ref": "#/$defs/RawFileDigest" + }, + { + "type": "null" + } + ] + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source_mode", + "input_contract_version", + "bundle_id", + "snapshot_id", + "declared_predecessor", + "raw_file_digest", + "qualifications" + ], + "allOf": [ + { + "if": { + "required": [ + "source_mode" + ], + "properties": { + "source_mode": { + "const": "in_process" + } + } + }, + "then": { + "properties": { + "raw_file_digest": { + "type": "null" + } + } + } + } + ] + }, + "InputValidation": { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "accepted", + "rejected", + "not_completed" + ] + }, + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/$defs/Diagnostic" + } + } + }, + "additionalProperties": false, + "required": [ + "state", + "diagnostics" + ] + }, + "AuditReport": { + "type": "object", + "properties": { + "contract_version": { + "const": "sit-report/0.1" + }, + "report_kind": { + "type": "string", + "enum": [ + "audit_report", + "validation_diagnostics", + "processing_diagnostics" + ] + }, + "report_id": { + "const": "SIT-RPT-000001" + }, + "run": { + "$ref": "#/$defs/Run" + }, + "input_identity": { + "$ref": "#/$defs/InputIdentity" + }, + "input_validation": { + "$ref": "#/$defs/InputValidation" + }, + "scopes": { + "type": "array", + "items": { + "$ref": "#/$defs/Scope" + } + }, + "populations": { + "type": "array", + "items": { + "$ref": "#/$defs/Population" + } + }, + "basis_index": { + "type": "array", + "items": { + "$ref": "#/$defs/BasisEntry" + } + }, + "capabilities": { + "type": "array", + "items": { + "$ref": "#/$defs/Capability" + } + }, + "checks": { + "type": "array", + "items": { + "$ref": "#/$defs/PrerequisiteCheck" + } + }, + "observability_domains": { + "type": "array", + "items": { + "$ref": "#/$defs/ObservabilityDomain" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/$defs/Result" + } + }, + "findings": { + "type": "array", + "items": { + "$ref": "#/$defs/Finding" + } + }, + "reasons": { + "type": "array", + "items": { + "$ref": "#/$defs/Reason" + } + }, + "release_limits": { + "const": [ + "Offline analysis of caller-supplied records only.", + "Source identity, authenticity and external events are not independently authenticated.", + "No live monitoring or active content-level poisoning, injection or authorship detection was performed.", + "No universal truth, integrity, independence or safety score is produced.", + "No automatic intervention, source contact or changes to the audited system are performed.", + "Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence." + ] + } + }, + "additionalProperties": false, + "required": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "allOf": [ + { + "anyOf": [ + { + "properties": { + "report_kind": { + "const": "audit_report" + }, + "run": { + "properties": { + "processing_state": { + "const": "completed" + } + } + }, + "input_validation": { + "properties": { + "state": { + "const": "accepted" + } + } + } + } + }, + { + "properties": { + "report_kind": { + "const": "audit_report" + }, + "run": { + "properties": { + "processing_state": { + "const": "interrupted" + } + } + }, + "input_validation": { + "properties": { + "state": { + "const": "accepted" + } + } + } + } + }, + { + "properties": { + "report_kind": { + "const": "validation_diagnostics" + }, + "run": { + "properties": { + "processing_state": { + "const": "rejected" + } + } + }, + "input_validation": { + "properties": { + "state": { + "const": "rejected" + } + } + } + } + }, + { + "properties": { + "report_kind": { + "const": "processing_diagnostics" + }, + "run": { + "properties": { + "processing_state": { + "const": "interrupted" + } + } + }, + "input_validation": { + "properties": { + "state": { + "const": "not_completed" + } + } + } + } + }, + { + "properties": { + "report_kind": { + "const": "processing_diagnostics" + }, + "run": { + "properties": { + "processing_state": { + "const": "failed" + } + } + }, + "input_validation": { + "properties": { + "state": { + "const": "accepted" + } + } + } + } + }, + { + "properties": { + "report_kind": { + "const": "processing_diagnostics" + }, + "run": { + "properties": { + "processing_state": { + "const": "failed" + } + } + }, + "input_validation": { + "properties": { + "state": { + "const": "not_completed" + } + } + } + } + } + ] + }, + { + "if": { + "required": [ + "report_kind" + ], + "properties": { + "report_kind": { + "const": "audit_report" + } + } + }, + "then": { + "properties": { + "observability_domains": { + "minItems": 5, + "maxItems": 5 + } + } + }, + "else": { + "properties": { + "scopes": { + "maxItems": 0 + }, + "populations": { + "maxItems": 0 + }, + "basis_index": { + "maxItems": 0 + }, + "capabilities": { + "maxItems": 0 + }, + "checks": { + "maxItems": 0 + }, + "observability_domains": { + "maxItems": 0 + }, + "results": { + "maxItems": 0 + }, + "findings": { + "maxItems": 0 + } + } + } + } + ] + }, + "SelectedProvenance": { + "type": "object", + "properties": { + "attributed_to_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "basis_kind": { + "$ref": "#/$defs/enum_basis_kind" + }, + "evidence_ref_ids": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "method": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "attributed_to_ref", + "basis_kind", + "evidence_ref_ids", + "method", + "qualifications" + ] + }, + "SelectedGap": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "reason": { + "$ref": "#/$defs/enum_gap_reason" + }, + "detail": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "field", + "reason", + "detail" + ] + }, + "SelectedEvidenceReference": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/Identifier" + }, + "reference_kind": { + "$ref": "#/$defs/enum_reference_kind" + }, + "availability": { + "$ref": "#/$defs/enum_availability" + }, + "artifact_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "record_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "provided_by_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "attestor_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "scope_note": { + "type": "string", + "minLength": 1 + }, + "gaps": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedGap" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "reference_kind", + "availability", + "artifact_ref", + "record_ref", + "provided_by_ref", + "attestor_ref", + "scope_note" + ] + }, + "SelectedInquiry": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/Identifier" + }, + "target_claim_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "minItems": 1, + "uniqueItems": true + }, + "target_object_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "seed_artifact_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "seed_evidence_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "boundary": { + "$ref": "#/$defs/SelectedBoundary" + }, + "time_window": { + "$ref": "#/$defs/TimeWindow" + }, + "as_of": { + "$ref": "#/$defs/TimeValue" + }, + "dependency_dimensions": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_dimension" + } + }, + "coverage_assertion_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "provenance": { + "$ref": "#/$defs/SelectedProvenance" + }, + "gaps": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedGap" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "target_claim_refs", + "target_object_refs", + "seed_artifact_refs", + "seed_evidence_refs", + "boundary", + "time_window", + "as_of", + "dependency_dimensions", + "coverage_assertion_refs", + "provenance" + ] + }, + "SelectedBoundary": { + "type": "object", + "properties": { + "description": { + "type": "string", + "minLength": 1 + }, + "criterion": { + "type": "string", + "minLength": 1 + }, + "system_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "description", + "criterion", + "system_refs" + ] + }, + "SelectedRecord": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/Identifier" + }, + "kind": { + "$ref": "#/$defs/enum_record_kind" + }, + "data": { + "$ref": "#/$defs/SelectedRecordData" + }, + "provenance": { + "$ref": "#/$defs/SelectedProvenance" + }, + "gaps": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedGap" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "kind", + "data", + "provenance" + ], + "allOf": [ + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "claim" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedClaimData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "artifact" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedArtifactData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "actor" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedActorData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "evidence_item" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedEvidenceItemData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "origin_event" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedOriginEventData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "model" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedModelData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "evaluation" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedEvaluationData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "correction_channel" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedCorrectionChannelData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "correction_event" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedCorrectionEventData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "pipeline_record" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedPipelineRecordData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "anomaly" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedAnomalyData" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "unresolved_reference" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedUnresolvedReferenceData" + } + } + } + } + ] + }, + "SelectedClaimData": { + "type": "object", + "properties": { + "claim_key": { + "type": "string" + }, + "version_label": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "content_evidence_ref": { + "$ref": "#/$defs/Identifier" + }, + "context": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "claim_key", + "version_label", + "context" + ] + }, + "SelectedArtifactData": { + "type": "object", + "properties": { + "artifact_kind": { + "$ref": "#/$defs/enum_artifact_kind" + }, + "version_label": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "published_at": { + "$ref": "#/$defs/TimeValue" + }, + "retrieved_at": { + "$ref": "#/$defs/TimeValue" + }, + "content_evidence_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "artifact_kind", + "version_label", + "published_at", + "retrieved_at", + "content_evidence_refs" + ] + }, + "SelectedActorData": { + "type": "object", + "properties": { + "actor_kind": { + "$ref": "#/$defs/enum_actor_kind" + }, + "identity_disclosure": { + "$ref": "#/$defs/enum_identity_disclosure" + } + }, + "additionalProperties": false, + "required": [ + "actor_kind", + "identity_disclosure" + ] + }, + "SelectedEvidenceItemData": { + "type": "object", + "properties": { + "claim_ref": { + "$ref": "#/$defs/Identifier" + }, + "artifact_ref": { + "$ref": "#/$defs/Identifier" + }, + "epistemic_type": { + "$ref": "#/$defs/enum_epistemic_type" + }, + "description": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "claim_ref", + "artifact_ref", + "epistemic_type", + "description" + ] + }, + "SelectedOriginEventData": { + "type": "object", + "properties": { + "event_kind": { + "$ref": "#/$defs/enum_origin_event_kind" + }, + "event_key": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "performed_by_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "method_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "occurred_at": { + "$ref": "#/$defs/TimeValue" + }, + "description": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "event_kind", + "event_key", + "performed_by_refs", + "method_ref", + "occurred_at", + "description" + ] + }, + "SelectedModelData": { + "type": "object", + "properties": { + "model_key": { + "type": "string" + }, + "version_label": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "family_label": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "provider_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "model_key", + "version_label", + "family_label", + "provider_ref" + ] + }, + "SelectedEvaluationData": { + "type": "object", + "properties": { + "evaluation_kind": { + "$ref": "#/$defs/enum_evaluation_kind" + }, + "target_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "minItems": 1, + "uniqueItems": true + }, + "role_bindings": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedRoleBinding" + } + }, + "result_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "occurred_at": { + "$ref": "#/$defs/TimeValue" + }, + "review_contribution": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "evaluation_kind", + "target_refs", + "role_bindings", + "result_refs", + "occurred_at", + "review_contribution" + ] + }, + "SelectedRoleBinding": { + "type": "object", + "properties": { + "role": { + "$ref": "#/$defs/enum_role" + }, + "object_ref": { + "$ref": "#/$defs/Identifier" + }, + "evidence_ref_ids": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "role", + "object_ref", + "evidence_ref_ids", + "qualifications" + ] + }, + "SelectedCorrectionChannelData": { + "type": "object", + "properties": { + "owner_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "target_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "declared_action_types": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_action" + } + }, + "valid_window": { + "$ref": "#/$defs/TimeWindow" + } + }, + "additionalProperties": false, + "required": [ + "owner_refs", + "target_refs", + "declared_action_types", + "valid_window" + ] + }, + "SelectedCorrectionEventData": { + "type": "object", + "properties": { + "event_kind": { + "$ref": "#/$defs/enum_correction_event_kind" + }, + "case_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "channel_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "target_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "minItems": 1, + "uniqueItems": true + }, + "occurred_at": { + "$ref": "#/$defs/TimeValue" + }, + "details": { + "$ref": "#/$defs/SelectedCorrectionDetails" + } + }, + "additionalProperties": false, + "required": [ + "event_kind", + "case_ref", + "channel_ref", + "target_refs", + "occurred_at", + "details" + ], + "allOf": [ + { + "if": { + "required": [ + "event_kind" + ], + "properties": { + "event_kind": { + "const": "submission" + } + } + }, + "then": { + "properties": { + "case_ref": { + "type": "null" + }, + "details": { + "$ref": "#/$defs/SelectedSubmissionDetails" + } + } + } + }, + { + "if": { + "required": [ + "event_kind" + ], + "properties": { + "event_kind": { + "const": "handling" + } + } + }, + "then": { + "properties": { + "case_ref": { + "$ref": "#/$defs/Identifier" + }, + "details": { + "$ref": "#/$defs/SelectedHandlingDetails" + } + } + } + }, + { + "if": { + "required": [ + "event_kind" + ], + "properties": { + "event_kind": { + "const": "change" + } + } + }, + "then": { + "properties": { + "case_ref": { + "$ref": "#/$defs/Identifier" + }, + "details": { + "$ref": "#/$defs/SelectedChangeDetails" + } + } + } + } + ] + }, + "SelectedSubmissionDetails": { + "type": "object", + "properties": { + "submission_kind": { + "$ref": "#/$defs/enum_submission_kind" + }, + "summary": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "submission_kind", + "summary" + ] + }, + "SelectedHandlingDetails": { + "type": "object", + "properties": { + "outcome": { + "$ref": "#/$defs/enum_outcome" + }, + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "outcome", + "reason" + ] + }, + "SelectedChangeDetails": { + "type": "object", + "properties": { + "action_type": { + "$ref": "#/$defs/enum_action" + }, + "before_ref": { + "$ref": "#/$defs/Identifier" + }, + "after_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "after_absence_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "linkage_description": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "action_type", + "before_ref", + "after_ref", + "after_absence_reason", + "linkage_description" + ], + "allOf": [ + { + "if": { + "required": [ + "after_ref" + ], + "properties": { + "after_ref": { + "type": "null" + } + } + }, + "then": { + "properties": { + "after_absence_reason": { + "type": "string", + "minLength": 1 + } + } + }, + "else": { + "properties": { + "after_absence_reason": { + "type": "null" + } + } + } + } + ] + }, + "SelectedPipelineRecordData": { + "type": "object", + "properties": { + "subject_ref": { + "$ref": "#/$defs/Identifier" + }, + "run_key": { + "type": "string", + "minLength": 1 + }, + "stage_key": { + "type": "string", + "minLength": 1 + }, + "stage": { + "$ref": "#/$defs/enum_stage" + }, + "state": { + "$ref": "#/$defs/enum_pipeline_state" + }, + "output_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "observed_at": { + "$ref": "#/$defs/TimeValue" + }, + "linkage_kind": { + "$ref": "#/$defs/enum_linkage_kind" + }, + "detail": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "subject_ref", + "run_key", + "stage_key", + "stage", + "state", + "output_refs", + "observed_at", + "linkage_kind", + "detail" + ] + }, + "SelectedAnomalyData": { + "type": "object", + "properties": { + "inquiry_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "minItems": 1, + "uniqueItems": true + }, + "claim_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "original_context": { + "anyOf": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "null" + } + ] + }, + "context_evidence_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "classification_state": { + "$ref": "#/$defs/enum_classification_state" + }, + "caller_label": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "comparison_note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "inquiry_refs", + "claim_ref", + "original_context", + "context_evidence_ref", + "classification_state", + "caller_label", + "comparison_note" + ], + "allOf": [ + { + "if": { + "required": [ + "classification_state" + ], + "properties": { + "classification_state": { + "const": "unclassified" + } + } + }, + "then": { + "properties": { + "caller_label": { + "type": "null" + } + } + }, + "else": { + "properties": { + "caller_label": { + "type": "string" + } + } + } + }, + { + "if": { + "required": [ + "original_context" + ], + "properties": { + "original_context": { + "type": "null" + } + } + }, + "then": { + "properties": { + "context_evidence_ref": { + "$ref": "#/$defs/Identifier" + } + } + } + } + ] + }, + "SelectedUnresolvedReferenceData": { + "type": "object", + "properties": { + "expected_kinds": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_resolved_kind" + }, + "minItems": 1 + }, + "reason": { + "$ref": "#/$defs/enum_endpoint_gap_reason" + }, + "description": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "expected_kinds", + "reason", + "description" + ] + }, + "SelectedAssertion": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/Identifier" + }, + "assertion_kind": { + "$ref": "#/$defs/enum_assertion_kind" + }, + "scope": { + "$ref": "#/$defs/SelectedAssertionScope" + }, + "provenance": { + "$ref": "#/$defs/SelectedProvenance" + }, + "asserted_at": { + "$ref": "#/$defs/TimeValue" + }, + "lifecycle_state": { + "$ref": "#/$defs/enum_lifecycle_state" + }, + "lifecycle_basis_ref_ids": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "data": { + "$ref": "#/$defs/SelectedAssertionData" + }, + "gaps": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedGap" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "assertion_kind", + "scope", + "provenance", + "asserted_at", + "lifecycle_state", + "lifecycle_basis_ref_ids", + "data" + ], + "allOf": [ + { + "if": { + "required": [ + "assertion_kind" + ], + "properties": { + "assertion_kind": { + "const": "relation" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedRelationData" + } + } + } + }, + { + "if": { + "required": [ + "assertion_kind" + ], + "properties": { + "assertion_kind": { + "const": "assessment" + } + } + }, + "then": { + "properties": { + "data": { + "$ref": "#/$defs/SelectedAssessmentData" + } + } + } + } + ] + }, + "SelectedAssertionScope": { + "type": "object", + "properties": { + "inquiry_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "minItems": 1, + "uniqueItems": true + }, + "claim_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "effective_window": { + "$ref": "#/$defs/TimeWindow" + } + }, + "additionalProperties": false, + "required": [ + "inquiry_refs", + "claim_refs", + "effective_window" + ] + }, + "SelectedRelationData": { + "type": "object", + "properties": { + "predicate": { + "$ref": "#/$defs/enum_predicate" + }, + "from_ref": { + "$ref": "#/$defs/Identifier" + }, + "to_ref": { + "$ref": "#/$defs/Identifier" + }, + "polarity": { + "$ref": "#/$defs/enum_polarity" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + }, + "details": { + "$ref": "#/$defs/SelectedRelationDetails" + } + }, + "additionalProperties": false, + "required": [ + "predicate", + "from_ref", + "to_ref", + "polarity", + "dimension", + "details" + ], + "allOf": [ + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "supports" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedStanceDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "contradicts" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedStanceDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "describes" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedStanceDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "qualifies" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedStanceDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "contextualizes" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedStanceDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "corroborates" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedStanceDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "cites" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedCitationDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "derived_from" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "copies" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "syndicated_from" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "summarizes" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "translates" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "quotes" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + "dimension": { + "anyOf": [ + { + "$ref": "#/$defs/enum_dimension" + }, + { + "type": "null" + } + ] + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "originates_from" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedOriginDetails" + }, + "dimension": { + "$ref": "#/$defs/enum_dimension" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "depends_on" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedOriginDetails" + }, + "dimension": { + "$ref": "#/$defs/enum_dimension" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "generated_by" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedAgentDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "published_by" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedAgentDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "owned_by" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedAgentDetails" + }, + "dimension": { + "const": "organizational_control" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "model_derived_from" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedModelDetails" + }, + "dimension": { + "const": "model_ancestry" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "trained_on" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedModelDetails" + }, + "dimension": { + "const": "model_ancestry" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "retrieved_from" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedRetrievalDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "propagates_to" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedRouteDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "supersedes" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedSupersessionDetails" + }, + "dimension": { + "type": "null" + } + } + } + }, + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "const": "same_identity_as" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedIdentityDetails" + }, + "dimension": { + "type": "null" + } + } + } + } + ] + }, + "SelectedStanceDetails": { + "type": "object", + "properties": { + "note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedCitationDetails": { + "type": "object", + "properties": { + "note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedTransformationDetails": { + "type": "object", + "properties": { + "transformer_ref": { + "$ref": "#/$defs/Identifier" + }, + "method_ref": { + "$ref": "#/$defs/Identifier" + }, + "occurred_at": { + "$ref": "#/$defs/TimeValue" + }, + "portion_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedOriginDetails": { + "type": "object", + "properties": { + "dependency_note": { + "type": "string" + }, + "portion_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedAgentDetails": { + "type": "object", + "properties": { + "role_note": { + "type": "string" + }, + "valid_window": { + "$ref": "#/$defs/TimeWindow" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedModelDetails": { + "type": "object", + "properties": { + "stage_note": { + "type": "string" + }, + "subset_descriptor": { + "type": "string" + }, + "occurred_at": { + "$ref": "#/$defs/TimeValue" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedRetrievalDetails": { + "type": "object", + "properties": { + "retrieval_time": { + "$ref": "#/$defs/TimeValue" + }, + "portion_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [] + }, + "SelectedRouteDetails": { + "type": "object", + "properties": { + "action_type": { + "$ref": "#/$defs/enum_action" + }, + "valid_window": { + "$ref": "#/$defs/TimeWindow" + }, + "route_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action_type", + "valid_window" + ] + }, + "SelectedSupersessionDetails": { + "type": "object", + "properties": { + "reason": { + "type": "string" + }, + "effective_at": { + "$ref": "#/$defs/TimeValue" + } + }, + "additionalProperties": false, + "required": [ + "reason" + ] + }, + "SelectedIdentityDetails": { + "type": "object", + "properties": { + "identity_level": { + "$ref": "#/$defs/enum_identity_level" + }, + "identity_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "identity_level" + ] + }, + "SelectedAssessmentData": { + "type": "object", + "properties": { + "assessment_kind": { + "$ref": "#/$defs/enum_assessment_kind" + }, + "subject_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "details": { + "$ref": "#/$defs/SelectedAssessmentDetails" + } + }, + "additionalProperties": false, + "required": [ + "assessment_kind", + "subject_refs", + "details" + ], + "allOf": [ + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "origin_boundary" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedOriginBoundaryDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "independence" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedIndependenceDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "coverage" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedCoverageDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "classification" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedClassificationDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "verification" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedVerificationDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "externality" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedExternalityDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "authority" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedAuthorityDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "capacity" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedCapacityDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "conflict" + } + } + }, + "then": { + "properties": { + "details": { + "$ref": "#/$defs/SelectedConflictDetails" + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "origin_boundary" + } + } + }, + "then": { + "properties": { + "subject_refs": { + "minItems": 1, + "maxItems": 1 + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "authority" + } + } + }, + "then": { + "properties": { + "subject_refs": { + "minItems": 1, + "maxItems": 1 + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "independence" + } + } + }, + "then": { + "properties": { + "subject_refs": { + "minItems": 2 + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "conflict" + } + } + }, + "then": { + "properties": { + "subject_refs": { + "minItems": 2 + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind" + ], + "properties": { + "assessment_kind": { + "const": "coverage" + } + } + }, + "then": { + "properties": { + "subject_refs": { + "minItems": 1 + } + } + } + }, + { + "if": { + "required": [ + "assessment_kind", + "details" + ], + "properties": { + "assessment_kind": { + "const": "independence" + }, + "details": { + "required": [ + "comparison_form" + ], + "properties": { + "comparison_form": { + "const": "pairwise" + } + } + } + } + }, + "then": { + "properties": { + "subject_refs": { + "minItems": 2, + "maxItems": 2 + } + } + } + } + ] + }, + "SelectedOriginBoundaryDetails": { + "type": "object", + "properties": { + "dimension": { + "$ref": "#/$defs/enum_dimension" + }, + "boundary_role": { + "$ref": "#/$defs/enum_boundary_role" + }, + "coverage_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "termination_reason": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "dimension", + "boundary_role", + "coverage_ref", + "termination_reason" + ] + }, + "SelectedIndependenceDetails": { + "type": "object", + "properties": { + "comparison_form": { + "$ref": "#/$defs/enum_comparison_form" + }, + "dimension": { + "$ref": "#/$defs/enum_dimension" + }, + "conclusion": { + "$ref": "#/$defs/enum_independence_conclusion" + }, + "examined_dependency_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "unexamined_dimensions": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_dimension" + } + }, + "coverage_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "scope_note": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "comparison_form", + "dimension", + "conclusion", + "examined_dependency_refs", + "unexamined_dimensions", + "coverage_ref", + "scope_note" + ] + }, + "SelectedCoverageDetails": { + "type": "object", + "properties": { + "coverage_kind": { + "$ref": "#/$defs/enum_coverage_kind" + }, + "state": { + "$ref": "#/$defs/enum_coverage_state" + }, + "relation_types": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_predicate" + } + }, + "dimensions": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_dimension" + } + }, + "member_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "omitted_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "universe_enumerated": { + "type": "boolean" + }, + "scope_note": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "coverage_kind", + "state", + "relation_types", + "dimensions", + "member_refs", + "omitted_refs", + "universe_enumerated", + "scope_note" + ] + }, + "SelectedClassificationDetails": { + "type": "object", + "properties": { + "axis": { + "$ref": "#/$defs/enum_axis" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "verification_assessment_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "scope_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "axis", + "labels", + "verification_assessment_refs", + "scope_note" + ], + "allOf": [ + { + "if": { + "required": [ + "axis" + ], + "properties": { + "axis": { + "const": "sil_data_role" + } + } + }, + "then": { + "properties": { + "labels": { + "items": { + "$ref": "#/$defs/enum_sil_data_role" + } + } + } + } + }, + { + "if": { + "required": [ + "axis" + ], + "properties": { + "axis": { + "const": "hdl_structure_role" + } + } + }, + "then": { + "properties": { + "labels": { + "items": { + "$ref": "#/$defs/enum_hdl_structure_role" + } + } + } + } + }, + { + "if": { + "required": [ + "axis" + ], + "properties": { + "axis": { + "const": "sil_governance_layer" + } + } + }, + "then": { + "properties": { + "labels": { + "items": { + "$ref": "#/$defs/enum_sil_governance_layer" + } + } + } + } + } + ] + }, + "SelectedVerificationDetails": { + "type": "object", + "properties": { + "verification_scope": { + "$ref": "#/$defs/enum_verification_scope" + }, + "evaluation_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "reported_outcome": { + "$ref": "#/$defs/enum_reported_outcome" + }, + "valid_window": { + "$ref": "#/$defs/TimeWindow" + }, + "scope_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "verification_scope", + "evaluation_ref", + "reported_outcome", + "valid_window", + "scope_note" + ] + }, + "SelectedExternalityDetails": { + "type": "object", + "properties": { + "boundary_inquiry_ref": { + "$ref": "#/$defs/Identifier" + }, + "conclusion": { + "$ref": "#/$defs/enum_externality_conclusion" + }, + "grounding_basis": { + "anyOf": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "null" + } + ] + }, + "relevant_time": { + "$ref": "#/$defs/TimeValue" + } + }, + "additionalProperties": false, + "required": [ + "boundary_inquiry_ref", + "conclusion", + "grounding_basis", + "relevant_time" + ] + }, + "SelectedAuthorityDetails": { + "type": "object", + "properties": { + "target_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/Identifier" + }, + "uniqueItems": true + }, + "action_types": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_action" + } + }, + "valid_window": { + "$ref": "#/$defs/TimeWindow" + }, + "authorized_by_ref": { + "$ref": "#/$defs/Identifier" + }, + "grant_state": { + "$ref": "#/$defs/enum_grant_state" + }, + "authority_basis": { + "anyOf": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "null" + } + ] + }, + "coverage_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "target_refs", + "action_types", + "valid_window", + "authorized_by_ref", + "grant_state", + "authority_basis", + "coverage_ref" + ] + }, + "SelectedCapacityDetails": { + "type": "object", + "properties": { + "reported_capacity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "unit": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "horizon": { + "$ref": "#/$defs/TimeWindow" + }, + "reported_load": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "scope_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "reported_capacity", + "unit", + "horizon", + "reported_load", + "scope_note" + ] + }, + "SelectedConflictDetails": { + "type": "object", + "properties": { + "conflict_kind": { + "$ref": "#/$defs/enum_conflict_kind" + }, + "resolution_state": { + "$ref": "#/$defs/enum_resolution_state" + }, + "resolution_evaluation_ref": { + "anyOf": [ + { + "$ref": "#/$defs/Identifier" + }, + { + "type": "null" + } + ] + }, + "scope_note": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "conflict_kind", + "resolution_state", + "resolution_evaluation_ref", + "scope_note" + ], + "allOf": [ + { + "if": { + "required": [ + "resolution_state" + ], + "properties": { + "resolution_state": { + "const": "unresolved" + } + } + }, + "then": { + "properties": { + "resolution_evaluation_ref": { + "type": "null" + } + } + }, + "else": { + "properties": { + "resolution_evaluation_ref": { + "$ref": "#/$defs/Identifier" + } + } + } + } + ] + }, + "SelectedRecordData": { + "anyOf": [ + { + "$ref": "#/$defs/SelectedClaimData" + }, + { + "$ref": "#/$defs/SelectedArtifactData" + }, + { + "$ref": "#/$defs/SelectedActorData" + }, + { + "$ref": "#/$defs/SelectedEvidenceItemData" + }, + { + "$ref": "#/$defs/SelectedOriginEventData" + }, + { + "$ref": "#/$defs/SelectedModelData" + }, + { + "$ref": "#/$defs/SelectedEvaluationData" + }, + { + "$ref": "#/$defs/SelectedCorrectionChannelData" + }, + { + "$ref": "#/$defs/SelectedCorrectionEventData" + }, + { + "$ref": "#/$defs/SelectedPipelineRecordData" + }, + { + "$ref": "#/$defs/SelectedAnomalyData" + }, + { + "$ref": "#/$defs/SelectedUnresolvedReferenceData" + } + ] + }, + "SelectedAssertionData": { + "anyOf": [ + { + "$ref": "#/$defs/SelectedRelationData" + }, + { + "$ref": "#/$defs/SelectedAssessmentData" + } + ] + }, + "SelectedCorrectionDetails": { + "anyOf": [ + { + "$ref": "#/$defs/SelectedSubmissionDetails" + }, + { + "$ref": "#/$defs/SelectedHandlingDetails" + }, + { + "$ref": "#/$defs/SelectedChangeDetails" + } + ] + }, + "SelectedRelationDetails": { + "anyOf": [ + { + "$ref": "#/$defs/SelectedStanceDetails" + }, + { + "$ref": "#/$defs/SelectedCitationDetails" + }, + { + "$ref": "#/$defs/SelectedTransformationDetails" + }, + { + "$ref": "#/$defs/SelectedOriginDetails" + }, + { + "$ref": "#/$defs/SelectedAgentDetails" + }, + { + "$ref": "#/$defs/SelectedModelDetails" + }, + { + "$ref": "#/$defs/SelectedRetrievalDetails" + }, + { + "$ref": "#/$defs/SelectedRouteDetails" + }, + { + "$ref": "#/$defs/SelectedSupersessionDetails" + }, + { + "$ref": "#/$defs/SelectedIdentityDetails" + } + ] + }, + "SelectedAssessmentDetails": { + "anyOf": [ + { + "$ref": "#/$defs/SelectedOriginBoundaryDetails" + }, + { + "$ref": "#/$defs/SelectedIndependenceDetails" + }, + { + "$ref": "#/$defs/SelectedCoverageDetails" + }, + { + "$ref": "#/$defs/SelectedClassificationDetails" + }, + { + "$ref": "#/$defs/SelectedVerificationDetails" + }, + { + "$ref": "#/$defs/SelectedExternalityDetails" + }, + { + "$ref": "#/$defs/SelectedAuthorityDetails" + }, + { + "$ref": "#/$defs/SelectedCapacityDetails" + }, + { + "$ref": "#/$defs/SelectedConflictDetails" + } + ] + }, + "enum_record_kind": { + "type": "string", + "enum": [ + "claim", + "artifact", + "actor", + "evidence_item", + "origin_event", + "model", + "evaluation", + "correction_channel", + "correction_event", + "pipeline_record", + "anomaly", + "unresolved_reference" + ] + }, + "enum_predicate": { + "type": "string", + "enum": [ + "supports", + "contradicts", + "describes", + "qualifies", + "contextualizes", + "corroborates", + "cites", + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on", + "generated_by", + "published_by", + "model_derived_from", + "trained_on", + "owned_by", + "retrieved_from", + "propagates_to", + "supersedes", + "same_identity_as" + ] + }, + "enum_assessment_kind": { + "type": "string", + "enum": [ + "origin_boundary", + "independence", + "coverage", + "classification", + "verification", + "externality", + "authority", + "capacity", + "conflict" + ] + }, + "enum_dimension": { + "type": "string", + "enum": [ + "acquisition", + "analytical_method", + "model_ancestry", + "evaluation_rubric", + "organizational_control" + ] + }, + "enum_basis_kind": { + "type": "string", + "enum": [ + "declaration", + "documented_record", + "upstream_inference", + "protected_attestation", + "unspecified" + ] + }, + "enum_gap_reason": { + "type": "string", + "enum": [ + "not_recorded", + "not_examined", + "withheld", + "unavailable", + "identity_ambiguous", + "outside_snapshot", + "not_applicable", + "other" + ] + }, + "enum_reference_kind": { + "type": "string", + "enum": [ + "supplied_excerpt", + "record_pointer", + "local_locator", + "external_locator", + "protected_attestation" + ] + }, + "enum_availability": { + "type": "string", + "enum": [ + "supplied", + "locator_only", + "withheld", + "unavailable" + ] + }, + "enum_artifact_kind": { + "type": "string", + "enum": [ + "document", + "dataset", + "answer", + "reference_answer", + "rubric", + "benchmark", + "judgment", + "observation_record", + "execution_result", + "other", + "unknown" + ] + }, + "enum_actor_kind": { + "type": "string", + "enum": [ + "human", + "organization", + "software_agent", + "unknown" + ] + }, + "enum_identity_disclosure": { + "type": "string", + "enum": [ + "named", + "pseudonymous", + "protected", + "unknown" + ] + }, + "enum_epistemic_type": { + "type": "string", + "enum": [ + "measurement", + "testimony", + "documentary_statement", + "estimate", + "formal_derivation", + "execution_result", + "analytical_inference", + "evaluative_judgment", + "allegation", + "fictional_example", + "unclassified" + ] + }, + "enum_origin_event_kind": { + "type": "string", + "enum": [ + "observation", + "data_collection", + "testimony", + "documentary_issuance", + "analysis", + "formal_check", + "execution", + "other", + "unknown" + ] + }, + "enum_evaluation_kind": { + "type": "string", + "enum": [ + "judgment", + "formal_check", + "execution", + "empirical_review", + "human_review", + "identity_process_review", + "other", + "unknown" + ] + }, + "enum_role": { + "type": "string", + "enum": [ + "candidate", + "generator", + "judge", + "executor", + "human_reviewer", + "reference_answer", + "rubric", + "validation_environment", + "method_input" + ] + }, + "enum_action": { + "type": "string", + "enum": [ + "review", + "amend", + "annotate", + "retract", + "rerun", + "rollback", + "replace_evaluator", + "restrict_scope", + "withdraw", + "metadata_correction", + "other" + ] + }, + "enum_correction_event_kind": { + "type": "string", + "enum": [ + "submission", + "handling", + "change" + ] + }, + "enum_submission_kind": { + "type": "string", + "enum": [ + "objection", + "proposed_correction", + "appeal" + ] + }, + "enum_outcome": { + "type": "string", + "enum": [ + "acknowledged", + "under_review", + "accepted", + "rejected", + "withdrawn", + "failed", + "unknown" + ] + }, + "enum_stage": { + "type": "string", + "enum": [ + "admission", + "preservation", + "selection", + "influence" + ] + }, + "enum_pipeline_state": { + "type": "string", + "enum": [ + "occurred", + "did_not_occur", + "unknown" + ] + }, + "enum_linkage_kind": { + "type": "string", + "enum": [ + "use_record", + "comparison_record", + "experimental_attribution", + "declaration", + "unspecified" + ] + }, + "enum_classification_state": { + "type": "string", + "enum": [ + "unclassified", + "caller_classified" + ] + }, + "enum_assertion_kind": { + "type": "string", + "enum": [ + "relation", + "assessment" + ] + }, + "enum_lifecycle_state": { + "type": "string", + "enum": [ + "active", + "withdrawn", + "superseded" + ] + }, + "enum_polarity": { + "type": "string", + "enum": [ + "affirmed", + "denied" + ] + }, + "enum_identity_level": { + "type": "string", + "enum": [ + "artifact_version", + "actor", + "origin_event", + "model_version" + ] + }, + "enum_boundary_role": { + "type": "string", + "enum": [ + "documented_origin", + "declared_origin", + "reference_baseline", + "scope_cut", + "unresolved" + ] + }, + "enum_comparison_form": { + "type": "string", + "enum": [ + "pairwise", + "setwise" + ] + }, + "enum_independence_conclusion": { + "type": "string", + "enum": [ + "independent_process", + "shared_dependency", + "partial_overlap", + "unknown", + "not_assessed", + "not_applicable" + ] + }, + "enum_coverage_kind": { + "type": "string", + "enum": [ + "upstream_history", + "citation_list", + "identity", + "model_history", + "correction_routes", + "pipeline_universe", + "other" + ] + }, + "enum_coverage_state": { + "type": "string", + "enum": [ + "complete_for_scope", + "partial", + "not_examined" + ] + }, + "enum_axis": { + "type": "string", + "enum": [ + "sil_data_role", + "hdl_structure_role", + "sil_governance_layer" + ] + }, + "enum_sil_data_role": { + "type": "string", + "enum": [ + "surface_linguistic", + "world_model", + "judgment" + ] + }, + "enum_hdl_structure_role": { + "type": "string", + "enum": [ + "surface_linguistic_structure", + "world_structure", + "judgment_structure" + ] + }, + "enum_sil_governance_layer": { + "type": "string", + "enum": [ + "open_web", + "verified", + "contested", + "judgment" + ] + }, + "enum_verification_scope": { + "type": "string", + "enum": [ + "identity", + "process", + "byte_integrity", + "other" + ] + }, + "enum_reported_outcome": { + "type": "string", + "enum": [ + "verified", + "not_verified", + "inconclusive", + "revoked", + "unknown" + ] + }, + "enum_externality_conclusion": { + "type": "string", + "enum": [ + "external", + "internal", + "mixed", + "unknown" + ] + }, + "enum_grant_state": { + "type": "string", + "enum": [ + "granted", + "denied", + "expired", + "unknown" + ] + }, + "enum_conflict_kind": { + "type": "string", + "enum": [ + "affirmation_denial", + "incompatible_origin", + "incompatible_independence", + "identity_dispute", + "scope_dispute", + "other" + ] + }, + "enum_resolution_state": { + "type": "string", + "enum": [ + "unresolved", + "externally_resolved" + ] + }, + "enum_resolved_kind": { + "type": "string", + "enum": [ + "claim", + "artifact", + "actor", + "evidence_item", + "origin_event", + "model", + "evaluation", + "correction_channel", + "correction_event", + "pipeline_record", + "anomaly" + ] + }, + "enum_endpoint_gap_reason": { + "type": "string", + "enum": [ + "not_recorded", + "not_examined", + "withheld", + "unavailable", + "identity_ambiguous", + "outside_snapshot", + "other" + ] + }, + "SelectedNative": { + "oneOf": [ + { + "$ref": "#/$defs/SelectedInquiry" + }, + { + "$ref": "#/$defs/SelectedRecord" + }, + { + "$ref": "#/$defs/SelectedAssertion" + }, + { + "$ref": "#/$defs/SelectedEvidenceReference" + } + ] + }, + "SelectedPipelineRecord": { + "allOf": [ + { + "$ref": "#/$defs/SelectedRecord" + }, + { + "properties": { + "kind": { + "const": "pipeline_record" + } + } + } + ] + }, + "SelectedUnresolvedRecord": { + "allOf": [ + { + "$ref": "#/$defs/SelectedRecord" + }, + { + "properties": { + "kind": { + "const": "unresolved_reference" + } + } + } + ] + }, + "SelectedCoverageAssertion": { + "allOf": [ + { + "$ref": "#/$defs/SelectedAssertion" + }, + { + "properties": { + "assertion_kind": { + "const": "assessment" + }, + "data": { + "properties": { + "assessment_kind": { + "const": "coverage" + } + } + } + } + } + ] + }, + "SelectedCapacityAssertion": { + "allOf": [ + { + "$ref": "#/$defs/SelectedAssertion" + }, + { + "properties": { + "assertion_kind": { + "const": "assessment" + }, + "data": { + "properties": { + "assessment_kind": { + "const": "capacity" + } + } + } + } + } + ] + }, + "OriginBoundaryFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "qualification_state", + "reason_codes" + ] + }, + "CoverageFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedCoverageAssertion" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "qualification_state", + "reason_codes" + ] + }, + "DocumentaryBasisGapFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "qualification_state", + "reason_codes" + ] + }, + "IndependenceAssessmentFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "process_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "origin_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet", + "not_applicable" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "process_qualification_state", + "origin_qualification_state", + "reason_codes" + ] + } + ] + }, + "GapSource": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/InputRef" + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "source", + "reason_codes" + ] + }, + "GapCoverage": { + "type": "object", + "properties": { + "coverage_ref": { + "$ref": "#/$defs/AssertionRef" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "coverage_ref", + "qualification_state", + "reason_codes" + ] + }, + "GapWitnessPath": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + } + }, + "assertions": { + "type": "array", + "items": { + "$ref": "#/$defs/AssertionRef" + } + } + }, + "additionalProperties": false, + "required": [ + "nodes", + "assertions" + ] + }, + "AncestryGapFields": { + "type": "object", + "properties": { + "seed_ref": { + "$ref": "#/$defs/RecordRef" + }, + "dimension": { + "$ref": "#/$defs/DependencyDimension" + }, + "gaps": { + "type": "array", + "items": { + "$ref": "#/$defs/GapSource" + } + }, + "frontiers": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedUnresolvedRecord" + } + }, + "coverage": { + "type": "array", + "items": { + "$ref": "#/$defs/GapCoverage" + } + }, + "witness_paths": { + "type": "array", + "items": { + "$ref": "#/$defs/GapWitnessPath" + } + } + }, + "additionalProperties": false, + "required": [ + "seed_ref", + "dimension", + "gaps", + "frontiers", + "coverage", + "witness_paths" + ] + }, + "OneSidedAncestry": { + "type": "object", + "properties": { + "from_ref": { + "$ref": "#/$defs/InputRef" + }, + "to_ref": { + "$ref": "#/$defs/InputRef" + } + }, + "additionalProperties": false, + "required": [ + "from_ref", + "to_ref" + ] + }, + "EvaluatorOverlapFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/$defs/enum_role" + } + }, + "left_object_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "right_object_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "shared_object_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "common_ancestor_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "matching_family_labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_family_model_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/RecordRef" + }, + "uniqueItems": true + }, + "one_sided_ancestry": { + "type": "array", + "items": { + "$ref": "#/$defs/OneSidedAncestry" + } + }, + "roles_complete": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "roles", + "left_object_refs", + "right_object_refs", + "shared_object_refs", + "common_ancestor_refs", + "matching_family_labels", + "missing_family_model_refs", + "one_sided_ancestry", + "roles_complete" + ] + } + ] + }, + "ExternalityAssessmentFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "qualified_externality": { + "type": "string", + "enum": [ + "available", + "unavailable" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "qualification_state", + "qualified_externality", + "reason_codes" + ] + } + ] + }, + "PipelineStageFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedPipelineRecord" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "qualification_state", + "reason_codes" + ] + }, + "ExternalityStageFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedPipelineRecord" + }, + "qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + }, + "externality_subject_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "mapping_assertion_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/AssertionRef" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "qualification_state", + "reason_codes", + "externality_subject_refs", + "mapping_assertion_refs" + ] + }, + "StageAnchor": { + "type": "object", + "properties": { + "run_key": { + "type": "string" + }, + "stage_key": { + "type": "string" + }, + "stage": { + "$ref": "#/$defs/enum_stage" + } + }, + "additionalProperties": false, + "required": [ + "run_key", + "stage_key", + "stage" + ] + }, + "CohortTransitionFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedCoverageAssertion" + }, + "stage_anchor": { + "anyOf": [ + { + "$ref": "#/$defs/StageAnchor" + }, + { + "type": "null" + } + ] + }, + "cohort_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "transition_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "stage_anchor", + "cohort_qualification_state", + "transition_qualification_state", + "reason_codes" + ] + }, + "CorrectionRouteFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "target_ref": { + "$ref": "#/$defs/InputRef" + }, + "action_type": { + "$ref": "#/$defs/enum_action" + }, + "declared_route_recorded": { + "type": "boolean" + }, + "authorized_route_recorded": { + "type": "boolean" + }, + "authorized_route_state": { + "type": "string", + "enum": [ + "available", + "unavailable" + ] + }, + "absence_description": { + "type": "string", + "enum": [ + "bounded_absence_under_declared_coverage", + "no_witness_in_examined_view", + "positive_witness" + ] + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "target_ref", + "action_type", + "declared_route_recorded", + "authorized_route_recorded", + "authorized_route_state", + "absence_description" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "grant_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet", + "unknown" + ] + }, + "grant_matches_tuple": { + "type": "boolean" + }, + "grant_reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "grant_qualification_state", + "grant_matches_tuple", + "grant_reason_codes" + ] + } + ] + }, + "CorrectionCaseFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "documentary_state": { + "type": "string", + "enum": [ + "met", + "unknown" + ] + }, + "explicit_removal": { + "type": "boolean" + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "documentary_state", + "explicit_removal", + "reason_codes" + ] + } + ] + }, + "CaseChangeRow": { + "type": "object", + "properties": { + "case_ref": { + "$ref": "#/$defs/RecordRef" + }, + "declared": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "change_event_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/RecordRef" + }, + "uniqueItems": true + }, + "qualified_change_event_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/RecordRef" + }, + "uniqueItems": true + }, + "documentary_state": { + "type": "string", + "enum": [ + "met", + "unknown" + ] + }, + "requested_effect_state": { + "type": "string", + "enum": [ + "available", + "unavailable" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "case_ref", + "declared", + "selected", + "change_event_refs", + "qualified_change_event_refs", + "documentary_state", + "requested_effect_state", + "reason_codes" + ] + }, + "CorrectionTargetChangeFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "case_rows": { + "type": "array", + "items": { + "$ref": "#/$defs/CaseChangeRow" + } + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "case_rows" + ] + }, + "ReportedCapacityFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedCapacityAssertion" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedCapacityAssertion" + }, + "documentary_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "documentary_state", + "reason_codes" + ] + } + ] + }, + "HumanContributionFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "contribution_status": { + "type": "string", + "enum": [ + "distinct_constraint", + "no_human_role", + "missing_contribution", + "recorded_human_contribution" + ] + }, + "documentary_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "identity_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "contribution_status", + "documentary_state", + "identity_state", + "reason_codes" + ] + } + ] + }, + "CorrectiveIndependenceFields": { + "anyOf": [ + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + } + }, + "additionalProperties": false, + "required": [ + "native_record" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "contribution_status": { + "type": "string", + "enum": [ + "distinct_constraint", + "no_human_role", + "missing_contribution", + "recorded_human_contribution" + ] + }, + "documentary_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "identity_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "contribution_status", + "documentary_state", + "identity_state", + "reason_codes" + ] + }, + { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "process_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet" + ] + }, + "origin_qualification_state": { + "type": "string", + "enum": [ + "met", + "unmet", + "not_applicable" + ] + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "process_qualification_state", + "origin_qualification_state", + "reason_codes" + ] + } + ] + }, + "AnomalyContextFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "context_records": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedNative" + } + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "context_records", + "reason_codes" + ] + }, + "ContestationFields": { + "type": "object", + "properties": { + "native_record": { + "$ref": "#/$defs/SelectedNative" + }, + "context_records": { + "type": "array", + "items": { + "$ref": "#/$defs/SelectedNative" + } + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "native_record", + "context_records", + "reason_codes" + ] + }, + "TailStageResultLinkFields": { + "type": "object", + "properties": { + "source_result_state": { + "type": "string", + "enum": [ + "available", + "unavailable", + "not_applicable", + "not_evaluated" + ] + }, + "source_value_kind": { + "$ref": "#/$defs/ValueKind" + } + }, + "additionalProperties": false, + "required": [ + "source_result_state", + "source_value_kind" + ] + }, + "Disclosure": { + "type": "object", + "properties": { + "source": { + "anyOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "$ref": "#/$defs/ResultId" + } + ] + }, + "fields": { + "anyOf": [ + { + "$ref": "#/$defs/OriginBoundaryFields" + }, + { + "$ref": "#/$defs/CoverageFields" + }, + { + "$ref": "#/$defs/DocumentaryBasisGapFields" + }, + { + "$ref": "#/$defs/IndependenceAssessmentFields" + }, + { + "$ref": "#/$defs/AncestryGapFields" + }, + { + "$ref": "#/$defs/EvaluatorOverlapFields" + }, + { + "$ref": "#/$defs/ExternalityAssessmentFields" + }, + { + "$ref": "#/$defs/PipelineStageFields" + }, + { + "$ref": "#/$defs/ExternalityStageFields" + }, + { + "$ref": "#/$defs/CohortTransitionFields" + }, + { + "$ref": "#/$defs/CorrectionRouteFields" + }, + { + "$ref": "#/$defs/CorrectionCaseFields" + }, + { + "$ref": "#/$defs/CorrectionTargetChangeFields" + }, + { + "$ref": "#/$defs/ReportedCapacityFields" + }, + { + "$ref": "#/$defs/HumanContributionFields" + }, + { + "$ref": "#/$defs/CorrectiveIndependenceFields" + }, + { + "$ref": "#/$defs/AnomalyContextFields" + }, + { + "$ref": "#/$defs/ContestationFields" + }, + { + "$ref": "#/$defs/TailStageResultLinkFields" + } + ] + }, + "qualifications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "source", + "fields", + "qualifications" + ] + }, + "GraphNode": { + "type": "object", + "properties": { + "ref": { + "allOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "properties": { + "selector": { + "type": "null" + } + } + } + ] + }, + "kind": { + "type": "string", + "enum": [ + "claim", + "artifact", + "actor", + "evidence_item", + "origin_event", + "model", + "evaluation", + "correction_channel", + "correction_event", + "pipeline_record", + "anomaly", + "unresolved_reference", + "inquiry", + "assertion", + "evidence_reference" + ] + } + }, + "additionalProperties": false, + "required": [ + "ref", + "kind" + ], + "allOf": [ + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "inquiry" + } + } + }, + "then": { + "properties": { + "ref": { + "$ref": "#/$defs/InquiryRef" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "assertion" + } + } + }, + "then": { + "properties": { + "ref": { + "$ref": "#/$defs/AssertionRef" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "evidence_reference" + } + } + }, + "then": { + "properties": { + "ref": { + "$ref": "#/$defs/EvidenceRef" + } + } + } + }, + { + "if": { + "required": [ + "kind" + ], + "properties": { + "kind": { + "type": "string", + "enum": [ + "claim", + "artifact", + "actor", + "evidence_item", + "origin_event", + "model", + "evaluation", + "correction_channel", + "correction_event", + "pipeline_record", + "anomaly", + "unresolved_reference" + ] + } + } + }, + "then": { + "properties": { + "ref": { + "$ref": "#/$defs/RecordRef" + } + } + } + } + ] + }, + "GraphEdge": { + "type": "object", + "properties": { + "source": { + "$ref": "#/$defs/GraphNode" + }, + "target": { + "$ref": "#/$defs/GraphNode" + }, + "source_ref": { + "$ref": "#/$defs/InputRef" + }, + "predicate": { + "anyOf": [ + { + "$ref": "#/$defs/enum_predicate" + }, + { + "type": "null" + } + ] + }, + "eligible": { + "type": "boolean" + }, + "reason_codes": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonCode" + }, + "uniqueItems": true + } + }, + "additionalProperties": false, + "required": [ + "source", + "target", + "source_ref", + "predicate", + "eligible", + "reason_codes" + ], + "allOf": [ + { + "if": { + "required": [ + "predicate" + ], + "properties": { + "predicate": { + "type": "null" + } + } + }, + "then": { + "properties": { + "source_ref": { + "allOf": [ + { + "$ref": "#/$defs/InputRef" + }, + { + "properties": { + "selector": { + "type": "string", + "minLength": 1 + } + } + } + ] + } + } + }, + "else": { + "properties": { + "source_ref": { + "allOf": [ + { + "$ref": "#/$defs/AssertionRef" + }, + { + "properties": { + "selector": { + "type": "null" + } + } + } + ] + } + } + } + } + ] + }, + "GraphWitnessComponent": { + "type": "object", + "properties": { + "type": { + "const": "graph_witness" + }, + "kind": { + "type": "string", + "enum": [ + "path", + "cycle", + "members", + "complete_trace", + "no_witness_in_examined_view" + ] + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphNode" + } + }, + "members": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphNode" + } + }, + "starts": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphNode" + } + }, + "examined_nodes": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphNode" + } + }, + "frontiers": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphNode" + } + }, + "terminals": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphNode" + } + }, + "edges": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphEdge" + } + }, + "internal_edges": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphEdge" + } + }, + "exit_edges": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphEdge" + } + }, + "examined_edges": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphEdge" + } + }, + "observations": { + "type": "array", + "items": { + "$ref": "#/$defs/GraphEdge" + } + }, + "target": { + "anyOf": [ + { + "$ref": "#/$defs/GraphNode" + }, + { + "type": "null" + } + ] + }, + "member_count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "type", + "kind", + "nodes", + "members", + "starts", + "examined_nodes", + "frontiers", + "terminals", + "edges", + "internal_edges", + "exit_edges", + "examined_edges", + "observations", + "target", + "member_count" + ] + }, + "InventoryWitnessComponent": { + "type": "object", + "properties": { + "type": { + "const": "inventory_witness" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "member_count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "type", + "members", + "member_count" + ] + }, + "ComparisonWitnessComponent": { + "type": "object", + "properties": { + "type": { + "const": "comparison_witness" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "assessment": { + "anyOf": [ + { + "$ref": "#/$defs/AssertionRef" + }, + { + "type": "null" + } + ] + }, + "examined_assessments": { + "type": "array", + "items": { + "$ref": "#/$defs/AssertionRef" + }, + "uniqueItems": true + }, + "member_count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "type", + "members", + "assessment", + "examined_assessments", + "member_count" + ] + }, + "SelectedMembersComponent": { + "type": "object", + "properties": { + "type": { + "const": "selected_members" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "member_count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "type", + "members", + "member_count" + ] + }, + "HumanReviewWitnessComponent": { + "type": "object", + "properties": { + "type": { + "const": "human_review_witness" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "examined_assessments": { + "type": "array", + "items": { + "$ref": "#/$defs/AssertionRef" + }, + "uniqueItems": true + }, + "source_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + } + }, + "member_count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "type", + "members", + "examined_assessments", + "source_refs", + "member_count" + ] + }, + "CorrectionOutcomeWitnessComponent": { + "type": "object", + "properties": { + "type": { + "const": "correction_outcome_witness" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "source_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + } + }, + "member_count": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": false, + "required": [ + "type", + "members", + "source_refs", + "member_count" + ] + }, + "WitnessComponent": { + "oneOf": [ + { + "$ref": "#/$defs/GraphWitnessComponent" + }, + { + "$ref": "#/$defs/InventoryWitnessComponent" + }, + { + "$ref": "#/$defs/ComparisonWitnessComponent" + }, + { + "$ref": "#/$defs/SelectedMembersComponent" + }, + { + "$ref": "#/$defs/HumanReviewWitnessComponent" + }, + { + "$ref": "#/$defs/CorrectionOutcomeWitnessComponent" + } + ] + }, + "FindingWitness": { + "type": "object", + "properties": { + "input_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "components": { + "type": "array", + "items": { + "$ref": "#/$defs/WitnessComponent" + } + } + }, + "additionalProperties": false, + "required": [ + "input_refs", + "components" + ] + }, + "Finding": { + "type": "object", + "properties": { + "id": { + "$ref": "#/$defs/FindingId" + }, + "observation_kind": { + "type": "string", + "enum": [ + "positive_witness", + "no_witness_in_examined_view", + "bounded_absence_under_declared_coverage", + "attributed_observation", + "qualification_gap", + "recorded_conflict" + ] + }, + "condition_code": { + "type": "string", + "enum": [ + "shared_origin_witness", + "citation_path_witness", + "transformation_path_witness", + "model_mediated_derivation_witness", + "view_cycle_witness", + "assurance_loop_limitation", + "evaluator_overlap_witness", + "family_label_match", + "provenance_gap", + "verification_scope_limitation", + "independence_record_conflict", + "correction_dependency_witness", + "correction_route_limitation", + "case_handling_disclosure", + "linked_change_disclosure", + "downstream_change_undocumented", + "externality_stage_limitation", + "recorded_stage_exclusion", + "anomaly_or_contestation_disclosure", + "attributed_external_observation", + "scoped_no_witness", + "recorded_data_conflict" + ] + }, + "diagnostic_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/DiagnosticId" + }, + "uniqueItems": true + }, + "threat_family_refs": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "SIT-TH001", + "SIT-TH002", + "SIT-TH003", + "SIT-TH004", + "SIT-TH005", + "SIT-TH006", + "SIT-TH007", + "SIT-TH008", + "SIT-TH009", + "SIT-TH010", + "SIT-TH011", + "SIT-TH012", + "SIT-TH013", + "SIT-TH014" + ] + }, + "uniqueItems": true + }, + "scope_ref": { + "$ref": "#/$defs/ScopeId" + }, + "population_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/PopulationId" + }, + "uniqueItems": true + }, + "basis_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/BasisId" + }, + "uniqueItems": true + }, + "witness": { + "$ref": "#/$defs/FindingWitness" + }, + "contrary_input_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/InputRef" + }, + "uniqueItems": true + }, + "reason_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/ReasonId" + }, + "uniqueItems": true + }, + "statement": { + "type": "string", + "minLength": 1 + }, + "interpretation_limit": { + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "id", + "observation_kind", + "condition_code", + "diagnostic_refs", + "threat_family_refs", + "scope_ref", + "population_refs", + "basis_refs", + "witness", + "contrary_input_refs", + "reason_refs", + "statement", + "interpretation_limit" + ] + } + } +} diff --git a/src/source_integrity_toolkit/contracts/execution.py b/src/source_integrity_toolkit/contracts/execution.py index 53ae5fc..fce0f62 100644 --- a/src/source_integrity_toolkit/contracts/execution.py +++ b/src/source_integrity_toolkit/contracts/execution.py @@ -168,3 +168,132 @@ def __str__(self) -> str: def __repr__(self) -> str: return "_AnalysisAborted()" + + +# Phase 4 transport declarations. These are not report reasons or audit entry +# points. The earlier private stopping classes above retain their exact meaning. +def _transport_require(ok: bool) -> None: + if not ok: + raise TypeError("invalid_audit_transport") + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class AuditAbort(Exception): + """No conforming report can be delivered; retain only established states. + + Publication is fixed to not_published in the in-memory Phase 4 surface. + Source records and original exceptions are never transport arguments. + """ + processing_state: str + input_validation_state: str + reason_code: str + publication_state: str = "not_published" + + def __post_init__(self) -> None: + _transport_require(type(self.processing_state) is str) + _transport_require(type(self.input_validation_state) is str) + _transport_require(type(self.reason_code) is str) + _transport_require(type(self.publication_state) is str) + _transport_require(self.input_validation_state in ("accepted", "not_completed")) + _transport_require(self.publication_state == "not_published") + _transport_require((self.processing_state, self.reason_code) in ( + ("interrupted", "resource_limit_reached"), ("failed", "execution_failed"))) + + @property + def args(self) -> tuple: + return ("Audit could not be completed.",) + + @property + def safe_message(self) -> str: + return "Audit could not be completed." + + def __str__(self) -> str: + return "Audit could not be completed." + + def __repr__(self) -> str: + return "AuditAbort()" + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class AuditCancelled(Exception): + """Caller cancellation, with no fabricated execution Reason code.""" + input_validation_state: str + publication_state: str = "not_published" + + def __post_init__(self) -> None: + _transport_require(type(self.input_validation_state) is str) + _transport_require(type(self.publication_state) is str) + _transport_require(self.input_validation_state in ("accepted", "not_completed")) + _transport_require(self.publication_state == "not_published") + + @property + def args(self) -> tuple: + return ("Audit cancelled.",) + + @property + def safe_message(self) -> str: + return "Audit cancelled." + + def __str__(self) -> str: + return "Audit cancelled." + + def __repr__(self) -> str: + return "AuditCancelled()" + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class AuditUsageError(ValueError): + """A fixed, payload-free trusted-invocation failure, before input access.""" + @property + def code(self) -> str: + return "invalid_invocation" + + @property + def args(self) -> tuple: + return ("Invalid audit invocation.",) + + @property + def safe_message(self) -> str: + return "Invalid audit invocation." + + def __str__(self) -> str: + return "Invalid audit invocation." + + def __repr__(self) -> str: + return "AuditUsageError()" + + +class _ReportFinalizationPort(_FinalizationPort, Protocol): + """Declaration for the same invocation's restricted report finalization. + + Implemented only by project-owned runtime objects in the later composition + unit. No clock, I/O, caller callback, new ledger or configurable limit is + exposed. Output accounting is separate for the two fixed encodings. + """ + def charge_output(self, encoding: str, byte_count: int) -> None: + ... + + def reserve_report_witness(self, witnesses: int, members: int) -> None: + ... + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class _ReportAborted(Exception): + """Private output-limit propagation without changing earlier stop classes.""" + stop: _PreparationStop + limit_id: str | None = None + + def __post_init__(self) -> None: + _transport_require(type(self.stop) is _PreparationStop) + _transport_require(self.stop.input_state in ("accepted", "not_completed")) + if self.stop.execution_state == "interrupted": + _transport_require(type(self.limit_id) is str and + self.limit_id in _ANALYSIS_LIMIT_IDS + ("WU9-L14",)) + else: + _transport_require(self.stop.execution_state == "failed" and self.limit_id is None) + + def __str__(self) -> str: + return "report_finalization_stopped" + + def __repr__(self) -> str: + return "_ReportAborted()" diff --git a/src/source_integrity_toolkit/contracts/report.py b/src/source_integrity_toolkit/contracts/report.py index a9d6a15..9552713 100644 --- a/src/source_integrity_toolkit/contracts/report.py +++ b/src/source_integrity_toolkit/contracts/report.py @@ -3,7 +3,7 @@ """Owner: REPORT_CONTRACT. Private preparation declarations and bounded analytical delivery contracts. -No public audit envelope, report identifiers or renderer are constructed here. +Public report types are declared; no audit execution or renderer is activated here. Level labels are independent evidence domains, never a score or maximum level. The preparation-only contracts retain their earlier meaning: only PC01 has completed after W05 admission and PC02-PC24 remain execution-pending. W13 @@ -1453,3 +1453,983 @@ def _assemble_analysis(prepared, plan, job_outcomes, results, findings, witnesse _paid_tuple(domains, port), execution_state) port.check() return result + + +# Phase 4 public representation declarations. Construction of a delivered report +# remains unavailable until one invocation has completed both encodings and +# their consistency check. The validation helpers below are private, bounded +# contract checks, not audit/renderer entry points or authenticity claims. +from typing import Mapping +import re + +_REPORT_ROOT_FIELDS = ( + 'contract_version', 'report_kind', 'report_id', 'run', 'input_identity', + 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', + 'checks', 'observability_domains', 'results', 'findings', 'reasons', + 'release_limits', +) +_REPORT_RUN_QUALIFICATIONS = ( + 'SIT-RP-0.1', + 'Wall-clock start and finish times are not recorded by SIT-RP-0.1.', +) +_REPORT_RELEASE_LIMITS = ( + 'Offline analysis of caller-supplied records only.', + 'Source identity, authenticity and external events are not independently authenticated.', + 'No live monitoring or active content-level poisoning, injection or authorship detection was performed.', + 'No universal truth, integrity, independence or safety score is produced.', + 'No automatic intervention, source contact or changes to the audited system are performed.', + 'Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence.', +) + + +class _ReportContractError(TypeError): + pass + + +def _report_require(ok): + if not ok: + raise _ReportContractError('invalid_report_contract') + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class _ReportMapping(Mapping): + """Project-owned immutable JSON object with no mutable backing mapping. + + Construction is private and receives only already copied immutable pairs. + External keys cannot invoke a caller equality/hash/representation protocol. + """ + _pairs: tuple + + def __len__(self): + return len(self._pairs) + + def __iter__(self): + return (pair[0] for pair in self._pairs) + + def __getitem__(self, key): + if type(key) is not str: + raise KeyError('unknown report member') + for name, value in self._pairs: + if name == key: + return value + raise KeyError('unknown report member') + + def __repr__(self): + return '_ReportMapping()' + + +class AuditReport: + """Read-only report interface; W02 cannot construct a completed audit. + + The future private completion owner must store only a frozen document and + the two already complete immutable byte strings. No budget, source tree, + prepared snapshot, private index or encoder is retained by this interface. + """ + __slots__ = ('_document', '_json_bytes', '_markdown_bytes') + + def __new__(cls, *args, **kwargs): + raise TypeError('AuditReport is delivered only by audit_bundle.') + + def __init_subclass__(cls, **kwargs): + raise TypeError('AuditReport cannot be subclassed.') + + def __setattr__(self, name, value): + raise TypeError('AuditReport is immutable.') + + def __delattr__(self, name): + raise TypeError('AuditReport is immutable.') + + def __repr__(self): + return 'AuditReport()' + + def to_json_bytes(self): + return self._json_bytes + + def to_markdown_bytes(self): + return self._markdown_bytes + + @property + def contract_version(self): + return self._document['contract_version'] + + @property + def report_kind(self): + return self._document['report_kind'] + + @property + def report_id(self): + return self._document['report_id'] + + @property + def run(self): + return self._document['run'] + + @property + def input_identity(self): + return self._document['input_identity'] + + @property + def input_validation(self): + return self._document['input_validation'] + + @property + def scopes(self): + return self._document['scopes'] + + @property + def populations(self): + return self._document['populations'] + + @property + def basis_index(self): + return self._document['basis_index'] + + @property + def capabilities(self): + return self._document['capabilities'] + + @property + def checks(self): + return self._document['checks'] + + @property + def observability_domains(self): + return self._document['observability_domains'] + + @property + def results(self): + return self._document['results'] + + @property + def findings(self): + return self._document['findings'] + + @property + def reasons(self): + return self._document['reasons'] + + @property + def release_limits(self): + return self._document['release_limits'] + + +def _report_text_work(value, port): + """Conservative UTF-8 work, paid before scalar inspection in <=64-char blocks.""" + _report_require(type(value) is str) + for start in range(0, len(value), 64): + port.charge(2) + for char in value[start:start + 64]: + if 0xD800 <= ord(char) <= 0xDFFF: + raise _ReportContractError('invalid_report_contract') + port.check() + + +def _copy_report_value(value, port): + """Explicit-stack private capture; aliases are copied as separate occurrences. + + Exact-type checks precede every protocol-sensitive operation. Active + ancestry detects cycles without hashing/comparing caller objects. Each + creation, traversal, comparison and copying pass is prospectively charged. + """ + result = [] + stack = [('visit', value, result)] + active = set() + while stack: + port.charge(1) + operation, current, destination = stack.pop() + if operation == 'object': + pairs, source_id = current + port.charge(1 + 2 * len(pairs)) + destination.append(_ReportMapping(tuple((key, child[0]) for key, child in pairs))) + active.remove(source_id) + continue + if operation == 'array': + children, source_id = current + port.charge(1 + len(children)) + destination.append(tuple(child[0] for child in children)) + active.remove(source_id) + continue + kind = type(current) + _report_require(current is None or kind is str or kind is bool or + kind is int or kind is dict or kind is list) + if kind is str: + _report_text_work(current, port) + port.charge(1) + destination.append(current) + elif kind is int: + port.charge(3) + _report_require(-9007199254740991 <= current <= 9007199254740991) + destination.append(current) + elif current is None or kind is bool: + port.charge(1) + destination.append(current) + else: + port.charge(2) + source_id = id(current) + _report_require(source_id not in active) + active.add(source_id) + size = len(current) + port.charge(1 + 3 * size) + if kind is dict: + # items() on an exact dict retrieves entries without hashing + # its untrusted keys; all key types precede any comparison. + source_pairs = tuple(current.items()) + _report_require(len(source_pairs) == size) + pairs = [] + for key, child in source_pairs: + port.charge(2) + _report_require(type(key) is str) + _report_text_work(key, port) + pairs.append((key, [])) + stack.append(('object', (pairs, source_id), destination)) + for position in range(size - 1, -1, -1): + port.charge(2) + stack.append(('visit', source_pairs[position][1], pairs[position][1])) + else: + children = [[] for unused in range(size)] + stack.append(('array', (children, source_id), destination)) + for position in range(size - 1, -1, -1): + port.charge(2) + stack.append(('visit', current[position], children[position])) + port.check() + _report_require(len(result) == 1) + return result[0] + + +def _report_key(value, port): + """Paid equality key for already frozen values; never a source fingerprint.""" + port.charge(1) + if type(value) is _ReportMapping: + pairs = [] + for name, child in value._pairs: + _byte_work(port, 4 * len(name), 3) + pairs.append((name, _report_key(child, port))) + return ('object', _key_sort(pairs, port)) + if type(value) is tuple: + return ('array', _paid_tuple([_report_key(child, port) for child in value], port)) + return _semantic_key(value, port) + + +def _report_equal(left, right, port): + """Iterative comparison of copied values; no recursion on rejected input.""" + if type(right) is dict or type(right) is list: + right = _copy_report_value(right, port) + pending = [(left, right)] + while pending: + port.charge(1) + a, b = pending.pop() + if type(a) is not type(b): + return False + if type(a) is _ReportMapping: + aa, bb = _report_fields(a, port), _report_fields(b, port) + port.charge(1) + if len(aa) != len(bb): + return False + for name, child in aa.items(): + _byte_work(port, 4 * len(name), 3) + if name not in bb: + return False + pending.append((child, bb[name])) + elif type(a) is tuple: + port.charge(1) + if len(a) != len(b): + return False + port.charge(2 * len(a)) + pending.extend(zip(a, b)) + else: + if type(a) is str: + _byte_work(port, 4 * (len(a) + len(b)), 1) + else: + port.charge(1) + if a != b: + return False + port.check() + return True + + +def _report_fields(value, port): + _report_require(type(value) is _ReportMapping) + fields = {} + for key, child in value._pairs: + _byte_work(port, 4 * len(key), 3) + fields[key] = child + port.check() + return fields + + +def _report_unique(values, port): + """Merge-sort every complete key, charging moves and comparisons.""" + keys = _key_sort([_report_key(value, port) for value in values], port) + for position in range(1, len(keys)): + port.charge(1) + _key_charge(keys[position - 1], port) + _key_charge(keys[position], port) + _report_require(keys[position - 1] != keys[position]) + + +def _report_type(value, kind): + return ((kind == 'object' and type(value) is _ReportMapping) or + (kind == 'array' and type(value) is tuple) or + (kind == 'string' and type(value) is str) or + (kind == 'integer' and type(value) is int) or + (kind == 'number' and type(value) is int) or + (kind == 'boolean' and type(value) is bool) or + (kind == 'null' and value is None)) + + +def _report_matches(value, specification, port): + try: + _report_schema(value, specification, port) + except _ReportContractError: + return False + return True + + +def _report_schema(value, specification, port): + """Interpret only the compiled local report grammar, never supplied schemas. + + This private fixed-contract walker accepts only the keyword subset used in + the pinned report declaration. Every alternative, scalar scan, member + examination and collection comparison consumes the caller's existing port. + """ + port.charge(1) + if specification is False: + _report_require(False) + if specification is True: + return + if '$ref' in specification: + reference = specification['$ref'] + name = reference.removeprefix('#/$defs/') + _report_require(reference.startswith('#/$defs/') and name in _REPORT_SHAPES) + _report_shape(value, name, port) + if 'type' in specification: + kinds = specification['type'] + kinds = (kinds,) if type(kinds) is str else kinds + port.charge(len(kinds)) + _report_require(any(_report_type(value, kind) for kind in kinds)) + if 'const' in specification: + _report_require(_report_equal(value, specification['const'], port)) + if 'enum' in specification: + matched = False + for choice in specification['enum']: + port.charge(1) + if _report_equal(value, choice, port): + matched = True + break + _report_require(matched) + for key in ('allOf', 'anyOf', 'oneOf'): + if key in specification: + successes = 0 + for branch in specification[key]: + port.charge(1) + successes += int(_report_matches(value, branch, port)) + _report_require(successes == len(specification[key]) if key == 'allOf' else + successes >= 1 if key == 'anyOf' else successes == 1) + if 'not' in specification: + _report_require(not _report_matches(value, specification['not'], port)) + if 'if' in specification: + which = 'then' if _report_matches(value, specification['if'], port) else 'else' + if which in specification: + _report_schema(value, specification[which], port) + if type(value) is str: + _report_text_work(value, port) + _report_require(len(value) >= specification.get('minLength', 0)) + if 'maxLength' in specification: + _report_require(len(value) <= specification['maxLength']) + if 'pattern' in specification: + _byte_work(port, 4 * len(value), 2) + matched = re.search(specification['pattern'], value) + port.check() + _report_require(matched is not None) + elif type(value) is int: + port.charge(4) + if 'minimum' in specification: + _report_require(value >= specification['minimum']) + if 'maximum' in specification: + _report_require(value <= specification['maximum']) + if 'exclusiveMinimum' in specification: + _report_require(value > specification['exclusiveMinimum']) + if 'exclusiveMaximum' in specification: + _report_require(value < specification['exclusiveMaximum']) + elif type(value) is tuple: + port.charge(2) + _report_require(len(value) >= specification.get('minItems', 0)) + if 'maxItems' in specification: + _report_require(len(value) <= specification['maxItems']) + prefix = specification.get('prefixItems', ()) + for position, child in enumerate(value): + port.charge(1) + if position < len(prefix): + _report_schema(child, prefix[position], port) + elif 'items' in specification: + _report_schema(child, specification['items'], port) + if specification.get('uniqueItems') is True: + _report_unique(value, port) + if 'contains' in specification: + matches = 0 + for child in value: + port.charge(1) + matches += int(_report_matches(child, specification['contains'], port)) + _report_require(matches >= specification.get('minContains', 1)) + if 'maxContains' in specification: + _report_require(matches <= specification['maxContains']) + elif type(value) is _ReportMapping: + fields = _report_fields(value, port) + _report_require(len(fields) >= specification.get('minProperties', 0)) + if 'maxProperties' in specification: + _report_require(len(fields) <= specification['maxProperties']) + for name in specification.get('required', ()): + port.charge(1) + _report_require(name in fields) + properties = specification.get('properties', {}) + for name, child in fields.items(): + _byte_work(port, 4 * len(name), 2) + if 'propertyNames' in specification: + _report_schema(name, specification['propertyNames'], port) + if name in properties: + _report_schema(child, properties[name], port) + elif 'additionalProperties' in specification: + _report_schema(child, specification['additionalProperties'], port) + for name, required in specification.get('dependentRequired', {}).items(): + port.charge(1) + if name in fields: + for member in required: + port.charge(1) + _report_require(member in fields) + port.check() + + +def _report_shape(value, shape, port): + _report_require(type(shape) is str) + _report_require(shape in _REPORT_SHAPES) + _report_schema(value, _REPORT_SHAPES[shape], port) + _report_semantics(value, shape, port) + + +def _validate_report_component(value, shape, port): + """Validate one fixed private construction component without delivering it.""" + _report_require(type(shape) is str) + _byte_work(port, 4 * len(shape), 1) + _report_require(shape in _REPORT_SHAPES) + frozen = _copy_report_value(value, port) + _report_shape(frozen, shape, port) + port.check() + + +def _freeze_report_document(document, port): + """Check and detach a logical document, not a finished AuditReport. + + A successful result contains only immutable, project-owned mappings, + tuples and exact permitted scalar values. It contains no input-owned + container, execution port or encoding claim. No public constructor uses + this seam; later assembly must additionally close all references and + complete both encoded siblings before an AuditReport can be delivered. + """ + _report_require(type(document) is dict) + frozen = _copy_report_value(document, port) + _report_shape(frozen, 'AuditReport', port) + port.check() + return frozen + + +def _validate_report_document(document, port): + _freeze_report_document(document, port) + + +# These local relations are compiled from reporting 16 and the already frozen +# private result contracts. They validate representations, not source facts. +from .results import PARTITION_BINDINGS, IMMEDIATE_DISPOSITIONS, STAGE_DISPOSITIONS + + +def _report_same_members(left, right, port): + """Compare finite multisets with paid complete keys; source order is intact.""" + a = _key_sort([_report_key(item, port) for item in left], port) + b = _key_sort([_report_key(item, port) for item in right], port) + _key_charge(a, port) + _key_charge(b, port) + return a == b + + +def _report_join(groups, port): + combined = [] + for group in groups: + port.charge(len(group) + 1) + combined.extend(group) + return _paid_tuple(combined, port) + + +def _report_time(fields, port): + if fields['state'] != 'known': + return + value = fields['value'] + _byte_work(port, 4 * len(value), 4) + if fields['precision'] == 'date': + matched = re.fullmatch(r'([0-9]{4})-([0-9]{2})-([0-9]{2})', value) + else: + matched = re.fullmatch( + r'([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})' + r'(?:\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})', value) + port.check() + _report_require(matched is not None) + port.charge(24) + year, month, day = int(matched[1]), int(matched[2]), int(matched[3]) + _report_require(1 <= year <= 9999 and 1 <= month <= 12) + leap = year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) + days = (31, 29 if leap else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) + _report_require(1 <= day <= days[month - 1]) + if fields['precision'] == 'instant': + _report_require(int(matched[4]) <= 23 and int(matched[5]) <= 59 and int(matched[6]) <= 59) + offset = matched[7] + if offset != 'Z': + _report_require(int(offset[1:3]) <= 23 and int(offset[4:6]) <= 59) + port.check() + + +def _report_partition(fields, port): + categories = fields['categories'] + _report_require(bool(categories)) + labels, groups, total = [], [], 0 + for category in categories: + row = _report_fields(category, port) + port.charge(4) + labels.append(row['label']) + groups.append(row['member_refs']) + total += row['count'] + _report_require(total <= 9007199254740991) + _report_unique(labels, port) + members = _report_join(groups, port) + _report_unique(members, port) + port.charge(2) + _report_require(total == fields['total'] == len(members)) + + +def _report_interval(fields, port): + lower = _report_fields(fields['lower'], port) + upper = _report_fields(fields['upper'], port) + partition = _report_fields(fields['partition'], port) + _report_require(_report_equal(fields['population_ref'], partition['population_ref'], port)) + port.charge(5) + _report_require(lower['denominator'] == upper['denominator'] == partition['total']) + _report_require(lower['numerator'] <= upper['numerator'] <= lower['denominator']) + expected = (IMMEDIATE_DISPOSITIONS if fields['interval_kind'] == 'finite_record_completion' + else STAGE_DISPOSITIONS) + counts = {} + for category in partition['categories']: + row = _report_fields(category, port) + _byte_work(port, 4 * len(row['label']), 2) + counts[row['label']] = row['count'] + _report_require(_report_same_members(tuple(counts), expected, port)) + port.charge(6) + if fields['interval_kind'] == 'finite_record_completion': + positive, unresolved = counts['inherited_only_at_evidence_layer'], counts['unresolved_at_evidence_layer'] + else: + positive, unresolved = counts['Y'], counts['U'] + _report_require(unresolved > 0 and lower['numerator'] == positive and + upper['numerator'] == positive + unresolved) + + +def _report_incidence(fields, port): + members, declared_origins, expected_pairs, declared_pairs = [], [], [], [] + for membership in fields['memberships']: + row = _report_fields(membership, port) + port.charge(2) + members.append(row['member_ref']) + for origin in row['origin_refs']: + port.charge(2) + expected_pairs.append((row['member_ref'], origin)) + _report_unique(members, port) + for origin_count in fields['origin_counts']: + row = _report_fields(origin_count, port) + port.charge(2) + declared_origins.append(row['origin_ref']) + _report_require(row['count'] > 0) + for member in row['member_refs']: + port.charge(2) + declared_pairs.append((member, row['origin_ref'])) + _report_unique(declared_origins, port) + _report_require(_report_same_members(expected_pairs, declared_pairs, port)) + port.charge(1) + _report_require(fields['total'] == len(members)) + + +def _report_result(fields, port): + port.charge(2) + if fields['result_state'] != 'available': + _report_require(bool(fields['reason_refs'])) + return + kind = fields['value_kind'] + if kind in ('count', 'fraction', 'completion_interval', 'partition', 'incidence'): + _report_require(bool(fields['population_refs'])) + if kind == 'witness_collection': + collection = _report_fields(fields['value'], port) + _report_require(_report_same_members(collection['witness_refs'], fields['witness_refs'], port)) + if kind == 'fraction': + ratio = _report_fields(fields['value'], port) + port.charge(1) + _report_require(ratio['numerator'] <= ratio['denominator']) + if kind not in ('completion_interval', 'partition', 'incidence'): + return + value = _report_fields(fields['value'], port) + _report_require(any(_report_equal(value['population_ref'], item, port) + for item in fields['population_refs'])) + if kind == 'partition': + labels = [] + for category in value['categories']: + row = _report_fields(category, port) + port.charge(1) + labels.append(row['label']) + for field, expected in PARTITION_BINDINGS: + _byte_work(port, 4 * (len(field) + len(fields['field_key'])), 1) + if fields['field_key'] == field: + _report_require(_report_same_members(labels, expected, port)) + break + elif kind == 'completion_interval': + expected = ('finite_record_completion' if fields['diagnostic_id'] == 'SIT-M006' + else 'finite_cohort_completion') + _report_require(_report_equal(value['interval_kind'], expected, port)) + + +def _report_root(fields, port): + # This is local envelope consistency. W03 separately resolves source IDs, + # every foreign key, scope joins, completed cells and actual source facts. + identifiers = [] + for name in ('scopes', 'populations', 'basis_index', 'capabilities', 'checks', + 'results', 'findings', 'reasons'): + for item in fields[name]: + row = _report_fields(item, port) + port.charge(1) + identifiers.append(row['id']) + _report_unique(identifiers, port) + run = _report_fields(fields['run'], port) + if fields['report_kind'] == 'audit_report': + domains = [] + for domain in fields['observability_domains']: + row = _report_fields(domain, port) + port.charge(1) + domains.append(row['level_index']) + _report_require(_report_equal(tuple(domains), (0, 1, 2, 3, 4), port)) + if run['processing_state'] == 'completed': + _report_require(_report_equal(run['completed_diagnostic_ids'], FAMILIES, port)) + for reason in fields['reasons']: + row = _report_fields(reason, port) + _report_require(row['scope_ref'] is not None) + else: + _report_require(not run['completed_diagnostic_ids']) + for reason in fields['reasons']: + row = _report_fields(reason, port) + _report_require(row['scope_ref'] is None and not row['affected_result_refs'] and + not row['input_refs'] and row['classification'] == 'execution') + _report_require(row['code'] in ('resource_limit_reached', 'execution_failed', 'input_not_accepted')) + port.charge(3) + if row['code'] == 'resource_limit_reached': + _report_require(run['processing_state'] == 'interrupted') + elif row['code'] == 'execution_failed': + _report_require(run['processing_state'] == 'failed') + else: + validation = _report_fields(fields['input_validation'], port) + _report_require(validation['state'] != 'accepted') + + +def _report_semantics(value, shape, port): + """Validate finite local relations after their exact closed shape passes. + + No input lookup, graph search, analysis, rendering, ID allocation or public + report construction occurs here. Every scan receives the current port. + """ + port.charge(1) + if shape == 'Identifier': + _report_require(len(value) <= 128) + return + if type(value) is not _ReportMapping: + return + fields = _report_fields(value, port) + if shape == 'TimeValue': + _report_time(fields, port) + elif shape == 'Run': + _report_require(_report_equal(fields['requested_diagnostic_ids'], FAMILIES, port)) + previous = -1 + for family in fields['completed_diagnostic_ids']: + port.charge(16) + index = FAMILIES.index(family) + _report_require(index > previous) + previous = index + elif shape == 'InputIdentity': + if fields['source_mode'] == 'in_process' or fields['bundle_id'] is None or fields['snapshot_id'] is None: + _report_require(bool(fields['qualifications'])) + elif shape == 'Diagnostic': + if fields['code'] == 'input_constraint_violation': + port.charge(len(fields['qualifications']) + 1) + _report_require(bool(fields['qualifications']) and any(fields['qualifications'])) + elif shape == 'Scope': + inquiry = _report_fields(fields['inquiry_ref'], port) + _report_require(inquiry['selector'] is None) + for claim in fields['claim_refs']: + reference = _report_fields(claim, port) + _report_require(reference['selector'] is None) + if not fields['claim_refs'] or fields['dependency_dimension'] is None or fields['graph_view'] is None: + _report_require(bool(fields['qualifications'])) + elif shape == 'Reason' and fields['scope_ref'] is None: + _report_require(fields['classification'] == 'execution' and + not fields['affected_result_refs'] and not fields['input_refs']) + _report_require(fields['code'] in ('resource_limit_reached', 'execution_failed', 'input_not_accepted')) + elif shape == 'PartitionCategory' or shape == 'OriginIncidenceCount': + port.charge(1) + _report_require(fields['count'] == len(fields['member_refs'])) + elif shape == 'Partition': + _report_partition(fields, port) + elif shape == 'CompletionInterval': + _report_interval(fields, port) + elif shape == 'Incidence': + _report_incidence(fields, port) + elif shape == 'Capability': + inquiry = _report_fields(fields['inquiry_ref'], port) + _report_require(inquiry['selector'] is None) + parts = _report_join((fields['available_result_refs'], fields['unavailable_result_refs'], + fields['not_applicable_result_refs'], fields['not_evaluated_result_refs']), port) + _report_unique(parts, port) + _report_require(_report_same_members(parts, fields['result_refs'], port)) + elif shape == 'ObservabilityDomain': + parts = _report_join((fields['available_result_refs'], fields['unavailable_result_refs'], + fields['not_evaluated_result_refs']), port) + _report_unique(parts, port) + elif shape == 'Result': + _report_result(fields, port) + elif shape == 'GraphNode': + reference = _report_fields(fields['ref'], port) + _report_require(reference['selector'] is None) + if reference['collection'] == 'records': + _report_require(fields['kind'] not in ('inquiry', 'assertion', 'evidence_reference')) + else: + expected = {'inquiries': 'inquiry', 'assertions': 'assertion', + 'evidence_references': 'evidence_reference'} + _report_require(_report_equal(fields['kind'], expected[reference['collection']], port)) + elif shape == 'GraphEdge': + reference = _report_fields(fields['source_ref'], port) + if fields['predicate'] is not None: + _report_require(reference['collection'] == 'assertions' and reference['selector'] is None) + else: + source = _report_fields(fields['source'], port) + source_ref = _report_fields(source['ref'], port) + _report_require(reference['selector'] is not None) + _report_require(_report_equal(reference['collection'], source_ref['collection'], port)) + _report_require(_report_equal(reference['identifier'], source_ref['identifier'], port)) + elif shape in ('InventoryWitnessComponent', 'ComparisonWitnessComponent', 'SelectedMembersComponent', + 'HumanReviewWitnessComponent', 'CorrectionOutcomeWitnessComponent'): + port.charge(5) + count = len(fields['members']) + if shape in ('ComparisonWitnessComponent', 'HumanReviewWitnessComponent'): + count += len(fields['examined_assessments']) + if shape in ('HumanReviewWitnessComponent', 'CorrectionOutcomeWitnessComponent'): + count += len(fields['source_refs']) + _report_require(fields['member_count'] == count) + elif shape == 'GraphWitnessComponent': + count = int(fields['target'] is not None) + for name in ('nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals', + 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations'): + port.charge(2) + count += len(fields[name]) + _report_require(fields['member_count'] == count) + elif shape == 'AuditReport': + _report_root(fields, port) + port.check() + + +# Fixed SIT-RP-0.1 grammar, authored alongside schemas/report/sit-report-0.1.schema.json. +# This declaration is inert data. Runtime never locates, reads or evaluates a schema file. +_REPORT_SHAPES = { + 'Identifier': {'type': 'string', 'minLength': 1, 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]*$', 'not': {'pattern': '[^A-Za-z0-9._:-]'}, 'maxLength': 128}, + 'TimeValue': {'type': 'object', 'properties': {'state': {'$ref': '#/$defs/enum_time_state'}, 'value': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'anyOf': [{'$ref': '#/$defs/enum_precision'}, {'type': 'null'}]}, 'reason': {'type': 'string'}}, 'additionalProperties': False, 'required': ['state', 'value', 'precision'], 'allOf': [{'if': {'required': ['state'], 'properties': {'state': {'const': 'known'}}}, 'then': {'properties': {'value': {'type': 'string'}, 'precision': {'$ref': '#/$defs/enum_precision'}}}, 'else': {'required': ['reason'], 'properties': {'value': {'type': 'null'}, 'precision': {'type': 'null'}, 'reason': {'type': 'string', 'minLength': 1}}}}]}, + 'TimeWindow': {'type': 'object', 'properties': {'start': {'$ref': '#/$defs/TimeValue'}, 'end': {'$ref': '#/$defs/TimeValue'}, 'note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['start', 'end']}, + 'Predecessor': {'type': 'object', 'properties': {'bundle_id': {'$ref': '#/$defs/Identifier'}, 'snapshot_id': {'$ref': '#/$defs/Identifier'}}, 'additionalProperties': False, 'required': ['bundle_id', 'snapshot_id']}, + 'enum_time_state': {'type': 'string', 'enum': ['known', 'unknown', 'withheld', 'not_applicable']}, + 'enum_precision': {'type': 'string', 'enum': ['date', 'instant']}, + 'DiagnosticId': {'type': 'string', 'enum': ['SIT-M001', 'SIT-M002', 'SIT-M003', 'SIT-M004', 'SIT-M005', 'SIT-M006', 'SIT-M007', 'SIT-M008', 'SIT-M009', 'SIT-M010', 'SIT-M011', 'SIT-M012', 'SIT-M013', 'SIT-M014', 'SIT-M015']}, + 'ReasonCode': {'type': 'string', 'enum': ['no_seed_contributions', 'zero_denominator', 'missing_comparison_assessment', 'scope_unestablished', 'dimension_not_selected', 'unknown_endpoint', 'upstream_coverage_incomplete', 'unqualified_origin_boundary', 'baseline_or_scope_cut', 'declared_origin_only', 'multi_origin_unallocated', 'identity_unresolved', 'premise_disputed', 'lineage_cycle', 'support_uninspectable', 'documentary_basis_incomplete', 'self_supporting_assurance', 'time_applicability_unknown', 'temporal_inconsistency', 'roles_incomplete', 'externality_unestablished', 'cohort_anchor_missing', 'cohort_anchor_ambiguous', 'cohort_universe_unestablished', 'stage_classification_unresolved', 'transition_baseline_unestablished', 'route_not_recorded', 'authority_unestablished', 'authority_inapplicable', 'change_evidence_missing', 'before_after_unresolved', 'context_withheld_or_unavailable', 'no_applicable_subject', 'outside_v01', 'analysis_not_selected', 'resource_limit_reached', 'execution_failed', 'input_not_accepted', 'completion_interval_not_needed', 'comparison_scope_mismatch']}, + 'ResultOrigin': {'type': 'string', 'enum': ['inventory', 'graph_derivation', 'attributed_record', 'qualification_check']}, + 'ValueKind': {'type': 'string', 'enum': ['count', 'fraction', 'completion_interval', 'partition', 'incidence', 'record_disclosures', 'witness_collection']}, + 'CheckState': {'type': 'string', 'enum': ['met', 'unmet', 'unknown', 'not_applicable']}, + 'ReasonClassification': {'type': 'string', 'enum': ['evidence_gap', 'conflict', 'structural_inapplicability', 'release_boundary', 'execution']}, + 'DependencyDimension': {'type': 'string', 'enum': ['acquisition', 'analytical_method', 'model_ancestry', 'evaluation_rubric', 'organizational_control']}, + 'GraphView': {'type': 'string', 'enum': ['citation', 'material_transformation', 'claim_origin', 'model_evaluation', 'organizational', 'stance_contestation', 'correction_routing', 'correction_outcomes', 'pipeline_stages', 'assertion_assurance', 'succession']}, + 'PopulationUnit': {'type': 'string', 'enum': ['artifact_record', 'locator', 'actor_record', 'evidence_item', 'origin_event', 'relation_assertion', 'witness_path', 'comparison_member', 'unresolved_reference', 'frontier_occurrence', 'evaluation', 'correction_case', 'correction_change_record', 'pipeline_record', 'pipeline_member', 'case_target', 'record', 'evidence_reference', 'family_label', 'handling_event']}, + 'BasisKind': {'type': 'string', 'enum': ['declaration', 'documented_record', 'upstream_inference', 'protected_attestation', 'unspecified']}, + 'Availability': {'type': 'string', 'enum': ['supplied', 'locator_only', 'withheld', 'unavailable']}, + 'ScopeId': {'type': 'string', 'pattern': '^SIT-SCP-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-SCP-0+$'}]}}, + 'PopulationId': {'type': 'string', 'pattern': '^SIT-POP-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-POP-0+$'}]}}, + 'BasisId': {'type': 'string', 'pattern': '^SIT-BAS-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-BAS-0+$'}]}}, + 'CapabilityId': {'type': 'string', 'pattern': '^SIT-CAP-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-CAP-0+$'}]}}, + 'CheckId': {'type': 'string', 'pattern': '^SIT-CHK-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-CHK-0+$'}]}}, + 'ResultId': {'type': 'string', 'pattern': '^SIT-RES-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-RES-0+$'}]}}, + 'FindingId': {'type': 'string', 'pattern': '^SIT-FND-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-FND-0+$'}]}}, + 'ReasonId': {'type': 'string', 'pattern': '^SIT-RSN-[0-9]{6,}$', 'not': {'anyOf': [{'pattern': '[^A-Z0-9-]'}, {'pattern': '^SIT-RSN-0+$'}]}}, + 'InputRef': {'type': 'object', 'properties': {'collection': {'type': 'string', 'enum': ['inquiries', 'records', 'assertions', 'evidence_references']}, 'identifier': {'$ref': '#/$defs/Identifier'}, 'selector': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}}, 'additionalProperties': False, 'required': ['collection', 'identifier', 'selector']}, + 'InquiryRef': {'allOf': [{'$ref': '#/$defs/InputRef'}, {'properties': {'collection': {'const': 'inquiries'}}}]}, + 'RecordRef': {'allOf': [{'$ref': '#/$defs/InputRef'}, {'properties': {'collection': {'const': 'records'}}}]}, + 'AssertionRef': {'allOf': [{'$ref': '#/$defs/InputRef'}, {'properties': {'collection': {'const': 'assertions'}}}]}, + 'EvidenceRef': {'allOf': [{'$ref': '#/$defs/InputRef'}, {'properties': {'collection': {'const': 'evidence_references'}}}]}, + 'CaseTarget': {'type': 'object', 'properties': {'case_ref': {'$ref': '#/$defs/RecordRef'}, 'before_ref': {'anyOf': [{'$ref': '#/$defs/RecordRef'}, {'$ref': '#/$defs/AssertionRef'}]}}, 'additionalProperties': False, 'required': ['case_ref', 'before_ref']}, + 'PopulationMember': {'anyOf': [{'$ref': '#/$defs/InputRef'}, {'$ref': '#/$defs/CaseTarget'}]}, + 'Scope': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/ScopeId'}, 'inquiry_ref': {'allOf': [{'$ref': '#/$defs/InquiryRef'}, {'properties': {'selector': {'type': 'null'}}}]}, 'claim_refs': {'type': 'array', 'items': {'allOf': [{'$ref': '#/$defs/RecordRef'}, {'properties': {'selector': {'type': 'null'}}}]}, 'uniqueItems': True}, 'target_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'dependency_dimension': {'anyOf': [{'$ref': '#/$defs/DependencyDimension'}, {'type': 'null'}]}, 'graph_view': {'anyOf': [{'$ref': '#/$defs/GraphView'}, {'type': 'null'}]}, 'temporal_basis': {'type': 'string', 'enum': ['snapshot_structural', 'time_specific']}, 'requested_time': {'anyOf': [{'$ref': '#/$defs/TimeValue'}, {'type': 'null'}]}, 'coverage_refs': {'type': 'array', 'items': {'$ref': '#/$defs/AssertionRef'}, 'uniqueItems': True}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['id', 'inquiry_ref', 'claim_refs', 'target_refs', 'dependency_dimension', 'graph_view', 'temporal_basis', 'requested_time', 'coverage_refs', 'qualifications'], 'allOf': [{'if': {'required': ['temporal_basis'], 'properties': {'temporal_basis': {'const': 'time_specific'}}}, 'then': {'properties': {'requested_time': {'$ref': '#/$defs/TimeValue'}}}}]}, + 'Population': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/PopulationId'}, 'scope_ref': {'$ref': '#/$defs/ScopeId'}, 'unit': {'$ref': '#/$defs/PopulationUnit'}, 'member_refs': {'type': 'array', 'items': {'$ref': '#/$defs/PopulationMember'}, 'uniqueItems': True}, 'selection_rule': {'type': 'string', 'minLength': 1}, 'coverage_refs': {'type': 'array', 'items': {'$ref': '#/$defs/AssertionRef'}, 'uniqueItems': True}, 'basis_refs': {'type': 'array', 'items': {'$ref': '#/$defs/BasisId'}, 'uniqueItems': True}, 'membership_state': {'type': 'string', 'enum': ['enumerated_for_scope', 'unestablished']}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['id', 'scope_ref', 'unit', 'member_refs', 'selection_rule', 'coverage_refs', 'basis_refs', 'membership_state', 'qualifications'], 'allOf': [{'if': {'required': ['unit'], 'properties': {'unit': {'const': 'case_target'}}}, 'then': {'properties': {'member_refs': {'type': 'array', 'items': {'$ref': '#/$defs/CaseTarget'}, 'uniqueItems': True}}}, 'else': {'properties': {'member_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}}}}]}, + 'BasisScope': {'type': 'object', 'properties': {'inquiry_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InquiryRef'}, 'uniqueItems': True, 'minItems': 1}, 'claim_refs': {'type': 'array', 'items': {'$ref': '#/$defs/RecordRef'}, 'uniqueItems': True}, 'effective_window': {'$ref': '#/$defs/TimeWindow'}}, 'additionalProperties': False, 'required': ['inquiry_refs', 'claim_refs', 'effective_window']}, + 'BasisTime': {'type': 'object', 'properties': {'asserted_at': {'$ref': '#/$defs/TimeValue'}, 'occurred_at': {'$ref': '#/$defs/TimeValue'}, 'observed_at': {'$ref': '#/$defs/TimeValue'}, 'published_at': {'$ref': '#/$defs/TimeValue'}, 'retrieved_at': {'$ref': '#/$defs/TimeValue'}, 'as_of': {'$ref': '#/$defs/TimeValue'}, 'valid_window': {'$ref': '#/$defs/TimeWindow'}, 'time_window': {'$ref': '#/$defs/TimeWindow'}}, 'additionalProperties': False, 'required': []}, + 'Lifecycle': {'type': 'object', 'properties': {'state': {'type': 'string', 'enum': ['active', 'withdrawn', 'superseded']}, 'basis_refs': {'type': 'array', 'items': {'$ref': '#/$defs/EvidenceRef'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['state', 'basis_refs']}, + 'BasisEntry': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/BasisId'}, 'source': {'$ref': '#/$defs/InputRef'}, 'basis_kind': {'anyOf': [{'$ref': '#/$defs/BasisKind'}, {'type': 'null'}]}, 'asserter_ref': {'anyOf': [{'$ref': '#/$defs/RecordRef'}, {'type': 'null'}]}, 'attestor_ref': {'anyOf': [{'$ref': '#/$defs/RecordRef'}, {'type': 'null'}]}, 'method': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'support_refs': {'type': 'array', 'items': {'$ref': '#/$defs/EvidenceRef'}, 'uniqueItems': True}, 'availability': {'anyOf': [{'$ref': '#/$defs/Availability'}, {'type': 'null'}]}, 'scope': {'anyOf': [{'$ref': '#/$defs/BasisScope'}, {'type': 'null'}]}, 'time': {'$ref': '#/$defs/BasisTime'}, 'lifecycle': {'anyOf': [{'$ref': '#/$defs/Lifecycle'}, {'type': 'null'}]}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}, 'check_refs': {'type': 'array', 'items': {'$ref': '#/$defs/CheckId'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['id', 'source', 'basis_kind', 'asserter_ref', 'attestor_ref', 'method', 'support_refs', 'availability', 'scope', 'time', 'lifecycle', 'qualifications', 'check_refs']}, + 'Capability': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/CapabilityId'}, 'diagnostic_id': {'$ref': '#/$defs/DiagnosticId'}, 'inquiry_ref': {'allOf': [{'$ref': '#/$defs/InquiryRef'}, {'properties': {'selector': {'type': 'null'}}}]}, 'scope_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ScopeId'}, 'uniqueItems': True}, 'check_refs': {'type': 'array', 'items': {'$ref': '#/$defs/CheckId'}, 'uniqueItems': True}, 'result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'available_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'unavailable_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'not_applicable_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'not_evaluated_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True}, 'scope_note': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['id', 'diagnostic_id', 'inquiry_ref', 'scope_refs', 'check_refs', 'result_refs', 'available_result_refs', 'unavailable_result_refs', 'not_applicable_result_refs', 'not_evaluated_result_refs', 'reason_refs', 'scope_note']}, + 'PrerequisiteCheck': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/CheckId'}, 'check_id': {'type': 'string', 'enum': ['PC01', 'PC02', 'PC03', 'PC04', 'PC05', 'PC06', 'PC07', 'PC08', 'PC09', 'PC10', 'PC11', 'PC12', 'PC13', 'PC14', 'PC15', 'PC16', 'PC17', 'PC18', 'PC19', 'PC20', 'PC21', 'PC22', 'PC23', 'PC24']}, 'scope_ref': {'$ref': '#/$defs/ScopeId'}, 'state': {'$ref': '#/$defs/CheckState'}, 'input_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True}, 'note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['id', 'check_id', 'scope_ref', 'state', 'input_refs', 'reason_refs', 'note']}, + 'ObservabilityDomain': {'type': 'object', 'properties': {'level_index': {'type': 'integer', 'minimum': 0, 'maximum': 4}, 'label': {'type': 'string', 'enum': ['Artifact and contribution inventory', 'Declared provenance and process metadata', 'Origin-resolution and scoped process-assessment evidence', 'Evaluator, correction-route and authority evidence', 'Boundary-qualified external input, stage histories and documented correction outcomes']}, 'available_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'unavailable_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'not_evaluated_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['level_index', 'label', 'available_result_refs', 'unavailable_result_refs', 'not_evaluated_result_refs', 'reason_refs'], 'allOf': [{'if': {'required': ['level_index'], 'properties': {'level_index': {'const': 0}}}, 'then': {'properties': {'label': {'const': 'Artifact and contribution inventory'}}}}, {'if': {'required': ['level_index'], 'properties': {'level_index': {'const': 1}}}, 'then': {'properties': {'label': {'const': 'Declared provenance and process metadata'}}}}, {'if': {'required': ['level_index'], 'properties': {'level_index': {'const': 2}}}, 'then': {'properties': {'label': {'const': 'Origin-resolution and scoped process-assessment evidence'}}}}, {'if': {'required': ['level_index'], 'properties': {'level_index': {'const': 3}}}, 'then': {'properties': {'label': {'const': 'Evaluator, correction-route and authority evidence'}}}}, {'if': {'required': ['level_index'], 'properties': {'level_index': {'const': 4}}}, 'then': {'properties': {'label': {'const': 'Boundary-qualified external input, stage histories and documented correction outcomes'}}}}]}, + 'Reason': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/ReasonId'}, 'code': {'$ref': '#/$defs/ReasonCode'}, 'scope_ref': {'anyOf': [{'$ref': '#/$defs/ScopeId'}, {'type': 'null'}]}, 'affected_result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ResultId'}, 'uniqueItems': True}, 'input_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'detail': {'type': 'string', 'minLength': 1}, 'classification': {'$ref': '#/$defs/ReasonClassification'}}, 'additionalProperties': False, 'required': ['id', 'code', 'scope_ref', 'affected_result_refs', 'input_refs', 'detail', 'classification']}, + 'Fraction': {'type': 'object', 'properties': {'numerator': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}, 'denominator': {'type': 'integer', 'minimum': 1, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['numerator', 'denominator']}, + 'PartitionCategory': {'type': 'object', 'properties': {'label': {'type': 'string', 'minLength': 1}, 'member_refs': {'type': 'array', 'items': {'$ref': '#/$defs/PopulationMember'}, 'uniqueItems': True}, 'count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['label', 'member_refs', 'count']}, + 'Partition': {'type': 'object', 'properties': {'population_ref': {'$ref': '#/$defs/PopulationId'}, 'categories': {'type': 'array', 'items': {'$ref': '#/$defs/PartitionCategory'}}, 'total': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['population_ref', 'categories', 'total']}, + 'CompletionInterval': {'type': 'object', 'properties': {'lower': {'$ref': '#/$defs/Fraction'}, 'upper': {'$ref': '#/$defs/Fraction'}, 'interval_kind': {'type': 'string', 'enum': ['finite_record_completion', 'finite_cohort_completion']}, 'population_ref': {'$ref': '#/$defs/PopulationId'}, 'partition': {'$ref': '#/$defs/Partition'}}, 'additionalProperties': False, 'required': ['lower', 'upper', 'interval_kind', 'population_ref', 'partition']}, + 'IncidenceMembership': {'type': 'object', 'properties': {'member_ref': {'$ref': '#/$defs/InputRef'}, 'origin_refs': {'type': 'array', 'items': {'$ref': '#/$defs/RecordRef'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['member_ref', 'origin_refs']}, + 'OriginIncidenceCount': {'type': 'object', 'properties': {'origin_ref': {'$ref': '#/$defs/RecordRef'}, 'member_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['origin_ref', 'member_refs', 'count']}, + 'Incidence': {'type': 'object', 'properties': {'population_ref': {'$ref': '#/$defs/PopulationId'}, 'memberships': {'type': 'array', 'items': {'$ref': '#/$defs/IncidenceMembership'}}, 'origin_counts': {'type': 'array', 'items': {'$ref': '#/$defs/OriginIncidenceCount'}}, 'total': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}, 'nonexclusive': {'const': True}}, 'additionalProperties': False, 'required': ['population_ref', 'memberships', 'origin_counts', 'total', 'nonexclusive']}, + 'WitnessCollection': {'type': 'object', 'properties': {'witness_refs': {'type': 'array', 'items': {'$ref': '#/$defs/FindingId'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['witness_refs']}, + 'RecordDisclosures': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'$ref': '#/$defs/Disclosure'}}}, 'additionalProperties': False, 'required': ['records']}, + 'Result': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/ResultId'}, 'diagnostic_id': {'$ref': '#/$defs/DiagnosticId'}, 'field_key': {'type': 'string', 'enum': ['nominal_seed_artifact_record_count', 'unresolved_seed_artifact_reference_count', 'seed_evidence_item_count', 'claim_artifact_record_count', 'claim_unassigned_seed_artifact_record_count', 'reached_origin_record_count', 'documentary_origin_boundary_record_count', 'origin_boundary_disclosures', 'submitted_comparison_member_count', 'qualified_process_set_member_count', 'qualified_origin_set_member_count', 'independence_assessment_disclosures', 'per_seed_origin_memberships', 'origin_incidence_counts', 'seed_origin_dispositions', 'documentary_origin_resolution_fraction', 'single_origin_contribution_hhi', 'immediate_evidence_layer_dispositions', 'inherited_only_seed_fraction', 'inherited_only_completion_interval', 'unresolved_frontier_reference_count', 'unqualified_terminal_record_count', 'seed_items_with_unresolved_ancestry_count', 'ancestry_gap_disclosures', 'shared_recorded_ancestor_count', 'matching_family_label_count', 'evaluator_overlap_disclosures', 'evaluator_overlap_witnesses', 'externality_assessment_disclosures', 'externality_stage_links', 'pipeline_stage_disclosures', 'stage_member_partition', 'stage_occurrence_fraction', 'stage_occurrence_completion_interval', 'cohort_transition_disclosures', 'cohort_transition_fraction', 'cohort_transition_completion_interval', 'declared_correction_route_witnesses', 'applicable_authorized_route_witnesses', 'correction_route_disclosures', 'correction_case_record_count', 'handling_event_record_count', 'linked_change_event_record_count', 'documentary_linked_change_target_count', 'cases_with_documentary_linked_change_count', 'correction_case_disclosures', 'correction_target_change_disclosures', 'reported_capacity_disclosures', 'corrective_independence_disclosures', 'human_contribution_disclosures', 'anomaly_context_disclosures', 'contestation_disclosures', 'tail_stage_result_links', 'coverage_disclosures', 'documentary_basis_gap_disclosures', 'declared_basis_inventory', 'reference_availability_inventory']}, 'scope_ref': {'$ref': '#/$defs/ScopeId'}, 'population_refs': {'type': 'array', 'items': {'$ref': '#/$defs/PopulationId'}, 'uniqueItems': True}, 'execution_state': {'type': 'string', 'enum': ['completed', 'not_performed', 'interrupted', 'failed']}, 'result_state': {'type': 'string', 'enum': ['available', 'unavailable', 'not_applicable', 'not_evaluated']}, 'result_origin': {'$ref': '#/$defs/ResultOrigin'}, 'value_kind': {'$ref': '#/$defs/ValueKind'}, 'value': {'anyOf': [{'type': 'null'}, {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}, {'$ref': '#/$defs/Fraction'}, {'$ref': '#/$defs/CompletionInterval'}, {'$ref': '#/$defs/Partition'}, {'$ref': '#/$defs/Incidence'}, {'$ref': '#/$defs/RecordDisclosures'}, {'$ref': '#/$defs/WitnessCollection'}]}, 'check_refs': {'type': 'array', 'items': {'$ref': '#/$defs/CheckId'}, 'uniqueItems': True}, 'basis_refs': {'type': 'array', 'items': {'$ref': '#/$defs/BasisId'}, 'uniqueItems': True}, 'witness_refs': {'type': 'array', 'items': {'$ref': '#/$defs/FindingId'}, 'uniqueItems': True}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True}, 'interpretation_limit': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['id', 'diagnostic_id', 'field_key', 'scope_ref', 'population_refs', 'execution_state', 'result_state', 'result_origin', 'value_kind', 'value', 'check_refs', 'basis_refs', 'witness_refs', 'reason_refs', 'interpretation_limit'], 'allOf': [{'anyOf': [{'properties': {'execution_state': {'const': 'completed'}, 'result_state': {'const': 'available'}}}, {'properties': {'execution_state': {'const': 'completed'}, 'result_state': {'const': 'unavailable'}}}, {'properties': {'execution_state': {'const': 'completed'}, 'result_state': {'const': 'not_applicable'}}}, {'properties': {'execution_state': {'const': 'not_performed'}, 'result_state': {'const': 'not_evaluated'}}}, {'properties': {'execution_state': {'const': 'interrupted'}, 'result_state': {'const': 'not_evaluated'}}}, {'properties': {'execution_state': {'const': 'failed'}, 'result_state': {'const': 'not_evaluated'}}}]}, {'if': {'required': ['result_state'], 'properties': {'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'not': {'type': 'null'}}}}, 'else': {'properties': {'value': {'type': 'null'}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True, 'minItems': 1}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'nominal_seed_artifact_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M001'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'unresolved_seed_artifact_reference_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M001'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'seed_evidence_item_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M001'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'claim_artifact_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M001'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'claim_unassigned_seed_artifact_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M001'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'reached_origin_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M002'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'documentary_origin_boundary_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M002'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'origin_boundary_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M002'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'submitted_comparison_member_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M003'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'qualified_process_set_member_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M003'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'qualified_origin_set_member_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M003'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'independence_assessment_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M003'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'per_seed_origin_memberships'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M004'}, 'value_kind': {'const': 'incidence'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'origin_incidence_counts'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M004'}, 'value_kind': {'const': 'incidence'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'seed_origin_dispositions'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M004'}, 'value_kind': {'const': 'partition'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'documentary_origin_resolution_fraction'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M004'}, 'value_kind': {'const': 'fraction'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'single_origin_contribution_hhi'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M005'}, 'value_kind': {'const': 'fraction'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'immediate_evidence_layer_dispositions'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M006'}, 'value_kind': {'const': 'partition'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'inherited_only_seed_fraction'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M006'}, 'value_kind': {'const': 'fraction'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'inherited_only_completion_interval'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M006'}, 'value_kind': {'const': 'completion_interval'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'unresolved_frontier_reference_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M007'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'unqualified_terminal_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M007'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'seed_items_with_unresolved_ancestry_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M007'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'ancestry_gap_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M007'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'shared_recorded_ancestor_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M008'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'matching_family_label_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M008'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'evaluator_overlap_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M008'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'evaluator_overlap_witnesses'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M008'}, 'value_kind': {'const': 'witness_collection'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'externality_assessment_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M009'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'externality_stage_links'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M009'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'pipeline_stage_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'stage_member_partition'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'partition'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'stage_occurrence_fraction'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'fraction'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'stage_occurrence_completion_interval'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'completion_interval'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'cohort_transition_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'cohort_transition_fraction'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'fraction'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'cohort_transition_completion_interval'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M010'}, 'value_kind': {'const': 'completion_interval'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'declared_correction_route_witnesses'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M011'}, 'value_kind': {'const': 'witness_collection'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'applicable_authorized_route_witnesses'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M011'}, 'value_kind': {'const': 'witness_collection'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'correction_route_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M011'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'correction_case_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'handling_event_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'linked_change_event_record_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'documentary_linked_change_target_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'cases_with_documentary_linked_change_count'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'count'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'correction_case_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'correction_target_change_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'reported_capacity_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M012'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'corrective_independence_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M013'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'human_contribution_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M013'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'anomaly_context_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M014'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'contestation_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M014'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'tail_stage_result_links'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M014'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'coverage_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M015'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'documentary_basis_gap_disclosures'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M015'}, 'value_kind': {'const': 'record_disclosures'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'declared_basis_inventory'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M015'}, 'value_kind': {'const': 'partition'}}}}, {'if': {'required': ['field_key'], 'properties': {'field_key': {'const': 'reference_availability_inventory'}}}, 'then': {'properties': {'diagnostic_id': {'const': 'SIT-M015'}, 'value_kind': {'const': 'partition'}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'count'}}}, 'then': {'properties': {'value': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'fraction'}}}, 'then': {'properties': {'value': {'$ref': '#/$defs/Fraction'}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'completion_interval'}}}, 'then': {'properties': {'value': {'$ref': '#/$defs/CompletionInterval'}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'partition'}}}, 'then': {'properties': {'value': {'$ref': '#/$defs/Partition'}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'incidence'}}}, 'then': {'properties': {'value': {'$ref': '#/$defs/Incidence'}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'record_disclosures'}}}, 'then': {'properties': {'value': {'$ref': '#/$defs/RecordDisclosures'}}}}, {'if': {'required': ['result_state', 'value_kind'], 'properties': {'result_state': {'const': 'available'}, 'value_kind': {'const': 'witness_collection'}}}, 'then': {'properties': {'value': {'$ref': '#/$defs/WitnessCollection'}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'origin_boundary_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/OriginBoundaryFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'coverage_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/CoverageFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'documentary_basis_gap_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/DocumentaryBasisGapFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'independence_assessment_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/IndependenceAssessmentFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'ancestry_gap_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/AncestryGapFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'evaluator_overlap_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/EvaluatorOverlapFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'externality_assessment_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/ExternalityAssessmentFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'pipeline_stage_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/PipelineStageFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'externality_stage_links'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/ExternalityStageFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'cohort_transition_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/CohortTransitionFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'correction_route_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/CorrectionRouteFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'correction_case_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/CorrectionCaseFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'correction_target_change_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/CorrectionTargetChangeFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'reported_capacity_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/ReportedCapacityFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'human_contribution_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/HumanContributionFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'corrective_independence_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/CorrectiveIndependenceFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'anomaly_context_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/AnomalyContextFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'contestation_disclosures'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'fields': {'$ref': '#/$defs/ContestationFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}, {'if': {'required': ['field_key', 'result_state'], 'properties': {'field_key': {'const': 'tail_stage_result_links'}, 'result_state': {'const': 'available'}}}, 'then': {'properties': {'value': {'type': 'object', 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/ResultId'}, 'fields': {'$ref': '#/$defs/TailStageResultLinkFields'}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}}}, 'additionalProperties': False, 'required': ['records']}}}}]}, + 'Diagnostic': {'type': 'object', 'properties': {'code': {'type': 'string', 'enum': ['invalid_syntax', 'duplicate_key', 'unsupported_input_contract', 'duplicate_identifier', 'dangling_reference', 'type_or_enum_violation', 'missing_required_field', 'endpoint_or_claim_mismatch', 'invalid_time', 'input_constraint_violation', 'resource_limit_reached', 'execution_failed']}, 'location': {'type': 'null'}, 'safe_message': {'type': 'string', 'minLength': 1}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['code', 'location', 'safe_message', 'qualifications']}, + 'RunTime': {'const': {'state': 'unknown', 'value': None, 'precision': None, 'reason': 'not_recorded_by_SIT-RP-0.1'}}, + 'Run': {'type': 'object', 'properties': {'processing_state': {'type': 'string', 'enum': ['completed', 'interrupted', 'rejected', 'failed']}, 'tool_name': {'const': 'Source Integrity Toolkit'}, 'tool_version': {'const': '0.1.0.dev0'}, 'input_contract_version': {'const': 'sit-bundle/0.1'}, 'requested_diagnostic_ids': {'type': 'array', 'items': {'$ref': '#/$defs/DiagnosticId'}, 'uniqueItems': True, 'minItems': 15, 'maxItems': 15}, 'completed_diagnostic_ids': {'type': 'array', 'items': {'$ref': '#/$defs/DiagnosticId'}, 'uniqueItems': True}, 'started_at': {'$ref': '#/$defs/RunTime'}, 'finished_at': {'$ref': '#/$defs/RunTime'}, 'diagnostics': {'type': 'array', 'items': {'$ref': '#/$defs/Diagnostic'}}, 'qualifications': {'const': ['SIT-RP-0.1', 'Wall-clock start and finish times are not recorded by SIT-RP-0.1.']}}, 'additionalProperties': False, 'required': ['processing_state', 'tool_name', 'tool_version', 'input_contract_version', 'requested_diagnostic_ids', 'completed_diagnostic_ids', 'started_at', 'finished_at', 'diagnostics', 'qualifications']}, + 'RawFileDigest': {'type': 'object', 'properties': {'algorithm': {'const': 'sha256'}, 'value': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'not': {'pattern': '[^0-9a-f]'}}, 'covered_material': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['algorithm', 'value', 'covered_material']}, + 'InputIdentity': {'type': 'object', 'properties': {'source_mode': {'type': 'string', 'enum': ['local_file', 'in_process']}, 'input_contract_version': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'bundle_id': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'snapshot_id': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'declared_predecessor': {'anyOf': [{'$ref': '#/$defs/Predecessor'}, {'type': 'null'}]}, 'raw_file_digest': {'anyOf': [{'$ref': '#/$defs/RawFileDigest'}, {'type': 'null'}]}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source_mode', 'input_contract_version', 'bundle_id', 'snapshot_id', 'declared_predecessor', 'raw_file_digest', 'qualifications'], 'allOf': [{'if': {'required': ['source_mode'], 'properties': {'source_mode': {'const': 'in_process'}}}, 'then': {'properties': {'raw_file_digest': {'type': 'null'}}}}]}, + 'InputValidation': {'type': 'object', 'properties': {'state': {'type': 'string', 'enum': ['accepted', 'rejected', 'not_completed']}, 'diagnostics': {'type': 'array', 'items': {'$ref': '#/$defs/Diagnostic'}}}, 'additionalProperties': False, 'required': ['state', 'diagnostics']}, + 'AuditReport': {'type': 'object', 'properties': {'contract_version': {'const': 'sit-report/0.1'}, 'report_kind': {'type': 'string', 'enum': ['audit_report', 'validation_diagnostics', 'processing_diagnostics']}, 'report_id': {'const': 'SIT-RPT-000001'}, 'run': {'$ref': '#/$defs/Run'}, 'input_identity': {'$ref': '#/$defs/InputIdentity'}, 'input_validation': {'$ref': '#/$defs/InputValidation'}, 'scopes': {'type': 'array', 'items': {'$ref': '#/$defs/Scope'}}, 'populations': {'type': 'array', 'items': {'$ref': '#/$defs/Population'}}, 'basis_index': {'type': 'array', 'items': {'$ref': '#/$defs/BasisEntry'}}, 'capabilities': {'type': 'array', 'items': {'$ref': '#/$defs/Capability'}}, 'checks': {'type': 'array', 'items': {'$ref': '#/$defs/PrerequisiteCheck'}}, 'observability_domains': {'type': 'array', 'items': {'$ref': '#/$defs/ObservabilityDomain'}}, 'results': {'type': 'array', 'items': {'$ref': '#/$defs/Result'}}, 'findings': {'type': 'array', 'items': {'$ref': '#/$defs/Finding'}}, 'reasons': {'type': 'array', 'items': {'$ref': '#/$defs/Reason'}}, 'release_limits': {'const': ['Offline analysis of caller-supplied records only.', 'Source identity, authenticity and external events are not independently authenticated.', 'No live monitoring or active content-level poisoning, injection or authorship detection was performed.', 'No universal truth, integrity, independence or safety score is produced.', 'No automatic intervention, source contact or changes to the audited system are performed.', 'Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence.']}}, 'additionalProperties': False, 'required': ['contract_version', 'report_kind', 'report_id', 'run', 'input_identity', 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', 'checks', 'observability_domains', 'results', 'findings', 'reasons', 'release_limits'], 'allOf': [{'anyOf': [{'properties': {'report_kind': {'const': 'audit_report'}, 'run': {'properties': {'processing_state': {'const': 'completed'}}}, 'input_validation': {'properties': {'state': {'const': 'accepted'}}}}}, {'properties': {'report_kind': {'const': 'audit_report'}, 'run': {'properties': {'processing_state': {'const': 'interrupted'}}}, 'input_validation': {'properties': {'state': {'const': 'accepted'}}}}}, {'properties': {'report_kind': {'const': 'validation_diagnostics'}, 'run': {'properties': {'processing_state': {'const': 'rejected'}}}, 'input_validation': {'properties': {'state': {'const': 'rejected'}}}}}, {'properties': {'report_kind': {'const': 'processing_diagnostics'}, 'run': {'properties': {'processing_state': {'const': 'interrupted'}}}, 'input_validation': {'properties': {'state': {'const': 'not_completed'}}}}}, {'properties': {'report_kind': {'const': 'processing_diagnostics'}, 'run': {'properties': {'processing_state': {'const': 'failed'}}}, 'input_validation': {'properties': {'state': {'const': 'accepted'}}}}}, {'properties': {'report_kind': {'const': 'processing_diagnostics'}, 'run': {'properties': {'processing_state': {'const': 'failed'}}}, 'input_validation': {'properties': {'state': {'const': 'not_completed'}}}}}]}, {'if': {'required': ['report_kind'], 'properties': {'report_kind': {'const': 'audit_report'}}}, 'then': {'properties': {'observability_domains': {'minItems': 5, 'maxItems': 5}}}, 'else': {'properties': {'scopes': {'maxItems': 0}, 'populations': {'maxItems': 0}, 'basis_index': {'maxItems': 0}, 'capabilities': {'maxItems': 0}, 'checks': {'maxItems': 0}, 'observability_domains': {'maxItems': 0}, 'results': {'maxItems': 0}, 'findings': {'maxItems': 0}}}}]}, + 'SelectedProvenance': {'type': 'object', 'properties': {'attributed_to_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'basis_kind': {'$ref': '#/$defs/enum_basis_kind'}, 'evidence_ref_ids': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'method': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['attributed_to_ref', 'basis_kind', 'evidence_ref_ids', 'method', 'qualifications']}, + 'SelectedGap': {'type': 'object', 'properties': {'field': {'type': 'string'}, 'reason': {'$ref': '#/$defs/enum_gap_reason'}, 'detail': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['field', 'reason', 'detail']}, + 'SelectedEvidenceReference': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/Identifier'}, 'reference_kind': {'$ref': '#/$defs/enum_reference_kind'}, 'availability': {'$ref': '#/$defs/enum_availability'}, 'artifact_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'record_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'provided_by_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'attestor_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'scope_note': {'type': 'string', 'minLength': 1}, 'gaps': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedGap'}}}, 'additionalProperties': False, 'required': ['id', 'reference_kind', 'availability', 'artifact_ref', 'record_ref', 'provided_by_ref', 'attestor_ref', 'scope_note']}, + 'SelectedInquiry': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/Identifier'}, 'target_claim_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'minItems': 1, 'uniqueItems': True}, 'target_object_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'seed_artifact_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'seed_evidence_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'boundary': {'$ref': '#/$defs/SelectedBoundary'}, 'time_window': {'$ref': '#/$defs/TimeWindow'}, 'as_of': {'$ref': '#/$defs/TimeValue'}, 'dependency_dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/enum_dimension'}}, 'coverage_assertion_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'provenance': {'$ref': '#/$defs/SelectedProvenance'}, 'gaps': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedGap'}}}, 'additionalProperties': False, 'required': ['id', 'target_claim_refs', 'target_object_refs', 'seed_artifact_refs', 'seed_evidence_refs', 'boundary', 'time_window', 'as_of', 'dependency_dimensions', 'coverage_assertion_refs', 'provenance']}, + 'SelectedBoundary': {'type': 'object', 'properties': {'description': {'type': 'string', 'minLength': 1}, 'criterion': {'type': 'string', 'minLength': 1}, 'system_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['description', 'criterion', 'system_refs']}, + 'SelectedRecord': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/Identifier'}, 'kind': {'$ref': '#/$defs/enum_record_kind'}, 'data': {'$ref': '#/$defs/SelectedRecordData'}, 'provenance': {'$ref': '#/$defs/SelectedProvenance'}, 'gaps': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedGap'}}}, 'additionalProperties': False, 'required': ['id', 'kind', 'data', 'provenance'], 'allOf': [{'if': {'required': ['kind'], 'properties': {'kind': {'const': 'claim'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedClaimData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'artifact'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedArtifactData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'actor'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedActorData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'evidence_item'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedEvidenceItemData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'origin_event'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedOriginEventData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'model'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedModelData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'evaluation'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedEvaluationData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'correction_channel'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedCorrectionChannelData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'correction_event'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedCorrectionEventData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'pipeline_record'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedPipelineRecordData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'anomaly'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedAnomalyData'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'unresolved_reference'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedUnresolvedReferenceData'}}}}]}, + 'SelectedClaimData': {'type': 'object', 'properties': {'claim_key': {'type': 'string'}, 'version_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content_evidence_ref': {'$ref': '#/$defs/Identifier'}, 'context': {'type': 'string'}}, 'additionalProperties': False, 'required': ['claim_key', 'version_label', 'context']}, + 'SelectedArtifactData': {'type': 'object', 'properties': {'artifact_kind': {'$ref': '#/$defs/enum_artifact_kind'}, 'version_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'published_at': {'$ref': '#/$defs/TimeValue'}, 'retrieved_at': {'$ref': '#/$defs/TimeValue'}, 'content_evidence_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['artifact_kind', 'version_label', 'published_at', 'retrieved_at', 'content_evidence_refs']}, + 'SelectedActorData': {'type': 'object', 'properties': {'actor_kind': {'$ref': '#/$defs/enum_actor_kind'}, 'identity_disclosure': {'$ref': '#/$defs/enum_identity_disclosure'}}, 'additionalProperties': False, 'required': ['actor_kind', 'identity_disclosure']}, + 'SelectedEvidenceItemData': {'type': 'object', 'properties': {'claim_ref': {'$ref': '#/$defs/Identifier'}, 'artifact_ref': {'$ref': '#/$defs/Identifier'}, 'epistemic_type': {'$ref': '#/$defs/enum_epistemic_type'}, 'description': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['claim_ref', 'artifact_ref', 'epistemic_type', 'description']}, + 'SelectedOriginEventData': {'type': 'object', 'properties': {'event_kind': {'$ref': '#/$defs/enum_origin_event_kind'}, 'event_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'performed_by_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'method_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'occurred_at': {'$ref': '#/$defs/TimeValue'}, 'description': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['event_kind', 'event_key', 'performed_by_refs', 'method_ref', 'occurred_at', 'description']}, + 'SelectedModelData': {'type': 'object', 'properties': {'model_key': {'type': 'string'}, 'version_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'family_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'provider_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}}, 'additionalProperties': False, 'required': ['model_key', 'version_label', 'family_label', 'provider_ref']}, + 'SelectedEvaluationData': {'type': 'object', 'properties': {'evaluation_kind': {'$ref': '#/$defs/enum_evaluation_kind'}, 'target_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'minItems': 1, 'uniqueItems': True}, 'role_bindings': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedRoleBinding'}}, 'result_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'occurred_at': {'$ref': '#/$defs/TimeValue'}, 'review_contribution': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False, 'required': ['evaluation_kind', 'target_refs', 'role_bindings', 'result_refs', 'occurred_at', 'review_contribution']}, + 'SelectedRoleBinding': {'type': 'object', 'properties': {'role': {'$ref': '#/$defs/enum_role'}, 'object_ref': {'$ref': '#/$defs/Identifier'}, 'evidence_ref_ids': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['role', 'object_ref', 'evidence_ref_ids', 'qualifications']}, + 'SelectedCorrectionChannelData': {'type': 'object', 'properties': {'owner_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'target_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'declared_action_types': {'type': 'array', 'items': {'$ref': '#/$defs/enum_action'}}, 'valid_window': {'$ref': '#/$defs/TimeWindow'}}, 'additionalProperties': False, 'required': ['owner_refs', 'target_refs', 'declared_action_types', 'valid_window']}, + 'SelectedCorrectionEventData': {'type': 'object', 'properties': {'event_kind': {'$ref': '#/$defs/enum_correction_event_kind'}, 'case_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'channel_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'target_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'minItems': 1, 'uniqueItems': True}, 'occurred_at': {'$ref': '#/$defs/TimeValue'}, 'details': {'$ref': '#/$defs/SelectedCorrectionDetails'}}, 'additionalProperties': False, 'required': ['event_kind', 'case_ref', 'channel_ref', 'target_refs', 'occurred_at', 'details'], 'allOf': [{'if': {'required': ['event_kind'], 'properties': {'event_kind': {'const': 'submission'}}}, 'then': {'properties': {'case_ref': {'type': 'null'}, 'details': {'$ref': '#/$defs/SelectedSubmissionDetails'}}}}, {'if': {'required': ['event_kind'], 'properties': {'event_kind': {'const': 'handling'}}}, 'then': {'properties': {'case_ref': {'$ref': '#/$defs/Identifier'}, 'details': {'$ref': '#/$defs/SelectedHandlingDetails'}}}}, {'if': {'required': ['event_kind'], 'properties': {'event_kind': {'const': 'change'}}}, 'then': {'properties': {'case_ref': {'$ref': '#/$defs/Identifier'}, 'details': {'$ref': '#/$defs/SelectedChangeDetails'}}}}]}, + 'SelectedSubmissionDetails': {'type': 'object', 'properties': {'submission_kind': {'$ref': '#/$defs/enum_submission_kind'}, 'summary': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['submission_kind', 'summary']}, + 'SelectedHandlingDetails': {'type': 'object', 'properties': {'outcome': {'$ref': '#/$defs/enum_outcome'}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False, 'required': ['outcome', 'reason']}, + 'SelectedChangeDetails': {'type': 'object', 'properties': {'action_type': {'$ref': '#/$defs/enum_action'}, 'before_ref': {'$ref': '#/$defs/Identifier'}, 'after_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'after_absence_reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'linkage_description': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['action_type', 'before_ref', 'after_ref', 'after_absence_reason', 'linkage_description'], 'allOf': [{'if': {'required': ['after_ref'], 'properties': {'after_ref': {'type': 'null'}}}, 'then': {'properties': {'after_absence_reason': {'type': 'string', 'minLength': 1}}}, 'else': {'properties': {'after_absence_reason': {'type': 'null'}}}}]}, + 'SelectedPipelineRecordData': {'type': 'object', 'properties': {'subject_ref': {'$ref': '#/$defs/Identifier'}, 'run_key': {'type': 'string', 'minLength': 1}, 'stage_key': {'type': 'string', 'minLength': 1}, 'stage': {'$ref': '#/$defs/enum_stage'}, 'state': {'$ref': '#/$defs/enum_pipeline_state'}, 'output_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'observed_at': {'$ref': '#/$defs/TimeValue'}, 'linkage_kind': {'$ref': '#/$defs/enum_linkage_kind'}, 'detail': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['subject_ref', 'run_key', 'stage_key', 'stage', 'state', 'output_refs', 'observed_at', 'linkage_kind', 'detail']}, + 'SelectedAnomalyData': {'type': 'object', 'properties': {'inquiry_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'minItems': 1, 'uniqueItems': True}, 'claim_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'original_context': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'context_evidence_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'classification_state': {'$ref': '#/$defs/enum_classification_state'}, 'caller_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'comparison_note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False, 'required': ['inquiry_refs', 'claim_ref', 'original_context', 'context_evidence_ref', 'classification_state', 'caller_label', 'comparison_note'], 'allOf': [{'if': {'required': ['classification_state'], 'properties': {'classification_state': {'const': 'unclassified'}}}, 'then': {'properties': {'caller_label': {'type': 'null'}}}, 'else': {'properties': {'caller_label': {'type': 'string'}}}}, {'if': {'required': ['original_context'], 'properties': {'original_context': {'type': 'null'}}}, 'then': {'properties': {'context_evidence_ref': {'$ref': '#/$defs/Identifier'}}}}]}, + 'SelectedUnresolvedReferenceData': {'type': 'object', 'properties': {'expected_kinds': {'type': 'array', 'items': {'$ref': '#/$defs/enum_resolved_kind'}, 'minItems': 1}, 'reason': {'$ref': '#/$defs/enum_endpoint_gap_reason'}, 'description': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['expected_kinds', 'reason', 'description']}, + 'SelectedAssertion': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/Identifier'}, 'assertion_kind': {'$ref': '#/$defs/enum_assertion_kind'}, 'scope': {'$ref': '#/$defs/SelectedAssertionScope'}, 'provenance': {'$ref': '#/$defs/SelectedProvenance'}, 'asserted_at': {'$ref': '#/$defs/TimeValue'}, 'lifecycle_state': {'$ref': '#/$defs/enum_lifecycle_state'}, 'lifecycle_basis_ref_ids': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'data': {'$ref': '#/$defs/SelectedAssertionData'}, 'gaps': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedGap'}}}, 'additionalProperties': False, 'required': ['id', 'assertion_kind', 'scope', 'provenance', 'asserted_at', 'lifecycle_state', 'lifecycle_basis_ref_ids', 'data'], 'allOf': [{'if': {'required': ['assertion_kind'], 'properties': {'assertion_kind': {'const': 'relation'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedRelationData'}}}}, {'if': {'required': ['assertion_kind'], 'properties': {'assertion_kind': {'const': 'assessment'}}}, 'then': {'properties': {'data': {'$ref': '#/$defs/SelectedAssessmentData'}}}}]}, + 'SelectedAssertionScope': {'type': 'object', 'properties': {'inquiry_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'minItems': 1, 'uniqueItems': True}, 'claim_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'effective_window': {'$ref': '#/$defs/TimeWindow'}}, 'additionalProperties': False, 'required': ['inquiry_refs', 'claim_refs', 'effective_window']}, + 'SelectedRelationData': {'type': 'object', 'properties': {'predicate': {'$ref': '#/$defs/enum_predicate'}, 'from_ref': {'$ref': '#/$defs/Identifier'}, 'to_ref': {'$ref': '#/$defs/Identifier'}, 'polarity': {'$ref': '#/$defs/enum_polarity'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}, 'details': {'$ref': '#/$defs/SelectedRelationDetails'}}, 'additionalProperties': False, 'required': ['predicate', 'from_ref', 'to_ref', 'polarity', 'dimension', 'details'], 'allOf': [{'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'supports'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedStanceDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'contradicts'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedStanceDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'describes'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedStanceDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'qualifies'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedStanceDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'contextualizes'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedStanceDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'corroborates'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedStanceDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'cites'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedCitationDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'derived_from'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedTransformationDetails'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'copies'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedTransformationDetails'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'syndicated_from'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedTransformationDetails'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'summarizes'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedTransformationDetails'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'translates'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedTransformationDetails'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'quotes'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedTransformationDetails'}, 'dimension': {'anyOf': [{'$ref': '#/$defs/enum_dimension'}, {'type': 'null'}]}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'originates_from'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedOriginDetails'}, 'dimension': {'$ref': '#/$defs/enum_dimension'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'depends_on'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedOriginDetails'}, 'dimension': {'$ref': '#/$defs/enum_dimension'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'generated_by'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedAgentDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'published_by'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedAgentDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'owned_by'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedAgentDetails'}, 'dimension': {'const': 'organizational_control'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'model_derived_from'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedModelDetails'}, 'dimension': {'const': 'model_ancestry'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'trained_on'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedModelDetails'}, 'dimension': {'const': 'model_ancestry'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'retrieved_from'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedRetrievalDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'propagates_to'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedRouteDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'supersedes'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedSupersessionDetails'}, 'dimension': {'type': 'null'}}}}, {'if': {'required': ['predicate'], 'properties': {'predicate': {'const': 'same_identity_as'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedIdentityDetails'}, 'dimension': {'type': 'null'}}}}]}, + 'SelectedStanceDetails': {'type': 'object', 'properties': {'note': {'type': 'string'}}, 'additionalProperties': False, 'required': []}, + 'SelectedCitationDetails': {'type': 'object', 'properties': {'note': {'type': 'string'}}, 'additionalProperties': False, 'required': []}, + 'SelectedTransformationDetails': {'type': 'object', 'properties': {'transformer_ref': {'$ref': '#/$defs/Identifier'}, 'method_ref': {'$ref': '#/$defs/Identifier'}, 'occurred_at': {'$ref': '#/$defs/TimeValue'}, 'portion_note': {'type': 'string'}}, 'additionalProperties': False, 'required': []}, + 'SelectedOriginDetails': {'type': 'object', 'properties': {'dependency_note': {'type': 'string'}, 'portion_note': {'type': 'string'}}, 'additionalProperties': False, 'required': []}, + 'SelectedAgentDetails': {'type': 'object', 'properties': {'role_note': {'type': 'string'}, 'valid_window': {'$ref': '#/$defs/TimeWindow'}}, 'additionalProperties': False, 'required': []}, + 'SelectedModelDetails': {'type': 'object', 'properties': {'stage_note': {'type': 'string'}, 'subset_descriptor': {'type': 'string'}, 'occurred_at': {'$ref': '#/$defs/TimeValue'}}, 'additionalProperties': False, 'required': []}, + 'SelectedRetrievalDetails': {'type': 'object', 'properties': {'retrieval_time': {'$ref': '#/$defs/TimeValue'}, 'portion_note': {'type': 'string'}}, 'additionalProperties': False, 'required': []}, + 'SelectedRouteDetails': {'type': 'object', 'properties': {'action_type': {'$ref': '#/$defs/enum_action'}, 'valid_window': {'$ref': '#/$defs/TimeWindow'}, 'route_note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['action_type', 'valid_window']}, + 'SelectedSupersessionDetails': {'type': 'object', 'properties': {'reason': {'type': 'string'}, 'effective_at': {'$ref': '#/$defs/TimeValue'}}, 'additionalProperties': False, 'required': ['reason']}, + 'SelectedIdentityDetails': {'type': 'object', 'properties': {'identity_level': {'$ref': '#/$defs/enum_identity_level'}, 'identity_note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['identity_level']}, + 'SelectedAssessmentData': {'type': 'object', 'properties': {'assessment_kind': {'$ref': '#/$defs/enum_assessment_kind'}, 'subject_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'details': {'$ref': '#/$defs/SelectedAssessmentDetails'}}, 'additionalProperties': False, 'required': ['assessment_kind', 'subject_refs', 'details'], 'allOf': [{'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'origin_boundary'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedOriginBoundaryDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'independence'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedIndependenceDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'coverage'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedCoverageDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'classification'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedClassificationDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'verification'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedVerificationDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'externality'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedExternalityDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'authority'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedAuthorityDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'capacity'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedCapacityDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'conflict'}}}, 'then': {'properties': {'details': {'$ref': '#/$defs/SelectedConflictDetails'}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'origin_boundary'}}}, 'then': {'properties': {'subject_refs': {'minItems': 1, 'maxItems': 1}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'authority'}}}, 'then': {'properties': {'subject_refs': {'minItems': 1, 'maxItems': 1}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'independence'}}}, 'then': {'properties': {'subject_refs': {'minItems': 2}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'conflict'}}}, 'then': {'properties': {'subject_refs': {'minItems': 2}}}}, {'if': {'required': ['assessment_kind'], 'properties': {'assessment_kind': {'const': 'coverage'}}}, 'then': {'properties': {'subject_refs': {'minItems': 1}}}}, {'if': {'required': ['assessment_kind', 'details'], 'properties': {'assessment_kind': {'const': 'independence'}, 'details': {'required': ['comparison_form'], 'properties': {'comparison_form': {'const': 'pairwise'}}}}}, 'then': {'properties': {'subject_refs': {'minItems': 2, 'maxItems': 2}}}}]}, + 'SelectedOriginBoundaryDetails': {'type': 'object', 'properties': {'dimension': {'$ref': '#/$defs/enum_dimension'}, 'boundary_role': {'$ref': '#/$defs/enum_boundary_role'}, 'coverage_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'termination_reason': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['dimension', 'boundary_role', 'coverage_ref', 'termination_reason']}, + 'SelectedIndependenceDetails': {'type': 'object', 'properties': {'comparison_form': {'$ref': '#/$defs/enum_comparison_form'}, 'dimension': {'$ref': '#/$defs/enum_dimension'}, 'conclusion': {'$ref': '#/$defs/enum_independence_conclusion'}, 'examined_dependency_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'unexamined_dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/enum_dimension'}}, 'coverage_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'scope_note': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['comparison_form', 'dimension', 'conclusion', 'examined_dependency_refs', 'unexamined_dimensions', 'coverage_ref', 'scope_note']}, + 'SelectedCoverageDetails': {'type': 'object', 'properties': {'coverage_kind': {'$ref': '#/$defs/enum_coverage_kind'}, 'state': {'$ref': '#/$defs/enum_coverage_state'}, 'relation_types': {'type': 'array', 'items': {'$ref': '#/$defs/enum_predicate'}}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/enum_dimension'}}, 'member_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'omitted_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'universe_enumerated': {'type': 'boolean'}, 'scope_note': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['coverage_kind', 'state', 'relation_types', 'dimensions', 'member_refs', 'omitted_refs', 'universe_enumerated', 'scope_note']}, + 'SelectedClassificationDetails': {'type': 'object', 'properties': {'axis': {'$ref': '#/$defs/enum_axis'}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'verification_assessment_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'scope_note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['axis', 'labels', 'verification_assessment_refs', 'scope_note'], 'allOf': [{'if': {'required': ['axis'], 'properties': {'axis': {'const': 'sil_data_role'}}}, 'then': {'properties': {'labels': {'items': {'$ref': '#/$defs/enum_sil_data_role'}}}}}, {'if': {'required': ['axis'], 'properties': {'axis': {'const': 'hdl_structure_role'}}}, 'then': {'properties': {'labels': {'items': {'$ref': '#/$defs/enum_hdl_structure_role'}}}}}, {'if': {'required': ['axis'], 'properties': {'axis': {'const': 'sil_governance_layer'}}}, 'then': {'properties': {'labels': {'items': {'$ref': '#/$defs/enum_sil_governance_layer'}}}}}]}, + 'SelectedVerificationDetails': {'type': 'object', 'properties': {'verification_scope': {'$ref': '#/$defs/enum_verification_scope'}, 'evaluation_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'reported_outcome': {'$ref': '#/$defs/enum_reported_outcome'}, 'valid_window': {'$ref': '#/$defs/TimeWindow'}, 'scope_note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['verification_scope', 'evaluation_ref', 'reported_outcome', 'valid_window', 'scope_note']}, + 'SelectedExternalityDetails': {'type': 'object', 'properties': {'boundary_inquiry_ref': {'$ref': '#/$defs/Identifier'}, 'conclusion': {'$ref': '#/$defs/enum_externality_conclusion'}, 'grounding_basis': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'relevant_time': {'$ref': '#/$defs/TimeValue'}}, 'additionalProperties': False, 'required': ['boundary_inquiry_ref', 'conclusion', 'grounding_basis', 'relevant_time']}, + 'SelectedAuthorityDetails': {'type': 'object', 'properties': {'target_refs': {'type': 'array', 'items': {'$ref': '#/$defs/Identifier'}, 'uniqueItems': True}, 'action_types': {'type': 'array', 'items': {'$ref': '#/$defs/enum_action'}}, 'valid_window': {'$ref': '#/$defs/TimeWindow'}, 'authorized_by_ref': {'$ref': '#/$defs/Identifier'}, 'grant_state': {'$ref': '#/$defs/enum_grant_state'}, 'authority_basis': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'coverage_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}}, 'additionalProperties': False, 'required': ['target_refs', 'action_types', 'valid_window', 'authorized_by_ref', 'grant_state', 'authority_basis', 'coverage_ref']}, + 'SelectedCapacityDetails': {'type': 'object', 'properties': {'reported_capacity': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'unit': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'horizon': {'$ref': '#/$defs/TimeWindow'}, 'reported_load': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scope_note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['reported_capacity', 'unit', 'horizon', 'reported_load', 'scope_note']}, + 'SelectedConflictDetails': {'type': 'object', 'properties': {'conflict_kind': {'$ref': '#/$defs/enum_conflict_kind'}, 'resolution_state': {'$ref': '#/$defs/enum_resolution_state'}, 'resolution_evaluation_ref': {'anyOf': [{'$ref': '#/$defs/Identifier'}, {'type': 'null'}]}, 'scope_note': {'type': 'string'}}, 'additionalProperties': False, 'required': ['conflict_kind', 'resolution_state', 'resolution_evaluation_ref', 'scope_note'], 'allOf': [{'if': {'required': ['resolution_state'], 'properties': {'resolution_state': {'const': 'unresolved'}}}, 'then': {'properties': {'resolution_evaluation_ref': {'type': 'null'}}}, 'else': {'properties': {'resolution_evaluation_ref': {'$ref': '#/$defs/Identifier'}}}}]}, + 'SelectedRecordData': {'anyOf': [{'$ref': '#/$defs/SelectedClaimData'}, {'$ref': '#/$defs/SelectedArtifactData'}, {'$ref': '#/$defs/SelectedActorData'}, {'$ref': '#/$defs/SelectedEvidenceItemData'}, {'$ref': '#/$defs/SelectedOriginEventData'}, {'$ref': '#/$defs/SelectedModelData'}, {'$ref': '#/$defs/SelectedEvaluationData'}, {'$ref': '#/$defs/SelectedCorrectionChannelData'}, {'$ref': '#/$defs/SelectedCorrectionEventData'}, {'$ref': '#/$defs/SelectedPipelineRecordData'}, {'$ref': '#/$defs/SelectedAnomalyData'}, {'$ref': '#/$defs/SelectedUnresolvedReferenceData'}]}, + 'SelectedAssertionData': {'anyOf': [{'$ref': '#/$defs/SelectedRelationData'}, {'$ref': '#/$defs/SelectedAssessmentData'}]}, + 'SelectedCorrectionDetails': {'anyOf': [{'$ref': '#/$defs/SelectedSubmissionDetails'}, {'$ref': '#/$defs/SelectedHandlingDetails'}, {'$ref': '#/$defs/SelectedChangeDetails'}]}, + 'SelectedRelationDetails': {'anyOf': [{'$ref': '#/$defs/SelectedStanceDetails'}, {'$ref': '#/$defs/SelectedCitationDetails'}, {'$ref': '#/$defs/SelectedTransformationDetails'}, {'$ref': '#/$defs/SelectedOriginDetails'}, {'$ref': '#/$defs/SelectedAgentDetails'}, {'$ref': '#/$defs/SelectedModelDetails'}, {'$ref': '#/$defs/SelectedRetrievalDetails'}, {'$ref': '#/$defs/SelectedRouteDetails'}, {'$ref': '#/$defs/SelectedSupersessionDetails'}, {'$ref': '#/$defs/SelectedIdentityDetails'}]}, + 'SelectedAssessmentDetails': {'anyOf': [{'$ref': '#/$defs/SelectedOriginBoundaryDetails'}, {'$ref': '#/$defs/SelectedIndependenceDetails'}, {'$ref': '#/$defs/SelectedCoverageDetails'}, {'$ref': '#/$defs/SelectedClassificationDetails'}, {'$ref': '#/$defs/SelectedVerificationDetails'}, {'$ref': '#/$defs/SelectedExternalityDetails'}, {'$ref': '#/$defs/SelectedAuthorityDetails'}, {'$ref': '#/$defs/SelectedCapacityDetails'}, {'$ref': '#/$defs/SelectedConflictDetails'}]}, + 'enum_record_kind': {'type': 'string', 'enum': ['claim', 'artifact', 'actor', 'evidence_item', 'origin_event', 'model', 'evaluation', 'correction_channel', 'correction_event', 'pipeline_record', 'anomaly', 'unresolved_reference']}, + 'enum_predicate': {'type': 'string', 'enum': ['supports', 'contradicts', 'describes', 'qualifies', 'contextualizes', 'corroborates', 'cites', 'derived_from', 'copies', 'syndicated_from', 'summarizes', 'translates', 'quotes', 'originates_from', 'depends_on', 'generated_by', 'published_by', 'model_derived_from', 'trained_on', 'owned_by', 'retrieved_from', 'propagates_to', 'supersedes', 'same_identity_as']}, + 'enum_assessment_kind': {'type': 'string', 'enum': ['origin_boundary', 'independence', 'coverage', 'classification', 'verification', 'externality', 'authority', 'capacity', 'conflict']}, + 'enum_dimension': {'type': 'string', 'enum': ['acquisition', 'analytical_method', 'model_ancestry', 'evaluation_rubric', 'organizational_control']}, + 'enum_basis_kind': {'type': 'string', 'enum': ['declaration', 'documented_record', 'upstream_inference', 'protected_attestation', 'unspecified']}, + 'enum_gap_reason': {'type': 'string', 'enum': ['not_recorded', 'not_examined', 'withheld', 'unavailable', 'identity_ambiguous', 'outside_snapshot', 'not_applicable', 'other']}, + 'enum_reference_kind': {'type': 'string', 'enum': ['supplied_excerpt', 'record_pointer', 'local_locator', 'external_locator', 'protected_attestation']}, + 'enum_availability': {'type': 'string', 'enum': ['supplied', 'locator_only', 'withheld', 'unavailable']}, + 'enum_artifact_kind': {'type': 'string', 'enum': ['document', 'dataset', 'answer', 'reference_answer', 'rubric', 'benchmark', 'judgment', 'observation_record', 'execution_result', 'other', 'unknown']}, + 'enum_actor_kind': {'type': 'string', 'enum': ['human', 'organization', 'software_agent', 'unknown']}, + 'enum_identity_disclosure': {'type': 'string', 'enum': ['named', 'pseudonymous', 'protected', 'unknown']}, + 'enum_epistemic_type': {'type': 'string', 'enum': ['measurement', 'testimony', 'documentary_statement', 'estimate', 'formal_derivation', 'execution_result', 'analytical_inference', 'evaluative_judgment', 'allegation', 'fictional_example', 'unclassified']}, + 'enum_origin_event_kind': {'type': 'string', 'enum': ['observation', 'data_collection', 'testimony', 'documentary_issuance', 'analysis', 'formal_check', 'execution', 'other', 'unknown']}, + 'enum_evaluation_kind': {'type': 'string', 'enum': ['judgment', 'formal_check', 'execution', 'empirical_review', 'human_review', 'identity_process_review', 'other', 'unknown']}, + 'enum_role': {'type': 'string', 'enum': ['candidate', 'generator', 'judge', 'executor', 'human_reviewer', 'reference_answer', 'rubric', 'validation_environment', 'method_input']}, + 'enum_action': {'type': 'string', 'enum': ['review', 'amend', 'annotate', 'retract', 'rerun', 'rollback', 'replace_evaluator', 'restrict_scope', 'withdraw', 'metadata_correction', 'other']}, + 'enum_correction_event_kind': {'type': 'string', 'enum': ['submission', 'handling', 'change']}, + 'enum_submission_kind': {'type': 'string', 'enum': ['objection', 'proposed_correction', 'appeal']}, + 'enum_outcome': {'type': 'string', 'enum': ['acknowledged', 'under_review', 'accepted', 'rejected', 'withdrawn', 'failed', 'unknown']}, + 'enum_stage': {'type': 'string', 'enum': ['admission', 'preservation', 'selection', 'influence']}, + 'enum_pipeline_state': {'type': 'string', 'enum': ['occurred', 'did_not_occur', 'unknown']}, + 'enum_linkage_kind': {'type': 'string', 'enum': ['use_record', 'comparison_record', 'experimental_attribution', 'declaration', 'unspecified']}, + 'enum_classification_state': {'type': 'string', 'enum': ['unclassified', 'caller_classified']}, + 'enum_assertion_kind': {'type': 'string', 'enum': ['relation', 'assessment']}, + 'enum_lifecycle_state': {'type': 'string', 'enum': ['active', 'withdrawn', 'superseded']}, + 'enum_polarity': {'type': 'string', 'enum': ['affirmed', 'denied']}, + 'enum_identity_level': {'type': 'string', 'enum': ['artifact_version', 'actor', 'origin_event', 'model_version']}, + 'enum_boundary_role': {'type': 'string', 'enum': ['documented_origin', 'declared_origin', 'reference_baseline', 'scope_cut', 'unresolved']}, + 'enum_comparison_form': {'type': 'string', 'enum': ['pairwise', 'setwise']}, + 'enum_independence_conclusion': {'type': 'string', 'enum': ['independent_process', 'shared_dependency', 'partial_overlap', 'unknown', 'not_assessed', 'not_applicable']}, + 'enum_coverage_kind': {'type': 'string', 'enum': ['upstream_history', 'citation_list', 'identity', 'model_history', 'correction_routes', 'pipeline_universe', 'other']}, + 'enum_coverage_state': {'type': 'string', 'enum': ['complete_for_scope', 'partial', 'not_examined']}, + 'enum_axis': {'type': 'string', 'enum': ['sil_data_role', 'hdl_structure_role', 'sil_governance_layer']}, + 'enum_sil_data_role': {'type': 'string', 'enum': ['surface_linguistic', 'world_model', 'judgment']}, + 'enum_hdl_structure_role': {'type': 'string', 'enum': ['surface_linguistic_structure', 'world_structure', 'judgment_structure']}, + 'enum_sil_governance_layer': {'type': 'string', 'enum': ['open_web', 'verified', 'contested', 'judgment']}, + 'enum_verification_scope': {'type': 'string', 'enum': ['identity', 'process', 'byte_integrity', 'other']}, + 'enum_reported_outcome': {'type': 'string', 'enum': ['verified', 'not_verified', 'inconclusive', 'revoked', 'unknown']}, + 'enum_externality_conclusion': {'type': 'string', 'enum': ['external', 'internal', 'mixed', 'unknown']}, + 'enum_grant_state': {'type': 'string', 'enum': ['granted', 'denied', 'expired', 'unknown']}, + 'enum_conflict_kind': {'type': 'string', 'enum': ['affirmation_denial', 'incompatible_origin', 'incompatible_independence', 'identity_dispute', 'scope_dispute', 'other']}, + 'enum_resolution_state': {'type': 'string', 'enum': ['unresolved', 'externally_resolved']}, + 'enum_resolved_kind': {'type': 'string', 'enum': ['claim', 'artifact', 'actor', 'evidence_item', 'origin_event', 'model', 'evaluation', 'correction_channel', 'correction_event', 'pipeline_record', 'anomaly']}, + 'enum_endpoint_gap_reason': {'type': 'string', 'enum': ['not_recorded', 'not_examined', 'withheld', 'unavailable', 'identity_ambiguous', 'outside_snapshot', 'other']}, + 'SelectedNative': {'oneOf': [{'$ref': '#/$defs/SelectedInquiry'}, {'$ref': '#/$defs/SelectedRecord'}, {'$ref': '#/$defs/SelectedAssertion'}, {'$ref': '#/$defs/SelectedEvidenceReference'}]}, + 'SelectedPipelineRecord': {'allOf': [{'$ref': '#/$defs/SelectedRecord'}, {'properties': {'kind': {'const': 'pipeline_record'}}}]}, + 'SelectedUnresolvedRecord': {'allOf': [{'$ref': '#/$defs/SelectedRecord'}, {'properties': {'kind': {'const': 'unresolved_reference'}}}]}, + 'SelectedCoverageAssertion': {'allOf': [{'$ref': '#/$defs/SelectedAssertion'}, {'properties': {'assertion_kind': {'const': 'assessment'}, 'data': {'properties': {'assessment_kind': {'const': 'coverage'}}}}}]}, + 'SelectedCapacityAssertion': {'allOf': [{'$ref': '#/$defs/SelectedAssertion'}, {'properties': {'assertion_kind': {'const': 'assessment'}, 'data': {'properties': {'assessment_kind': {'const': 'capacity'}}}}}]}, + 'OriginBoundaryFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'qualification_state', 'reason_codes']}, + 'CoverageFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedCoverageAssertion'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'qualification_state', 'reason_codes']}, + 'DocumentaryBasisGapFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'qualification_state', 'reason_codes']}, + 'IndependenceAssessmentFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'process_qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'origin_qualification_state': {'type': 'string', 'enum': ['met', 'unmet', 'not_applicable']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'process_qualification_state', 'origin_qualification_state', 'reason_codes']}]}, + 'GapSource': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/InputRef'}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['source', 'reason_codes']}, + 'GapCoverage': {'type': 'object', 'properties': {'coverage_ref': {'$ref': '#/$defs/AssertionRef'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['coverage_ref', 'qualification_state', 'reason_codes']}, + 'GapWitnessPath': {'type': 'object', 'properties': {'nodes': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}}, 'assertions': {'type': 'array', 'items': {'$ref': '#/$defs/AssertionRef'}}}, 'additionalProperties': False, 'required': ['nodes', 'assertions']}, + 'AncestryGapFields': {'type': 'object', 'properties': {'seed_ref': {'$ref': '#/$defs/RecordRef'}, 'dimension': {'$ref': '#/$defs/DependencyDimension'}, 'gaps': {'type': 'array', 'items': {'$ref': '#/$defs/GapSource'}}, 'frontiers': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedUnresolvedRecord'}}, 'coverage': {'type': 'array', 'items': {'$ref': '#/$defs/GapCoverage'}}, 'witness_paths': {'type': 'array', 'items': {'$ref': '#/$defs/GapWitnessPath'}}}, 'additionalProperties': False, 'required': ['seed_ref', 'dimension', 'gaps', 'frontiers', 'coverage', 'witness_paths']}, + 'OneSidedAncestry': {'type': 'object', 'properties': {'from_ref': {'$ref': '#/$defs/InputRef'}, 'to_ref': {'$ref': '#/$defs/InputRef'}}, 'additionalProperties': False, 'required': ['from_ref', 'to_ref']}, + 'EvaluatorOverlapFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'roles': {'type': 'array', 'items': {'$ref': '#/$defs/enum_role'}}, 'left_object_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'right_object_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'shared_object_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'common_ancestor_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'matching_family_labels': {'type': 'array', 'items': {'type': 'string'}}, 'missing_family_model_refs': {'type': 'array', 'items': {'$ref': '#/$defs/RecordRef'}, 'uniqueItems': True}, 'one_sided_ancestry': {'type': 'array', 'items': {'$ref': '#/$defs/OneSidedAncestry'}}, 'roles_complete': {'type': 'boolean'}}, 'additionalProperties': False, 'required': ['native_record', 'roles', 'left_object_refs', 'right_object_refs', 'shared_object_refs', 'common_ancestor_refs', 'matching_family_labels', 'missing_family_model_refs', 'one_sided_ancestry', 'roles_complete']}]}, + 'ExternalityAssessmentFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'qualified_externality': {'type': 'string', 'enum': ['available', 'unavailable']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'qualification_state', 'qualified_externality', 'reason_codes']}]}, + 'PipelineStageFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedPipelineRecord'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'qualification_state', 'reason_codes']}, + 'ExternalityStageFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedPipelineRecord'}, 'qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}, 'externality_subject_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'mapping_assertion_refs': {'type': 'array', 'items': {'$ref': '#/$defs/AssertionRef'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'qualification_state', 'reason_codes', 'externality_subject_refs', 'mapping_assertion_refs']}, + 'StageAnchor': {'type': 'object', 'properties': {'run_key': {'type': 'string'}, 'stage_key': {'type': 'string'}, 'stage': {'$ref': '#/$defs/enum_stage'}}, 'additionalProperties': False, 'required': ['run_key', 'stage_key', 'stage']}, + 'CohortTransitionFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedCoverageAssertion'}, 'stage_anchor': {'anyOf': [{'$ref': '#/$defs/StageAnchor'}, {'type': 'null'}]}, 'cohort_qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'transition_qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'stage_anchor', 'cohort_qualification_state', 'transition_qualification_state', 'reason_codes']}, + 'CorrectionRouteFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'target_ref': {'$ref': '#/$defs/InputRef'}, 'action_type': {'$ref': '#/$defs/enum_action'}, 'declared_route_recorded': {'type': 'boolean'}, 'authorized_route_recorded': {'type': 'boolean'}, 'authorized_route_state': {'type': 'string', 'enum': ['available', 'unavailable']}, 'absence_description': {'type': 'string', 'enum': ['bounded_absence_under_declared_coverage', 'no_witness_in_examined_view', 'positive_witness']}}, 'additionalProperties': False, 'required': ['native_record', 'target_ref', 'action_type', 'declared_route_recorded', 'authorized_route_recorded', 'authorized_route_state', 'absence_description']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'grant_qualification_state': {'type': 'string', 'enum': ['met', 'unmet', 'unknown']}, 'grant_matches_tuple': {'type': 'boolean'}, 'grant_reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'grant_qualification_state', 'grant_matches_tuple', 'grant_reason_codes']}]}, + 'CorrectionCaseFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'documentary_state': {'type': 'string', 'enum': ['met', 'unknown']}, 'explicit_removal': {'type': 'boolean'}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'documentary_state', 'explicit_removal', 'reason_codes']}]}, + 'CaseChangeRow': {'type': 'object', 'properties': {'case_ref': {'$ref': '#/$defs/RecordRef'}, 'declared': {'type': 'boolean'}, 'selected': {'type': 'boolean'}, 'change_event_refs': {'type': 'array', 'items': {'$ref': '#/$defs/RecordRef'}, 'uniqueItems': True}, 'qualified_change_event_refs': {'type': 'array', 'items': {'$ref': '#/$defs/RecordRef'}, 'uniqueItems': True}, 'documentary_state': {'type': 'string', 'enum': ['met', 'unknown']}, 'requested_effect_state': {'type': 'string', 'enum': ['available', 'unavailable']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['case_ref', 'declared', 'selected', 'change_event_refs', 'qualified_change_event_refs', 'documentary_state', 'requested_effect_state', 'reason_codes']}, + 'CorrectionTargetChangeFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'case_rows': {'type': 'array', 'items': {'$ref': '#/$defs/CaseChangeRow'}}}, 'additionalProperties': False, 'required': ['native_record', 'case_rows']}, + 'ReportedCapacityFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedCapacityAssertion'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedCapacityAssertion'}, 'documentary_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'documentary_state', 'reason_codes']}]}, + 'HumanContributionFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'contribution_status': {'type': 'string', 'enum': ['distinct_constraint', 'no_human_role', 'missing_contribution', 'recorded_human_contribution']}, 'documentary_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'identity_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'contribution_status', 'documentary_state', 'identity_state', 'reason_codes']}]}, + 'CorrectiveIndependenceFields': {'anyOf': [{'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}}, 'additionalProperties': False, 'required': ['native_record']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'contribution_status': {'type': 'string', 'enum': ['distinct_constraint', 'no_human_role', 'missing_contribution', 'recorded_human_contribution']}, 'documentary_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'identity_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'contribution_status', 'documentary_state', 'identity_state', 'reason_codes']}, {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'process_qualification_state': {'type': 'string', 'enum': ['met', 'unmet']}, 'origin_qualification_state': {'type': 'string', 'enum': ['met', 'unmet', 'not_applicable']}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'process_qualification_state', 'origin_qualification_state', 'reason_codes']}]}, + 'AnomalyContextFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'context_records': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedNative'}}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'context_records', 'reason_codes']}, + 'ContestationFields': {'type': 'object', 'properties': {'native_record': {'$ref': '#/$defs/SelectedNative'}, 'context_records': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedNative'}}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['native_record', 'context_records', 'reason_codes']}, + 'TailStageResultLinkFields': {'type': 'object', 'properties': {'source_result_state': {'type': 'string', 'enum': ['available', 'unavailable', 'not_applicable', 'not_evaluated']}, 'source_value_kind': {'$ref': '#/$defs/ValueKind'}}, 'additionalProperties': False, 'required': ['source_result_state', 'source_value_kind']}, + 'Disclosure': {'type': 'object', 'properties': {'source': {'anyOf': [{'$ref': '#/$defs/InputRef'}, {'$ref': '#/$defs/ResultId'}]}, 'fields': {'anyOf': [{'$ref': '#/$defs/OriginBoundaryFields'}, {'$ref': '#/$defs/CoverageFields'}, {'$ref': '#/$defs/DocumentaryBasisGapFields'}, {'$ref': '#/$defs/IndependenceAssessmentFields'}, {'$ref': '#/$defs/AncestryGapFields'}, {'$ref': '#/$defs/EvaluatorOverlapFields'}, {'$ref': '#/$defs/ExternalityAssessmentFields'}, {'$ref': '#/$defs/PipelineStageFields'}, {'$ref': '#/$defs/ExternalityStageFields'}, {'$ref': '#/$defs/CohortTransitionFields'}, {'$ref': '#/$defs/CorrectionRouteFields'}, {'$ref': '#/$defs/CorrectionCaseFields'}, {'$ref': '#/$defs/CorrectionTargetChangeFields'}, {'$ref': '#/$defs/ReportedCapacityFields'}, {'$ref': '#/$defs/HumanContributionFields'}, {'$ref': '#/$defs/CorrectiveIndependenceFields'}, {'$ref': '#/$defs/AnomalyContextFields'}, {'$ref': '#/$defs/ContestationFields'}, {'$ref': '#/$defs/TailStageResultLinkFields'}]}, 'qualifications': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False, 'required': ['source', 'fields', 'qualifications']}, + 'GraphNode': {'type': 'object', 'properties': {'ref': {'allOf': [{'$ref': '#/$defs/InputRef'}, {'properties': {'selector': {'type': 'null'}}}]}, 'kind': {'type': 'string', 'enum': ['claim', 'artifact', 'actor', 'evidence_item', 'origin_event', 'model', 'evaluation', 'correction_channel', 'correction_event', 'pipeline_record', 'anomaly', 'unresolved_reference', 'inquiry', 'assertion', 'evidence_reference']}}, 'additionalProperties': False, 'required': ['ref', 'kind'], 'allOf': [{'if': {'required': ['kind'], 'properties': {'kind': {'const': 'inquiry'}}}, 'then': {'properties': {'ref': {'$ref': '#/$defs/InquiryRef'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'assertion'}}}, 'then': {'properties': {'ref': {'$ref': '#/$defs/AssertionRef'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'const': 'evidence_reference'}}}, 'then': {'properties': {'ref': {'$ref': '#/$defs/EvidenceRef'}}}}, {'if': {'required': ['kind'], 'properties': {'kind': {'type': 'string', 'enum': ['claim', 'artifact', 'actor', 'evidence_item', 'origin_event', 'model', 'evaluation', 'correction_channel', 'correction_event', 'pipeline_record', 'anomaly', 'unresolved_reference']}}}, 'then': {'properties': {'ref': {'$ref': '#/$defs/RecordRef'}}}}]}, + 'GraphEdge': {'type': 'object', 'properties': {'source': {'$ref': '#/$defs/GraphNode'}, 'target': {'$ref': '#/$defs/GraphNode'}, 'source_ref': {'$ref': '#/$defs/InputRef'}, 'predicate': {'anyOf': [{'$ref': '#/$defs/enum_predicate'}, {'type': 'null'}]}, 'eligible': {'type': 'boolean'}, 'reason_codes': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonCode'}, 'uniqueItems': True}}, 'additionalProperties': False, 'required': ['source', 'target', 'source_ref', 'predicate', 'eligible', 'reason_codes'], 'allOf': [{'if': {'required': ['predicate'], 'properties': {'predicate': {'type': 'null'}}}, 'then': {'properties': {'source_ref': {'allOf': [{'$ref': '#/$defs/InputRef'}, {'properties': {'selector': {'type': 'string', 'minLength': 1}}}]}}}, 'else': {'properties': {'source_ref': {'allOf': [{'$ref': '#/$defs/AssertionRef'}, {'properties': {'selector': {'type': 'null'}}}]}}}}]}, + 'GraphWitnessComponent': {'type': 'object', 'properties': {'type': {'const': 'graph_witness'}, 'kind': {'type': 'string', 'enum': ['path', 'cycle', 'members', 'complete_trace', 'no_witness_in_examined_view']}, 'nodes': {'type': 'array', 'items': {'$ref': '#/$defs/GraphNode'}}, 'members': {'type': 'array', 'items': {'$ref': '#/$defs/GraphNode'}}, 'starts': {'type': 'array', 'items': {'$ref': '#/$defs/GraphNode'}}, 'examined_nodes': {'type': 'array', 'items': {'$ref': '#/$defs/GraphNode'}}, 'frontiers': {'type': 'array', 'items': {'$ref': '#/$defs/GraphNode'}}, 'terminals': {'type': 'array', 'items': {'$ref': '#/$defs/GraphNode'}}, 'edges': {'type': 'array', 'items': {'$ref': '#/$defs/GraphEdge'}}, 'internal_edges': {'type': 'array', 'items': {'$ref': '#/$defs/GraphEdge'}}, 'exit_edges': {'type': 'array', 'items': {'$ref': '#/$defs/GraphEdge'}}, 'examined_edges': {'type': 'array', 'items': {'$ref': '#/$defs/GraphEdge'}}, 'observations': {'type': 'array', 'items': {'$ref': '#/$defs/GraphEdge'}}, 'target': {'anyOf': [{'$ref': '#/$defs/GraphNode'}, {'type': 'null'}]}, 'member_count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['type', 'kind', 'nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals', 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations', 'target', 'member_count']}, + 'InventoryWitnessComponent': {'type': 'object', 'properties': {'type': {'const': 'inventory_witness'}, 'members': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'member_count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['type', 'members', 'member_count']}, + 'ComparisonWitnessComponent': {'type': 'object', 'properties': {'type': {'const': 'comparison_witness'}, 'members': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'assessment': {'anyOf': [{'$ref': '#/$defs/AssertionRef'}, {'type': 'null'}]}, 'examined_assessments': {'type': 'array', 'items': {'$ref': '#/$defs/AssertionRef'}, 'uniqueItems': True}, 'member_count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['type', 'members', 'assessment', 'examined_assessments', 'member_count']}, + 'SelectedMembersComponent': {'type': 'object', 'properties': {'type': {'const': 'selected_members'}, 'members': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'member_count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['type', 'members', 'member_count']}, + 'HumanReviewWitnessComponent': {'type': 'object', 'properties': {'type': {'const': 'human_review_witness'}, 'members': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'examined_assessments': {'type': 'array', 'items': {'$ref': '#/$defs/AssertionRef'}, 'uniqueItems': True}, 'source_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}}, 'member_count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['type', 'members', 'examined_assessments', 'source_refs', 'member_count']}, + 'CorrectionOutcomeWitnessComponent': {'type': 'object', 'properties': {'type': {'const': 'correction_outcome_witness'}, 'members': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'source_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}}, 'member_count': {'type': 'integer', 'minimum': 0, 'maximum': 9007199254740991}}, 'additionalProperties': False, 'required': ['type', 'members', 'source_refs', 'member_count']}, + 'WitnessComponent': {'oneOf': [{'$ref': '#/$defs/GraphWitnessComponent'}, {'$ref': '#/$defs/InventoryWitnessComponent'}, {'$ref': '#/$defs/ComparisonWitnessComponent'}, {'$ref': '#/$defs/SelectedMembersComponent'}, {'$ref': '#/$defs/HumanReviewWitnessComponent'}, {'$ref': '#/$defs/CorrectionOutcomeWitnessComponent'}]}, + 'FindingWitness': {'type': 'object', 'properties': {'input_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'components': {'type': 'array', 'items': {'$ref': '#/$defs/WitnessComponent'}}}, 'additionalProperties': False, 'required': ['input_refs', 'components']}, + 'Finding': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/FindingId'}, 'observation_kind': {'type': 'string', 'enum': ['positive_witness', 'no_witness_in_examined_view', 'bounded_absence_under_declared_coverage', 'attributed_observation', 'qualification_gap', 'recorded_conflict']}, 'condition_code': {'type': 'string', 'enum': ['shared_origin_witness', 'citation_path_witness', 'transformation_path_witness', 'model_mediated_derivation_witness', 'view_cycle_witness', 'assurance_loop_limitation', 'evaluator_overlap_witness', 'family_label_match', 'provenance_gap', 'verification_scope_limitation', 'independence_record_conflict', 'correction_dependency_witness', 'correction_route_limitation', 'case_handling_disclosure', 'linked_change_disclosure', 'downstream_change_undocumented', 'externality_stage_limitation', 'recorded_stage_exclusion', 'anomaly_or_contestation_disclosure', 'attributed_external_observation', 'scoped_no_witness', 'recorded_data_conflict']}, 'diagnostic_refs': {'type': 'array', 'items': {'$ref': '#/$defs/DiagnosticId'}, 'uniqueItems': True}, 'threat_family_refs': {'type': 'array', 'items': {'type': 'string', 'enum': ['SIT-TH001', 'SIT-TH002', 'SIT-TH003', 'SIT-TH004', 'SIT-TH005', 'SIT-TH006', 'SIT-TH007', 'SIT-TH008', 'SIT-TH009', 'SIT-TH010', 'SIT-TH011', 'SIT-TH012', 'SIT-TH013', 'SIT-TH014']}, 'uniqueItems': True}, 'scope_ref': {'$ref': '#/$defs/ScopeId'}, 'population_refs': {'type': 'array', 'items': {'$ref': '#/$defs/PopulationId'}, 'uniqueItems': True}, 'basis_refs': {'type': 'array', 'items': {'$ref': '#/$defs/BasisId'}, 'uniqueItems': True}, 'witness': {'$ref': '#/$defs/FindingWitness'}, 'contrary_input_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True}, 'statement': {'type': 'string', 'minLength': 1}, 'interpretation_limit': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['id', 'observation_kind', 'condition_code', 'diagnostic_refs', 'threat_family_refs', 'scope_ref', 'population_refs', 'basis_refs', 'witness', 'contrary_input_refs', 'reason_refs', 'statement', 'interpretation_limit']}, +} diff --git a/tests/contract/test_input_schema_mapping.py b/tests/contract/test_input_schema_mapping.py index ebc6fdf..9b63381 100644 --- a/tests/contract/test_input_schema_mapping.py +++ b/tests/contract/test_input_schema_mapping.py @@ -227,7 +227,11 @@ def test_no_runtime_schema_or_source_reads(): text=(ROOT/f"src/source_integrity_toolkit/contracts/{name}.py").read_text() for forbidden in ("read_bytes(","read_text(","json.load(","urlopen(","open(","eval("): assert forbidden not in text - assert not (ROOT/"schemas/report/sit-report-0.1.schema.json").exists() + report = load("schemas/report/sit-report-0.1.schema.json") + assert report["$schema"] == "https://json-schema.org/draft/2020-12/schema" + assert report["$ref"] == "#/$defs/AuditReport" + assert report["$defs"]["AuditReport"]["additionalProperties"] is False + assert report["$defs"]["AuditReport"]["properties"]["contract_version"] == {"const": "sit-report/0.1"} def test_duplicate_schema_key_is_not_silently_overwritten(): diff --git a/tests/contract/test_report_contract.py b/tests/contract/test_report_contract.py new file mode 100644 index 0000000..dd8614f --- /dev/null +++ b/tests/contract/test_report_contract.py @@ -0,0 +1,1519 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""P4-W02 direct report-contract checks against independent source examples. + +The finite schema evaluator below is a test aid for the keywords actually used +by this repository's report schema. It is not a general JSON Schema service or +a claim of Draft 2020-12 conformance. Runtime code never reads the schema. +""" +import copy +import itertools +import json +import math +from pathlib import Path +import re + +import pytest + +from source_integrity_toolkit.contracts import report as report_contract +from source_integrity_toolkit.contracts import execution + + +ROOT = Path(__file__).resolve().parents[2] +SCHEMA_PATH = ROOT / "schemas/report/sit-report-0.1.schema.json" +REFERENCE_PATH = ROOT / "tests/golden/phase4_reference_report.json" +ROOT_MEMBERS = ( + "contract_version", "report_kind", "report_id", "run", "input_identity", + "input_validation", "scopes", "populations", "basis_index", "capabilities", + "checks", "observability_domains", "results", "findings", "reasons", + "release_limits", +) +RUN_PAIRS = ( + ("audit_report", "completed", "accepted"), + ("audit_report", "interrupted", "accepted"), + ("validation_diagnostics", "rejected", "rejected"), + ("processing_diagnostics", "interrupted", "not_completed"), + ("processing_diagnostics", "failed", "accepted"), + ("processing_diagnostics", "failed", "not_completed"), +) +RESULT_PAIRS = ( + ("completed", "available"), ("completed", "unavailable"), + ("completed", "not_applicable"), ("not_performed", "not_evaluated"), + ("interrupted", "not_evaluated"), ("failed", "not_evaluated"), +) +MAX_INTEGER = 9_007_199_254_740_991 +SCHEMA_KEYWORDS = { + "$schema", "$id", "$comment", "title", "description", "$defs", "$ref", + "type", "enum", "const", "properties", "required", "additionalProperties", + "items", "minItems", "maxItems", "uniqueItems", "minLength", "maxLength", + "pattern", "minimum", "maximum", "allOf", "anyOf", "oneOf", "not", + "if", "then", "else", +} + + +def load_json(path): + def unique(pairs): + result = {} + for key, value in pairs: + assert key not in result, ("duplicate_json_key", key) + result[key] = value + return result + return json.loads(path.read_bytes(), object_pairs_hook=unique) + + +def json_equal(left, right): + """JSON scalar equality keeps booleans separate from numbers.""" + if type(left) in (int, float) and type(right) in (int, float): + return left == right + if type(left) is not type(right): + return False + if type(left) is dict: + return left.keys() == right.keys() and all( + json_equal(left[key], right[key]) for key in left) + if type(left) is list: + return len(left) == len(right) and all( + json_equal(a, b) for a, b in zip(left, right)) + return left == right + + +def schema_accepts(value, rule, schema): + """Finite JSON-value evaluator; unsupported assertions fail loudly. + + JSON Schema integers include integral JSON numbers such as 1.0. The + in-process Python report contract separately requires exact built-in ints. + """ + if type(rule) is bool: + return rule + assert type(rule) is dict and set(rule) <= SCHEMA_KEYWORDS, set(rule) - SCHEMA_KEYWORDS + if "$ref" in rule: + ref = rule["$ref"] + assert ref.startswith("#/$defs/") and ref.count("/") == 2 + if not schema_accepts(value, schema["$defs"][ref.split("/")[-1]], schema): + return False + if "type" in rule: + kinds = rule["type"] if type(rule["type"]) is list else [rule["type"]] + accepted = {"null": value is None, "boolean": type(value) is bool, + "integer": type(value) is int or (type(value) is float and + math.isfinite(value) and value.is_integer()), + "number": type(value) is int or (type(value) is float and math.isfinite(value)), + "string": type(value) is str, "array": type(value) is list, + "object": type(value) is dict} + assert set(kinds) <= set(accepted) + if not any(accepted[kind] for kind in kinds): + return False + if "const" in rule and not json_equal(value, rule["const"]): + return False + if "enum" in rule and not any(json_equal(value, item) for item in rule["enum"]): + return False + if type(value) is dict: + if any(key not in value for key in rule.get("required", [])): + return False + props = rule.get("properties", {}) + for key, item in value.items(): + if key in props: + if not schema_accepts(item, props[key], schema): + return False + elif "additionalProperties" in rule and not schema_accepts( + item, rule["additionalProperties"], schema): + return False + if type(value) is list: + if len(value) < rule.get("minItems", 0) or len(value) > rule.get("maxItems", len(value)): + return False + if "items" in rule and not all(schema_accepts(item, rule["items"], schema) for item in value): + return False + if rule.get("uniqueItems") and any(json_equal(value[i], value[j]) + for i in range(len(value)) for j in range(i)): + return False + if type(value) is str: + if len(value) < rule.get("minLength", 0) or len(value) > rule.get("maxLength", len(value)): + return False + if "pattern" in rule and re.search(rule["pattern"], value) is None: + return False + if type(value) in (int, float): + if "minimum" in rule and value < rule["minimum"]: + return False + if "maximum" in rule and value > rule["maximum"]: + return False + for keyword in ("allOf", "anyOf", "oneOf"): + if keyword in rule: + accepted = [schema_accepts(value, item, schema) for item in rule[keyword]] + if keyword == "allOf" and not all(accepted): + return False + if keyword == "anyOf" and not any(accepted): + return False + if keyword == "oneOf" and sum(accepted) != 1: + return False + if "not" in rule and schema_accepts(value, rule["not"], schema): + return False + if "if" in rule: + branch = "then" if schema_accepts(value, rule["if"], schema) else "else" + if branch in rule and not schema_accepts(value, rule[branch], schema): + return False + return True + + +class RecordingPort: + """Project test-owned port; no public invocation accepts this object.""" + def __init__(self, stop_after=None): + self.units = 0 + self.checks = 0 + self.stop_after = stop_after + + def charge(self, units): + assert type(units) is int and units >= 0 + if self.stop_after is not None and self.units + units > self.stop_after: + raise RuntimeError("controlled_test_stop") + self.units += units + + def check(self): + self.checks += 1 + + +def validate(document): + port = RecordingPort() + report_contract._validate_report_document(document, port) + return port + + +def test_finite_schema_evaluator_positive_and_single_constraint_negatives(): + schema = {"$defs": {"Item": {"type": "integer", "minimum": 0, "maximum": 2}}} + rule = {"type": "object", "properties": {"items": {"type": "array", + "items": {"$ref": "#/$defs/Item"}, "minItems": 1, "maxItems": 2, + "uniqueItems": True}}, "required": ["items"], "additionalProperties": False} + assert schema_accepts({"items": [0, 2]}, rule, schema) + for bad in ({}, {"items": []}, {"items": [0, 1, 2]}, {"items": [0, 0]}, + {"items": [True]}, {"items": [-1]}, {"items": [3]}, + {"items": [0], "extra": None}): + assert not schema_accepts(bad, rule, schema) + assert schema_accepts("a", {"oneOf": [{"const": "a"}, {"const": "b"}]}, schema) + assert not schema_accepts("a", {"oneOf": [{"const": "a"}, {"type": "string"}]}, schema) + assert not schema_accepts(True, {"enum": [1]}, schema) + assert not schema_accepts(0, {"not": {"const": 0}}, schema) + conditional = {"if": {"type": "integer"}, "then": {"minimum": 2}, + "else": {"type": "string", "pattern": "^a$", "minLength": 1}} + assert schema_accepts(2, conditional, schema) + assert schema_accepts("a", conditional, schema) + assert not schema_accepts(1, conditional, schema) + assert not schema_accepts("b", conditional, schema) + with pytest.raises(AssertionError): + schema_accepts({}, {"unsupportedValidation": True}, schema) + + +RELEASE_LIMITS = [ + "Offline analysis of caller-supplied records only.", + "Source identity, authenticity and external events are not independently authenticated.", + "No live monitoring or active content-level poisoning, injection or authorship detection was performed.", + "No universal truth, integrity, independence or safety score is produced.", + "No automatic intervention, source contact or changes to the audited system are performed.", + "Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence.", +] + + +def diagnostic_document(kind="processing_diagnostics", state="failed", input_state="not_completed"): + """Literal source-shaped example; not produced by a runtime or renderer.""" + code = "input_constraint_violation" if state == "rejected" else ( + "resource_limit_reached" if state == "interrupted" else "execution_failed") + diagnostic = {"code": code, "location": None, + "safe_message": "Processing did not complete.", + "qualifications": ["No source-quality conclusion."]} + if state == "rejected": + diagnostic["code"] = "invalid_syntax" + clock = {"state": "unknown", "value": None, "precision": None, + "reason": "not_recorded_by_SIT-RP-0.1"} + document = { + "contract_version": "sit-report/0.1", "report_kind": kind, + "report_id": "SIT-RPT-000001", + "run": {"processing_state": state, "tool_name": "Source Integrity Toolkit", + "tool_version": "0.1.0.dev0", "input_contract_version": "sit-bundle/0.1", + "requested_diagnostic_ids": ["SIT-M%03d" % n for n in range(1, 16)], + "completed_diagnostic_ids": [], "started_at": dict(clock), + "finished_at": dict(clock), "diagnostics": [diagnostic], + "qualifications": ["SIT-RP-0.1", + "Wall-clock start and finish times are not recorded by SIT-RP-0.1."]}, + "input_identity": {"source_mode": "in_process", "input_contract_version": None, + "bundle_id": None, "snapshot_id": None, + "declared_predecessor": None, "raw_file_digest": None, + "qualifications": ["In-process input has no raw file bytes.", + "Identifiers unavailable before completed parsing."]}, + "input_validation": {"state": input_state, + "diagnostics": [copy.deepcopy(diagnostic)] if state == "rejected" else []}, + "scopes": [], "populations": [], "basis_index": [], "capabilities": [], + "checks": [], "observability_domains": [], "results": [], "findings": [], + "reasons": [], "release_limits": list(RELEASE_LIMITS), + } + if input_state == "accepted": + # Accepted input has already passed the required bundle identity + # fields. A later processing failure does not erase that known fact. + document["input_identity"].update( + input_contract_version="sit-bundle/0.1", bundle_id="BUNDLE-1", + snapshot_id="SNAPSHOT-1", qualifications=[ + "In-process input has no raw file bytes.", + "Input identity was accepted before the later processing failure."]) + return document + + +def assert_both(document): + schema = load_json(SCHEMA_PATH) + assert schema_accepts(document, schema, schema) + return validate(document) + + +def assert_rejected(document, *, schema_too=True): + if schema_too: + schema = load_json(SCHEMA_PATH) + assert not schema_accepts(document, schema, schema) + with pytest.raises(TypeError): + validate(document) + + +@pytest.mark.parametrize("kind,state,input_state", RUN_PAIRS[2:]) +def test_all_four_diagnostic_state_combinations_preserve_actual_acceptance(kind, state, input_state): + doc = diagnostic_document(kind, state, input_state) + port = assert_both(doc) + assert port.units > 0 + frozen = report_contract._freeze_report_document(doc, RecordingPort()) + assert frozen["run"]["processing_state"] == state + assert frozen["input_validation"]["state"] == input_state + + +@pytest.mark.parametrize("kind,state,input_state", [p for p in itertools.product( + ("audit_report", "validation_diagnostics", "processing_diagnostics"), + ("completed", "interrupted", "rejected", "failed"), + ("accepted", "rejected", "not_completed")) if p not in RUN_PAIRS]) +def test_forbidden_run_state_combinations_do_not_promote_acceptance(kind, state, input_state): + baseline = diagnostic_document() + assert_both(baseline) + baseline["report_kind"] = kind + baseline["run"]["processing_state"] = state + baseline["input_validation"]["state"] = input_state + assert_rejected(baseline) + + +@pytest.mark.parametrize("member", ROOT_MEMBERS) +@pytest.mark.parametrize("mode", ("missing", "wrong_type")) +def test_each_of_sixteen_root_members_is_required_and_typed(member, mode): + doc = diagnostic_document() + assert set(doc) == set(ROOT_MEMBERS) + assert_both(doc) + if mode == "missing": + del doc[member] + else: + doc[member] = True + assert_rejected(doc) + + +@pytest.mark.parametrize("member", ("witnesses", "overall_level", "max_level", "integrity_score", + "publication_state", "_prepared", "_json_bytes")) +def test_report_root_rejects_new_scores_private_trees_and_transport_members(member): + doc = diagnostic_document() + assert_both(doc) + doc[member] = None + assert_rejected(doc) + + +def test_immutable_document_is_deeply_detached_and_has_no_mutable_mapping_backing(): + from collections.abc import Mapping + doc = diagnostic_document() + frozen = report_contract._freeze_report_document(doc, RecordingPort()) + assert isinstance(frozen, Mapping) + assert tuple(frozen) == ROOT_MEMBERS or set(frozen) == set(ROOT_MEMBERS) + doc["run"]["qualifications"].append("caller mutation") + doc["run"]["tool_name"] = "caller replacement" + doc["release_limits"].clear() + assert frozen["run"]["tool_name"] == "Source Integrity Toolkit" + assert frozen["run"]["qualifications"] == ( + "SIT-RP-0.1", "Wall-clock start and finish times are not recorded by SIT-RP-0.1.") + assert frozen["release_limits"] == tuple(RELEASE_LIMITS) + stack = [frozen] + while stack: + item = stack.pop() + assert not isinstance(item, (dict, list)) + if isinstance(item, Mapping): + assert not hasattr(item, "__dict__") + with pytest.raises((TypeError, AttributeError)): + item["intruder"] = None + stack.extend(item.values()) + elif type(item) is tuple: + stack.extend(item) + else: + assert type(item) in (str, bool, int, type(None)) + + +@pytest.mark.parametrize("amount", (0, 1, 20, 100)) +def test_contract_work_propagates_controlled_stop_without_returning_a_partial_document(amount): + with pytest.raises(RuntimeError, match="^controlled_test_stop$"): + report_contract._freeze_report_document(diagnostic_document(), RecordingPort(amount)) + + +@pytest.mark.parametrize("bad", (True, 1, 1.0, None, [], (), "document")) +def test_root_requires_exact_owned_object_shape(bad): + with pytest.raises(TypeError): + validate(bad) + + +def test_cyclic_containers_are_rejected_without_recursion_escape(): + doc = diagnostic_document() + doc["run"]["diagnostics"].append(doc) + with pytest.raises(TypeError): + validate(doc) + + +def test_public_report_type_is_declared_without_a_fabricated_success_constructor(): + assert isinstance(report_contract.AuditReport, type) + for args in ((), ({},), (diagnostic_document(),)): + with pytest.raises(TypeError): + report_contract.AuditReport(*args) + for name in ROOT_MEMBERS: + assert isinstance(report_contract.AuditReport.__dict__[name], property) + assert report_contract.AuditReport.__dict__[name].fset is None + assert callable(report_contract.AuditReport.to_json_bytes) + assert callable(report_contract.AuditReport.to_markdown_bytes) + + +def test_reference_envelope_is_accepted_by_both_independent_contract_surfaces(): + doc = load_json(REFERENCE_PATH) + assert set(doc) == set(ROOT_MEMBERS) + assert doc["report_kind"] == "audit_report" + assert doc["run"]["processing_state"] == "completed" + assert doc["input_validation"]["state"] == "accepted" + assert_both(doc) + + +@pytest.mark.parametrize("state,reason", (("interrupted", "resource_limit_reached"), + ("failed", "execution_failed"))) +@pytest.mark.parametrize("input_state", ("accepted", "not_completed")) +def test_abort_retains_actual_states_and_only_fixed_safe_text(state, reason, input_state): + error = execution.AuditAbort(state, input_state, reason) + assert isinstance(error, Exception) + assert error.processing_state == state + assert error.input_validation_state == input_state + assert error.reason_code == reason + assert error.publication_state == "not_published" + assert error.args == ("Audit could not be completed.",) + assert str(error) == error.safe_message == "Audit could not be completed." + assert repr(error) == "AuditAbort()" + with pytest.raises((AttributeError, TypeError)): + error.input_validation_state = "accepted" if input_state != "accepted" else "rejected" + with pytest.raises(execution.AuditAbort) as caught: + raise error + assert caught.value is error + + +@pytest.mark.parametrize("state,reason", (("completed", "resource_limit_reached"), + ("failed", "resource_limit_reached"), ("interrupted", "execution_failed"), + ("failed", "caller_secret"), ("cancelled", "resource_limit_reached"))) +def test_abort_rejects_invented_or_mismatched_stop_classification(state, reason): + with pytest.raises(TypeError, match="^invalid_audit_transport$"): + execution.AuditAbort(state, "accepted", reason) + + +@pytest.mark.parametrize("input_state", ("rejected", "unknown", True, None, "private input")) +def test_abort_and_cancellation_cannot_invent_a_validation_state(input_state): + with pytest.raises(TypeError, match="^invalid_audit_transport$"): + execution.AuditAbort("failed", input_state, "execution_failed") + with pytest.raises(TypeError, match="^invalid_audit_transport$"): + execution.AuditCancelled(input_state) + + +@pytest.mark.parametrize("publication", ("published", "unknown", "private path", True, None)) +def test_phase4_transports_cannot_claim_publication(publication): + with pytest.raises(TypeError): + execution.AuditAbort("failed", "accepted", "execution_failed", publication) + with pytest.raises(TypeError): + execution.AuditCancelled("accepted", publication) + + +@pytest.mark.parametrize("input_state", ("accepted", "not_completed")) +def test_cancellation_is_payload_free_and_does_not_fabricate_a_report_reason(input_state): + error = execution.AuditCancelled(input_state) + assert error.input_validation_state == input_state + assert error.publication_state == "not_published" + assert error.args == ("Audit cancelled.",) + assert str(error) == error.safe_message == "Audit cancelled." + assert repr(error) == "AuditCancelled()" + assert not hasattr(error, "reason_code") + + +def test_usage_error_has_only_the_fixed_trusted_invocation_message_and_code(): + error = execution.AuditUsageError() + assert isinstance(error, ValueError) + assert error.code == "invalid_invocation" + assert error.args == ("Invalid audit invocation.",) + assert str(error) == error.safe_message == "Invalid audit invocation." + assert repr(error) == "AuditUsageError()" + for value in ("secret key", {"secret": "value"}, ValueError("private path")): + with pytest.raises(TypeError): + execution.AuditUsageError(value) + + +def test_hostile_protocols_cannot_run_during_contract_or_transport_rejection(): + calls = [] + + def trip(self, *args, **kwargs): + calls.append("protocol") + raise AssertionError("hostile_protocol_executed") + + class Hostile: + __iter__ = __eq__ = __hash__ = __repr__ = __str__ = __bool__ = __index__ = trip + + class HostileDict(dict): + __iter__ = __getitem__ = items = keys = values = __len__ = trip + + class HostileList(list): + __iter__ = __getitem__ = __len__ = trip + + class HostileStr(str): + __iter__ = __eq__ = __hash__ = __repr__ = __str__ = __len__ = trip + + class HostileInt(int): + __eq__ = __hash__ = __repr__ = __str__ = __index__ = trip + + for bad in (Hostile(), HostileDict(), HostileList(), HostileStr("x"), HostileInt(1)): + with pytest.raises(TypeError): + validate(bad) + doc = diagnostic_document() + doc["run"]["tool_name"] = bad + with pytest.raises(TypeError): + validate(doc) + with pytest.raises(TypeError): + execution.AuditAbort(bad, "accepted", "execution_failed") + with pytest.raises(TypeError): + execution.AuditCancelled(bad) + assert calls == [] + + +def test_w02_keeps_both_public_audit_functions_in_their_existing_refusal_state(): + import source_integrity_toolkit as package + assert package.__all__ == ("audit_bundle", "audit_file", "__version__") + with pytest.raises(NotImplementedError): + package.audit_bundle({}) + with pytest.raises(NotImplementedError): + package.audit_file(object(), object()) + + +# These are literal component examples derived from Reporting sections 12-18, +# Lineage 3.1, and the approved W02 projection choices. They intentionally do +# not claim assembly, disclosure execution, public delivery, or graph closure. +FIELD_CASES = tuple( + ("SIT-M%03d" % family, field, kind) + for family, kind, fields in ( + (1, "count", "nominal_seed_artifact_record_count unresolved_seed_artifact_reference_count seed_evidence_item_count claim_artifact_record_count claim_unassigned_seed_artifact_record_count"), + (2, "count", "reached_origin_record_count documentary_origin_boundary_record_count"), + (2, "record_disclosures", "origin_boundary_disclosures"), + (3, "count", "submitted_comparison_member_count qualified_process_set_member_count qualified_origin_set_member_count"), + (3, "record_disclosures", "independence_assessment_disclosures"), + (4, "incidence", "per_seed_origin_memberships origin_incidence_counts"), + (4, "partition", "seed_origin_dispositions"), + (4, "fraction", "documentary_origin_resolution_fraction"), + (5, "fraction", "single_origin_contribution_hhi"), + (6, "partition", "immediate_evidence_layer_dispositions"), + (6, "fraction", "inherited_only_seed_fraction"), + (6, "completion_interval", "inherited_only_completion_interval"), + (7, "count", "unresolved_frontier_reference_count unqualified_terminal_record_count seed_items_with_unresolved_ancestry_count"), + (7, "record_disclosures", "ancestry_gap_disclosures"), + (8, "count", "shared_recorded_ancestor_count matching_family_label_count"), + (8, "record_disclosures", "evaluator_overlap_disclosures"), + (8, "witness_collection", "evaluator_overlap_witnesses"), + (9, "record_disclosures", "externality_assessment_disclosures externality_stage_links"), + (10, "record_disclosures", "pipeline_stage_disclosures cohort_transition_disclosures"), + (10, "partition", "stage_member_partition"), + (10, "fraction", "stage_occurrence_fraction cohort_transition_fraction"), + (10, "completion_interval", "stage_occurrence_completion_interval cohort_transition_completion_interval"), + (11, "witness_collection", "declared_correction_route_witnesses applicable_authorized_route_witnesses"), + (11, "record_disclosures", "correction_route_disclosures"), + (12, "count", "correction_case_record_count handling_event_record_count linked_change_event_record_count documentary_linked_change_target_count cases_with_documentary_linked_change_count"), + (12, "record_disclosures", "correction_case_disclosures correction_target_change_disclosures reported_capacity_disclosures"), + (13, "record_disclosures", "corrective_independence_disclosures human_contribution_disclosures"), + (14, "record_disclosures", "anomaly_context_disclosures contestation_disclosures tail_stage_result_links"), + (15, "record_disclosures", "coverage_disclosures documentary_basis_gap_disclosures"), + (15, "partition", "declared_basis_inventory reference_availability_inventory"), + ) for field in fields.split() +) + + +def input_ref(identifier="REC-1", collection="records", selector=None): + return {"collection": collection, "identifier": identifier, "selector": selector} + + +def time_value(state="unknown", value=None, precision=None, reason="Not recorded in this example."): + result = {"state": state, "value": value, "precision": precision} + if reason is not None: + result["reason"] = reason + return result + + +def result_example(family="SIT-M001", field="seed_evidence_item_count", kind="count"): + return { + "id": "SIT-RES-000001", "diagnostic_id": family, "field_key": field, + "scope_ref": "SIT-SCP-000001", "population_refs": ["SIT-POP-000001"], + "execution_state": "completed", "result_state": "available", + "result_origin": "inventory", "value_kind": kind, "value": 2, + "check_refs": ["SIT-CHK-000001"], "basis_refs": ["SIT-BAS-000001"], + "witness_refs": [], "reason_refs": [], + "interpretation_limit": "Counts supplied records in the named finite population only.", + } + + +def partition_example(labels=("Y", "F", "U")): + members = [input_ref("MEMBER-1"), input_ref("MEMBER-2")] + return {"population_ref": "SIT-POP-000001", "categories": [ + {"label": label, "member_refs": ([members[0]] if i == 0 else + [members[1]] if i == len(labels) - 1 else []), + "count": 1 if i in (0, len(labels) - 1) else 0} + for i, label in enumerate(labels)], "total": 2} + + +def interval_example(): + return {"lower": {"numerator": 1, "denominator": 2}, + "upper": {"numerator": 2, "denominator": 2}, + "interval_kind": "finite_cohort_completion", + "population_ref": "SIT-POP-000001", "partition": partition_example()} + + +def incidence_example(): + first, second = input_ref("E1"), input_ref("E2") + origin1, origin2 = input_ref("O1"), input_ref("O2") + return {"population_ref": "SIT-POP-000001", + "memberships": [{"member_ref": first, "origin_refs": [origin1, origin2]}, + {"member_ref": second, "origin_refs": [origin1]}], + "origin_counts": [{"origin_ref": origin1, "member_refs": [first, second], "count": 2}, + {"origin_ref": origin2, "member_refs": [first], "count": 1}], + "total": 2, "nonexclusive": True} + + +def provenance_example(): + return {"attributed_to_ref": "ACTOR-1", "basis_kind": "declaration", + "evidence_ref_ids": [], "method": "Supplied source record.", + "qualifications": ["No external authentication was performed."]} + + +def pipeline_record_example(state="unknown"): + return {"id": "PIPE-1", "kind": "pipeline_record", + "data": {"subject_ref": "ANOMALY-1", "run_key": "RUN-1", "stage_key": "STAGE-1", + "stage": "admission", "state": state, "output_refs": [], + "observed_at": time_value(), "linkage_kind": "declaration", + "detail": "The source records this stage state with an explicit limitation."}, + "provenance": provenance_example()} + + +def disclosure_example(): + return {"source": input_ref("PIPE-1"), + "fields": {"native_record": pipeline_record_example(), + "qualification_state": "unmet", "reason_codes": ["support_uninspectable"]}, + "qualifications": ["Source-native unknown remains visible as data."]} + + +def graph_node(identifier="E1", kind="evidence_item"): + return {"ref": input_ref(identifier), "kind": kind} + + +def graph_edge(): + return {"source": graph_node(), "target": graph_node("O1", "origin_event"), + "source_ref": input_ref("A-1", "assertions"), "predicate": "originates_from", + "eligible": True, "reason_codes": []} + + +def graph_component(): + return {"type": "graph_witness", "kind": "path", "nodes": [graph_node(), graph_node("O1", "origin_event")], + "members": [], "starts": [], "examined_nodes": [], + "frontiers": [], "terminals": [], "edges": [graph_edge()], + "internal_edges": [], "exit_edges": [], "examined_edges": [], "observations": [], + "target": None, "member_count": 3} + + +def component_examples(): + examples = { + "InputRef": input_ref(), + "InquiryRef": input_ref("I-1", "inquiries"), + "RecordRef": input_ref(), + "AssertionRef": input_ref("A-1", "assertions"), + "EvidenceRef": input_ref("ER-1", "evidence_references"), + "TimeValue": time_value(), + "TimeWindow": {"start": time_value("known", "2024-02-29", "date", None), + "end": time_value(), "note": "The ending date was not recorded."}, + "Scope": {"id": "SIT-SCP-000001", "inquiry_ref": input_ref("I-1", "inquiries"), + "claim_refs": [input_ref("C-1")], "target_refs": [input_ref("E-1")], + "dependency_dimension": "acquisition", "graph_view": "claim_origin", + "temporal_basis": "snapshot_structural", "requested_time": None, + "coverage_refs": [], "qualifications": ["Supplied current snapshot only."]}, + "CaseTarget": {"case_ref": input_ref("CASE-1"), "before_ref": input_ref("TARGET-1")}, + "Population": {"id": "SIT-POP-000001", "scope_ref": "SIT-SCP-000001", + "unit": "evidence_item", "member_refs": [input_ref("E1"), input_ref("E2")], + "selection_rule": "E(I,C)", "coverage_refs": [], "basis_refs": [], + "membership_state": "enumerated_for_scope", "qualifications": []}, + "PrerequisiteCheck": {"id": "SIT-CHK-000001", "check_id": "PC02", + "scope_ref": "SIT-SCP-000001", "state": "met", + "input_refs": [input_ref("E1")], "reason_refs": [], + "note": "This finite supplied population is enumerated."}, + "Reason": {"id": "SIT-RSN-000001", "code": "upstream_coverage_incomplete", + "scope_ref": "SIT-SCP-000001", "affected_result_refs": ["SIT-RES-000001"], + "input_refs": [input_ref("E1")], "detail": "A supplied history remains incomplete.", + "classification": "evidence_gap"}, + "Capability": {"id": "SIT-CAP-000001", "diagnostic_id": "SIT-M001", + "inquiry_ref": input_ref("I-1", "inquiries"), + "scope_refs": ["SIT-SCP-000001"], "check_refs": ["SIT-CHK-000001"], + "result_refs": ["SIT-RES-000001"], "available_result_refs": ["SIT-RES-000001"], + "unavailable_result_refs": [], "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], "reason_refs": [], + "scope_note": "One finite requested inventory cell."}, + "ObservabilityDomain": {"level_index": 0, "label": "Artifact and contribution inventory", + "available_result_refs": ["SIT-RES-000001"], + "unavailable_result_refs": [], "not_evaluated_result_refs": [], + "reason_refs": []}, + "Result": result_example(), + "Fraction": {"numerator": 26, "denominator": 36}, + "PartitionCategory": {"label": "Y", "member_refs": [input_ref("MEMBER-1")], "count": 1}, + "Partition": partition_example(), + "CompletionInterval": interval_example(), + "IncidenceMembership": incidence_example()["memberships"][0], + "OriginIncidenceCount": incidence_example()["origin_counts"][0], + "Incidence": incidence_example(), + } + doc = diagnostic_document() + examples.update({name: copy.deepcopy(doc[key]) for name, key in ( + ("Run", "run"), ("InputIdentity", "input_identity"), + ("InputValidation", "input_validation"))}) + examples["Diagnostic"] = copy.deepcopy(doc["run"]["diagnostics"][0]) + examples.update({ + "Predecessor": {"bundle_id": "BUNDLE-1", "snapshot_id": "SNAPSHOT-0"}, + "BasisScope": {"inquiry_refs": [input_ref("I-1", "inquiries")], + "claim_refs": [input_ref("C-1")], + "effective_window": {"start": time_value(), "end": time_value()}}, + "BasisTime": {"asserted_at": time_value("known", "2024-02-29", "date", None)}, + "Lifecycle": {"state": "withdrawn", "basis_refs": [input_ref("ER-2", "evidence_references")]}, + "BasisEntry": {"id": "SIT-BAS-000001", "source": input_ref("A-1", "assertions"), + "basis_kind": "declaration", "asserter_ref": input_ref("ACTOR-1"), + "attestor_ref": None, "method": "Recorded assertion supplied by its asserter.", + "support_refs": [input_ref("ER-1", "evidence_references")], + "availability": None, "scope": { + "inquiry_refs": [input_ref("I-1", "inquiries")], + "claim_refs": [input_ref("C-1")], + "effective_window": {"start": time_value(), "end": time_value()}}, + "time": {"asserted_at": time_value()}, + "lifecycle": {"state": "active", "basis_refs": []}, + "qualifications": ["Attribution does not establish documentary qualification."], + "check_refs": ["SIT-CHK-000001"]}, + "SelectedProvenance": provenance_example(), + "SelectedPipelineRecordData": pipeline_record_example()["data"], + "SelectedPipelineRecord": pipeline_record_example(), + "Disclosure": disclosure_example(), + "RecordDisclosures": {"records": [disclosure_example()]}, + "WitnessCollection": {"witness_refs": ["SIT-FND-000001"]}, + "GraphNode": graph_node(), "GraphEdge": graph_edge(), + "GraphWitnessComponent": graph_component(), + "InventoryWitnessComponent": {"type": "inventory_witness", "members": [input_ref("E1")], "member_count": 1}, + "ComparisonWitnessComponent": {"type": "comparison_witness", "members": [input_ref("E1"), input_ref("E2")], + "assessment": input_ref("A-1", "assertions"), + "examined_assessments": [input_ref("A-1", "assertions")], "member_count": 3}, + "SelectedMembersComponent": {"type": "selected_members", "members": [input_ref("E1")], "member_count": 1}, + "HumanReviewWitnessComponent": {"type": "human_review_witness", "members": [input_ref("ACTOR-1")], + "examined_assessments": [], "source_refs": [input_ref("EVAL-1")], "member_count": 2}, + "CorrectionOutcomeWitnessComponent": {"type": "correction_outcome_witness", "members": [input_ref("TARGET-1")], + "source_refs": [input_ref("CHANGE-1")], "member_count": 2}, + "FindingWitness": {"input_refs": [input_ref("E1"), input_ref("O1")], "components": [graph_component()]}, + "Finding": {"id": "SIT-FND-000001", "observation_kind": "positive_witness", + "condition_code": "shared_origin_witness", "diagnostic_refs": ["SIT-M004"], + "threat_family_refs": ["SIT-TH001"], "scope_ref": "SIT-SCP-000001", + "population_refs": ["SIT-POP-000001"], "basis_refs": ["SIT-BAS-000001"], + "witness": {"input_refs": [input_ref("E1"), input_ref("O1")], "components": [graph_component()]}, + "contrary_input_refs": [], "reason_refs": [], + "statement": "A supplied claim-scoped path reaches the named origin.", + "interpretation_limit": "This finite path does not authenticate the source or outside world."}, + }) + return examples + + +def validate_component(value, shape): + port = RecordingPort() + report_contract._validate_report_component(value, shape, port) + return port + + +def assert_component(value, shape): + schema = load_json(SCHEMA_PATH) + assert schema_accepts(value, schema["$defs"][shape], schema), shape + port = validate_component(value, shape) + assert port.units > 0 and port.checks > 0 + return port + + +def reject_component(value, shape, *, schema_too=True): + if schema_too: + schema = load_json(SCHEMA_PATH) + assert not schema_accepts(value, schema["$defs"][shape], schema), shape + with pytest.raises(TypeError, match="^invalid_report_contract$"): + validate_component(value, shape) + + +@pytest.mark.parametrize("shape", tuple(component_examples())) +def test_independent_source_shaped_component_is_accepted(shape): + assert_component(component_examples()[shape], shape) + + +@pytest.mark.parametrize("shape,member", [ + (shape, member) for shape, example in component_examples().items() + for member in example if (shape, member) not in (("TimeWindow", "note"), ("BasisTime", "asserted_at")) +]) +@pytest.mark.parametrize("mutation", ("missing", "wrong_type")) +def test_each_component_member_has_a_direct_required_and_type_check(shape, member, mutation): + baseline = component_examples()[shape] + assert_component(baseline, shape) + if mutation == "missing": + del baseline[member] + else: + baseline[member] = {"undeclared_member": "wrong shape"} + reject_component(baseline, shape) + + +@pytest.mark.parametrize("shape", tuple(component_examples())) +def test_every_fixed_component_rejects_an_extra_member(shape): + baseline = component_examples()[shape] + assert_component(baseline, shape) + baseline["undeclared_member"] = "No extension slot is specified here." + reject_component(baseline, shape) + + +@pytest.mark.parametrize("family,field,kind", FIELD_CASES) +def test_all_fifty_seven_field_bindings_are_exact_without_claiming_execution(family, field, kind): + assert len(FIELD_CASES) == 57 and len({row[1] for row in FIELD_CASES}) == 57 + baseline = result_example(family, field, kind) + baseline.update(execution_state="not_performed", result_state="not_evaluated", value=None, + reason_refs=["SIT-RSN-000001"]) + assert_component(baseline, "Result") + wrong_family = copy.deepcopy(baseline) + wrong_family["diagnostic_id"] = "SIT-M015" if family != "SIT-M015" else "SIT-M001" + reject_component(wrong_family, "Result") + wrong_kind = copy.deepcopy(baseline) + wrong_kind["value_kind"] = "count" if kind != "count" else "fraction" + reject_component(wrong_kind, "Result") + + +@pytest.mark.parametrize("state,result_state", RESULT_PAIRS) +def test_all_six_result_state_pairs_keep_value_and_nonresult_distinct(state, result_state): + baseline = result_example() + baseline.update(execution_state=state, result_state=result_state) + if result_state != "available": + baseline.update(value=None, reason_refs=["SIT-RSN-000001"]) + assert_component(baseline, "Result") + wrong = copy.deepcopy(baseline) + wrong["value"] = None if result_state == "available" else 0 + reject_component(wrong, "Result") + + +@pytest.mark.parametrize("state,result_state", [row for row in itertools.product( + ("completed", "not_performed", "interrupted", "failed"), + ("available", "unavailable", "not_applicable", "not_evaluated")) if row not in RESULT_PAIRS]) +def test_disallowed_result_state_pairs_are_rejected(state, result_state): + baseline = result_example() + assert_component(baseline, "Result") + baseline.update(execution_state=state, result_state=result_state) + reject_component(baseline, "Result") + + +@pytest.mark.parametrize("bad", (True, False, -1, MAX_INTEGER + 1, 1.5, "2")) +def test_count_rejects_boolean_negative_nonportable_and_noninteger_values(bad): + baseline = result_example() + assert_component(baseline, "Result") + baseline["value"] = bad + reject_component(baseline, "Result") + + +def test_python_count_rejects_integral_float_despite_json_schema_integer_semantics(): + baseline = result_example() + assert_component(baseline, "Result") + baseline["value"] = 2.0 + schema = load_json(SCHEMA_PATH) + assert schema_accepts(baseline, schema["$defs"]["Result"], schema) + reject_component(baseline, "Result", schema_too=False) + + +@pytest.mark.parametrize("state", ("unknown", "withheld", "not_applicable")) +def test_nonknown_time_values_require_reason_and_null_value_precision(state): + baseline = time_value(state) + assert_component(baseline, "TimeValue") + for member, bad in (("reason", ""), ("value", "2024-02-29"), ("precision", "date")): + changed = copy.deepcopy(baseline) + changed[member] = bad + reject_component(changed, "TimeValue") + del baseline["reason"] + reject_component(baseline, "TimeValue") + + +@pytest.mark.parametrize("value,precision", (("2024-02-29", "date"), + ("2026-10-11T19:18:40-07:00", "instant"), + ("2026-10-12T02:18:40.125Z", "instant"))) +def test_known_time_preserves_precision_offset_and_optional_reason(value, precision): + # Lineage 3.1 permits omission of the reason for a known TimeValue. + baseline = time_value("known", value, precision, None) + assert_component(baseline, "TimeValue") + baseline["reason"] = "Original source time; no timezone conversion." + assert_component(baseline, "TimeValue") + + +@pytest.mark.parametrize("value,precision", (("2023-02-29", "date"), + ("2024-04-31", "date"), ("2026-10-11T19:18:40", "instant"), + ("2026-10-11T24:00:00Z", "instant"), ("2026-10-11T19:18:60Z", "instant"))) +def test_invalid_time_is_not_made_known_by_a_string_shaped_payload(value, precision): + # Calendar and clock validity are runtime semantic checks, not a claim + # that this finite schema evaluator implements a date-time format engine. + with pytest.raises(TypeError, match="^invalid_report_contract$"): + validate_component(time_value("known", value, precision, None), "TimeValue") + + +@pytest.mark.parametrize("collection", ("inquiries", "records", "assertions", "evidence_references")) +@pytest.mark.parametrize("identifier", ("R-1", "R.with:parts_1", "SIT-RES-000001")) +def test_input_reference_namespace_is_typed_and_not_inferred_from_id_spelling(collection, identifier): + assert_component(input_ref(identifier, collection), "InputRef") + + +@pytest.mark.parametrize("selector", (None, "data.claim_ref", "provenance.evidence_ref_ids", + "data.role_bindings[role=judge].object_ref", + "data.role_bindings[role=judge;object_ref=MODEL.v1:main_1].evidence_ref_ids")) +def test_input_reference_preserves_named_field_and_role_selectors(selector): + assert_component(input_ref("EVAL-1", selector=selector), "InputRef") + + +@pytest.mark.parametrize("collection", ("results", "findings", "scopes", "unknown")) +def test_input_reference_cannot_use_a_report_collection(collection): + reject_component(input_ref("R-1", collection), "InputRef") + + +@pytest.mark.parametrize("shape,wrong_collection", (("InquiryRef", "records"), + ("RecordRef", "inquiries"), ("AssertionRef", "evidence_references"), + ("EvidenceRef", "assertions"))) +def test_specialized_input_references_keep_their_collection(shape, wrong_collection): + baseline = component_examples()[shape] + assert_component(baseline, shape) + baseline["collection"] = wrong_collection + reject_component(baseline, shape) + + +@pytest.mark.parametrize("shape,prefix", (("ScopeId", "SIT-SCP-"), + ("PopulationId", "SIT-POP-"), ("BasisId", "SIT-BAS-"), ("CapabilityId", "SIT-CAP-"), + ("CheckId", "SIT-CHK-"), ("ResultId", "SIT-RES-"), ("FindingId", "SIT-FND-"), + ("ReasonId", "SIT-RSN-"))) +def test_report_local_id_prefix_and_minimum_width_are_typed(shape, prefix): + assert_component(prefix + "000001", shape) + assert_component(prefix + "1000000", shape) + for bad in (prefix + "1", prefix + "000000", "INPUT-1", "SIT-RPT-000001"): + reject_component(bad, shape) + + +@pytest.mark.parametrize("member,bad", (("numerator", True), ("numerator", -1), + ("numerator", MAX_INTEGER + 1), ("denominator", False), ("denominator", 0), + ("denominator", -1), ("denominator", MAX_INTEGER + 1), ("denominator", "36"))) +def test_fraction_components_keep_exact_portable_nonnegative_arithmetic(member, bad): + baseline = {"numerator": 26, "denominator": 36} + assert_component(baseline, "Fraction") + baseline[member] = bad + reject_component(baseline, "Fraction") + + +def test_fraction_json_contract_omits_decimal_display_without_reducing_original_ratio(): + value = {"numerator": 26, "denominator": 36} + assert_component(value, "Fraction") + frozen = report_contract._copy_report_value(value, RecordingPort()) + assert frozen["numerator"] == 26 and frozen["denominator"] == 36 + value["display_decimal"] = "0.722222" + reject_component(value, "Fraction") + + +def test_interval_retains_two_exact_endpoints_and_finite_completion_classification(): + value = interval_example() + assert_component(value, "CompletionInterval") + for forbidden in ("confidence", "credible", "probability"): + changed = copy.deepcopy(value) + changed["interval_kind"] = forbidden + reject_component(changed, "CompletionInterval") + for endpoint in ("lower", "upper"): + changed = copy.deepcopy(value) + changed[endpoint] = 0.5 + reject_component(changed, "CompletionInterval") + + +@pytest.mark.parametrize("mutation", ("reversed", "different_denominators", "different_population", + "missing_unresolved_member", "wrong_lower", "wrong_upper")) +def test_interval_local_payload_relationships_cannot_change_the_finite_completion_meaning(mutation): + # These are local payload relations, not W03 report-reference resolution. + value = interval_example() + assert_component(value, "CompletionInterval") + if mutation == "reversed": + value["lower"], value["upper"] = value["upper"], value["lower"] + elif mutation == "different_denominators": + value["upper"]["denominator"] = 3 + elif mutation == "different_population": + value["partition"]["population_ref"] = "SIT-POP-000002" + elif mutation == "missing_unresolved_member": + value["partition"]["categories"][1]["member_refs"] = [input_ref("MEMBER-2")] + value["partition"]["categories"][1]["count"] = 1 + value["partition"]["categories"][2]["member_refs"] = [] + value["partition"]["categories"][2]["count"] = 0 + elif mutation == "wrong_lower": + value["lower"]["numerator"] = 0 + else: + value["upper"]["numerator"] = 1 + reject_component(value, "CompletionInterval", schema_too=False) + + +def test_record_completion_interval_uses_the_four_immediate_layer_dispositions(): + # Definitions 24's exact four labels, without invented display spellings. + labels = ("direct_origin_link_only", "inherited_only_at_evidence_layer", + "mixed_direct_and_inherited", "unresolved_at_evidence_layer") + value = interval_example() + value["interval_kind"] = "finite_record_completion" + value["partition"] = {"population_ref": "SIT-POP-000001", "categories": [ + {"label": label, "member_refs": [input_ref("E1")] if i == 1 else + [input_ref("E2")] if i == 3 else [], "count": 1 if i in (1, 3) else 0} + for i, label in enumerate(labels)], "total": 2} + assert_component(value, "CompletionInterval") + + +@pytest.mark.parametrize("mutation", ("repeated_category", "overlap", "wrong_category_count", "wrong_total")) +def test_partition_payload_is_exclusive_and_its_declared_counts_are_coherent(mutation): + value = partition_example() + assert_component(value, "Partition") + if mutation == "repeated_category": + value["categories"][1]["label"] = "Y" + elif mutation == "overlap": + value["categories"][2]["member_refs"] = [input_ref("MEMBER-1")] + elif mutation == "wrong_category_count": + value["categories"][0]["count"] = 2 + else: + value["total"] = 3 + reject_component(value, "Partition", schema_too=False) + + +def test_nonexclusive_incidence_preserves_members_and_counts_in_both_directions(): + value = incidence_example() + assert_component(value, "Incidence") + assert value["total"] == 2 + assert sum(row["count"] for row in value["origin_counts"]) == 3 + value["nonexclusive"] = False + reject_component(value, "Incidence") + + +@pytest.mark.parametrize("mutation", ("duplicate_seed", "duplicate_origin", "wrong_origin_members", + "wrong_origin_count", "missing_origin_count", "wrong_total")) +def test_incidence_local_payload_cannot_drop_or_invent_an_origin_membership(mutation): + value = incidence_example() + assert_component(value, "Incidence") + if mutation == "duplicate_seed": + value["memberships"][1]["member_ref"] = input_ref("E1") + elif mutation == "duplicate_origin": + value["memberships"][0]["origin_refs"].append(input_ref("O1")) + elif mutation == "wrong_origin_members": + value["origin_counts"][1]["member_refs"] = [input_ref("E2")] + elif mutation == "wrong_origin_count": + value["origin_counts"][0]["count"] = 1 + elif mutation == "missing_origin_count": + value["origin_counts"].pop() + else: + value["total"] = 3 + reject_component(value, "Incidence", schema_too=False) + + +@pytest.mark.parametrize("mutation", ("unknown_member", "duplicate_state", "missing_state")) +def test_capability_local_state_lists_are_an_exact_partition(mutation): + value = component_examples()["Capability"] + assert_component(value, "Capability") + if mutation == "unknown_member": + value["available_result_refs"] = ["SIT-RES-000002"] + elif mutation == "duplicate_state": + value["unavailable_result_refs"] = ["SIT-RES-000001"] + else: + value["available_result_refs"] = [] + reject_component(value, "Capability", schema_too=False) + + +def test_domain_does_not_gain_a_fourth_state_column_or_an_overall_score(): + value = component_examples()["ObservabilityDomain"] + assert_component(value, "ObservabilityDomain") + for name in ("not_applicable_result_refs", "overall_level", "quality_score"): + changed = copy.deepcopy(value) + changed[name] = [] + reject_component(changed, "ObservabilityDomain") + + +def test_contract_preserves_legitimate_unicode_but_rejects_surrogates(): + value = component_examples()["Reason"] + value["detail"] = "原始记录: e\u0301 / é / العربية / 🧪" + assert_component(value, "Reason") + frozen = report_contract._copy_report_value(value, RecordingPort()) + assert frozen["detail"] == value["detail"] + value["detail"] = "unpaired \ud800" + reject_component(value, "Reason", schema_too=False) + + +def test_component_work_propagates_stops_without_a_second_budget_or_partial_value(): + value = incidence_example() + for amount in (0, 1, 20): + with pytest.raises(RuntimeError, match="^controlled_test_stop$"): + report_contract._validate_report_component(value, "Incidence", RecordingPort(amount)) + + +def test_capture_counts_repeated_aliases_as_occurrences_and_detaches_each_copy(): + # W02 private capture is paid representation work, not input admission. + row = {"detail": "same supplied text"} + aliased = {"first": row, "second": row} + copied = {"first": dict(row), "second": dict(row)} + aliased_port, copied_port = RecordingPort(), RecordingPort() + frozen_alias = report_contract._copy_report_value(aliased, aliased_port) + frozen_copy = report_contract._copy_report_value(copied, copied_port) + assert aliased_port.units == copied_port.units > 0 + row["detail"] = "changed caller container" + for member in ("first", "second"): + assert frozen_alias[member]["detail"] == frozen_copy[member]["detail"] == "same supplied text" + + +def test_hostile_dict_key_is_rejected_before_hash_comparison_or_representation(): + calls = [] + + class Key: + armed = False + + def __hash__(self): + if self.armed: + calls.append("hash") + raise AssertionError("hostile key was hashed") + return 0 + + def __eq__(self, other): + calls.append("equality") + raise AssertionError("hostile key was compared") + + def __repr__(self): + calls.append("repr") + raise AssertionError("hostile key was represented") + + key = Key() + value = {key: "private payload"} + key.armed = True + with pytest.raises(TypeError, match="^invalid_report_contract$"): + report_contract._copy_report_value(value, RecordingPort()) + assert calls == [] + + +def test_immutable_mapping_rejects_hostile_lookup_key_without_its_protocols(): + calls = [] + + class Key: + def __eq__(self, other): + calls.append("equality") + raise AssertionError("lookup ran caller equality") + + def __hash__(self): + calls.append("hash") + raise AssertionError("lookup ran caller hashing") + + def __repr__(self): + calls.append("repr") + raise AssertionError("lookup ran caller repr") + + frozen = report_contract._copy_report_value({"member": "safe"}, RecordingPort()) + with pytest.raises(KeyError): + frozen[Key()] + assert calls == [] + + +@pytest.mark.parametrize("mutation", ("empty", "subset", "duplicate", "unknown")) +def test_requested_diagnostics_cannot_create_an_unapproved_public_subset(mutation): + doc = diagnostic_document() + assert_both(doc) + requested = doc["run"]["requested_diagnostic_ids"] + if mutation == "empty": + requested.clear() + elif mutation == "subset": + requested.pop() + elif mutation == "duplicate": + requested[-1] = requested[0] + else: + requested[-1] = "SIT-M016" + assert_rejected(doc) + + +def test_completed_family_metadata_uses_registered_unique_families(): + value = component_examples()["Run"] + value["completed_diagnostic_ids"] = ["SIT-M001", "SIT-M004"] + assert_component(value, "Run") + for bad in (["SIT-M016"], ["SIT-M001", "SIT-M001"], [True]): + changed = copy.deepcopy(value) + changed["completed_diagnostic_ids"] = bad + reject_component(changed, "Run") + + +@pytest.mark.parametrize("member", ("release_limits", "qualifications")) +@pytest.mark.parametrize("mutation", ("empty", "missing", "source_override")) +def test_fixed_profile_and_release_statements_cannot_be_overwritten_by_source_text(member, mutation): + doc = diagnostic_document() + assert_both(doc) + target = doc if member == "release_limits" else doc["run"] + if mutation == "empty": + target[member] = [] + elif mutation == "missing": + target[member].pop() + else: + target[member][0] = "Source says this is universally true and authenticated." + assert_rejected(doc) + + +@pytest.mark.parametrize("which", ("started_at", "finished_at")) +def test_run_clock_metadata_cannot_fabricate_a_wall_clock_measurement(which): + doc = diagnostic_document() + assert_both(doc) + doc["run"][which] = time_value("known", "2026-10-11T19:18:40-07:00", "instant", None) + assert_rejected(doc) + + +def test_in_process_identity_cannot_claim_reconstructed_raw_file_bytes(): + value = component_examples()["InputIdentity"] + assert_component(value, "InputIdentity") + value["raw_file_digest"] = {"algorithm": "sha256", "value": "0" * 64, + "covered_material": "Reconstructed JSON for an in-process object."} + reject_component(value, "InputIdentity") + + +@pytest.mark.parametrize("basis_kind", ("declaration", "documented_record", "upstream_inference", + "protected_attestation", "unspecified")) +def test_basis_entry_keeps_original_basis_label_and_explicit_qualification(basis_kind): + value = component_examples()["BasisEntry"] + value["basis_kind"] = basis_kind + if basis_kind == "protected_attestation": + value["attestor_ref"] = input_ref("ATTESTOR-OPAQUE") + assert_component(value, "BasisEntry") + frozen = report_contract._copy_report_value(value, RecordingPort()) + assert frozen["basis_kind"] == basis_kind + assert frozen["qualifications"] == tuple(value["qualifications"]) + value["basis_kind"] = "independently_verified" + reject_component(value, "BasisEntry") + + +@pytest.mark.parametrize("method", (None, "", "A narrowly described supplied method.")) +def test_basis_method_preserves_nullable_string_without_new_nonempty_restriction(method): + # Lineage 3.2 and frozen Provenance use str|null, not text|null. + for shape in ("BasisEntry", "SelectedProvenance"): + value = component_examples()[shape] + value["method"] = method + assert_component(value, shape) + + +def test_basis_time_is_an_explicit_optional_field_map_not_arbitrary_metadata(): + assert_component({}, "BasisTime") + value = {"observed_at": time_value(), "valid_window": { + "start": time_value("known", "2024-02-29", "date", None), "end": time_value()}} + assert_component(value, "BasisTime") + value["source_secret_timestamp"] = "unbounded metadata" + reject_component(value, "BasisTime") + + +@pytest.mark.parametrize("state", ("occurred", "did_not_occur", "unknown")) +def test_native_pipeline_states_survive_disclosure_as_source_data(state): + value = disclosure_example() + value["fields"]["native_record"] = pipeline_record_example(state) + assert_component(value, "Disclosure") + result = result_example("SIT-M010", "pipeline_stage_disclosures", "record_disclosures") + result.update(result_origin="attributed_record", value={"records": [value]}) + assert_component(result, "Result") + assert result["execution_state"] == "completed" and result["result_state"] == "available" + frozen = report_contract._copy_report_value(result, RecordingPort()) + assert frozen["value"]["records"][0]["fields"]["native_record"]["data"]["state"] == state + + +@pytest.mark.parametrize("outcome", ("accepted", "rejected", "failed", "unknown")) +def test_native_handling_outcome_is_a_closed_attributed_value_not_a_run_state(outcome): + value = {"outcome": outcome, "reason": "The source records this handling disposition."} + assert_component(value, "SelectedHandlingDetails") + value["outcome"] = "toolkit_certified_correction" + reject_component(value, "SelectedHandlingDetails") + + +@pytest.mark.parametrize("outcome", ("verified", "not_verified", "inconclusive", "revoked", "unknown")) +def test_native_verification_outcome_keeps_its_scope_and_does_not_become_a_badge(outcome): + value = {"verification_scope": "process", "evaluation_ref": "EVAL-1", "reported_outcome": outcome, + "valid_window": {"start": time_value(), "end": time_value()}, + "scope_note": "Only the supplied process assessment is represented."} + assert_component(value, "SelectedVerificationDetails") + value["truth_badge"] = True + reject_component(value, "SelectedVerificationDetails") + + +@pytest.mark.parametrize("member", ("excerpt", "contact", "display_name", "identity_key", "extensions", "path")) +def test_selected_native_shape_has_no_implicit_whole_record_or_secret_export_slot(member): + # Structural whitelist only; actual field selection remains P4-W04 work. + value = pipeline_record_example() + assert_component(value, "SelectedPipelineRecord") + value[member] = "PRIVATE_CANARY_NOT_AN_APPROVED_FIELD" + reject_component(value, "SelectedPipelineRecord") + + +def test_record_disclosure_payload_cannot_hide_an_unregistered_scalar_metric(): + value = disclosure_example() + assert_component(value, "Disclosure") + value["fields"]["integrity_score"] = 100 + reject_component(value, "Disclosure") + + +def test_record_disclosure_family_rejects_a_valid_payload_from_another_owner(): + value = result_example("SIT-M010", "pipeline_stage_disclosures", "record_disclosures") + value.update(result_origin="attributed_record", value={"records": [disclosure_example()]}) + assert_component(value, "Result") + value["diagnostic_id"] = "SIT-M013" + value["field_key"] = "human_contribution_disclosures" + reject_component(value, "Result") + + +def test_witness_collection_references_findings_and_has_no_inline_private_witness(): + value = component_examples()["WitnessCollection"] + assert_component(value, "WitnessCollection") + for wrong in (["SIT-RES-000001"], ["SIT-SCP-000001"], [{"kind": "path", "anchor": []}]): + reject_component({"witness_refs": wrong}, "WitnessCollection") + + +@pytest.mark.parametrize("shape", ("GraphWitnessComponent", "InventoryWitnessComponent", + "ComparisonWitnessComponent", "SelectedMembersComponent", "HumanReviewWitnessComponent", + "CorrectionOutcomeWitnessComponent")) +def test_all_six_typed_witness_components_are_admitted_without_running_their_search(shape): + value = component_examples()[shape] + assert_component(value, shape) + assert_component(value, "WitnessComponent") + value["type"] = "external_full_world_proof" + reject_component(value, "WitnessComponent") + + +@pytest.mark.parametrize("family,field,kind,value", ( + ("SIT-M001", "seed_evidence_item_count", "count", 2), + ("SIT-M005", "single_origin_contribution_hhi", "fraction", {"numerator": 26, "denominator": 36}), + ("SIT-M010", "stage_occurrence_completion_interval", "completion_interval", interval_example()), + ("SIT-M010", "stage_member_partition", "partition", partition_example()), + ("SIT-M004", "per_seed_origin_memberships", "incidence", incidence_example()), + ("SIT-M010", "pipeline_stage_disclosures", "record_disclosures", {"records": [disclosure_example()]}), + ("SIT-M008", "evaluator_overlap_witnesses", "witness_collection", {"witness_refs": ["SIT-FND-000001"]}), +)) +def test_all_seven_available_value_kinds_have_their_own_complete_payload(family, field, kind, value): + baseline = result_example(family, field, kind) + baseline["value"] = copy.deepcopy(value) + if kind == "witness_collection": + baseline["witness_refs"] = ["SIT-FND-000001"] + if kind == "record_disclosures": + baseline["result_origin"] = "attributed_record" + assert_component(baseline, "Result") + for wrong in (None, True, {"arbitrary_json": "not this value's closed payload"}): + changed = copy.deepcopy(baseline) + changed["value"] = wrong + reject_component(changed, "Result") + + +@pytest.mark.parametrize("member,shape", (("scopes", "Scope"), ("populations", "Population"), + ("basis_index", "BasisEntry"), ("capabilities", "Capability"), + ("checks", "PrerequisiteCheck"), ("observability_domains", "ObservabilityDomain"), + ("results", "Result"), ("findings", "Finding"))) +def test_diagnostic_envelope_cannot_smuggle_valid_analytical_components(member, shape): + doc = diagnostic_document() + assert_both(doc) + component = component_examples()[shape] + assert_component(component, shape) + doc[member] = [component] + assert_rejected(doc) + + +def test_diagnostic_reason_can_preserve_a_safe_execution_limit_without_an_analytical_scope(): + doc = diagnostic_document() + doc["reasons"] = [{"id": "SIT-RSN-000001", "code": "execution_failed", "scope_ref": None, + "affected_result_refs": [], "input_refs": [], + "detail": "Processing did not complete.", "classification": "execution"}] + # Reporting 16.1 empties the eight analytical arrays, not all reasons. + assert_both(doc) + + +def test_every_abort_transport_argument_checks_exact_type_before_value_protocols(): + calls = [] + + class Hostile: + def attack(self, *args, **kwargs): + calls.append("protocol") + raise AssertionError("transport executed a caller protocol") + __eq__ = __hash__ = __iter__ = __repr__ = __str__ = __bool__ = attack + + for index in range(4): + args = ["failed", "accepted", "execution_failed", "not_published"] + args[index] = Hostile() + with pytest.raises(TypeError): + execution.AuditAbort(*args) + for index in range(2): + args = ["accepted", "not_published"] + args[index] = Hostile() + with pytest.raises(TypeError): + execution.AuditCancelled(*args) + assert calls == [] + + +def test_nested_selected_source_cannot_trigger_a_conversion_or_copy_hook(): + calls = [] + + class Hostile: + def attack(self, *args, **kwargs): + calls.append("protocol") + raise AssertionError("report capture executed a caller protocol") + __iter__ = __repr__ = __str__ = __float__ = __int__ = __index__ = attack + __copy__ = __deepcopy__ = __reduce__ = __reduce_ex__ = attack + + value = disclosure_example() + value["fields"]["native_record"]["data"]["detail"] = Hostile() + with pytest.raises(TypeError, match="^invalid_report_contract$"): + validate_component(value, "Disclosure") + assert calls == [] + + +def test_complete_trace_witness_kind_preserves_the_existing_private_trace_shape(): + # origins._complete_witness retains starts, examined nodes/edges and + # terminals. These occurrences all contribute to the finite member count. + value = graph_component() + value.update(kind="complete_trace", nodes=[], edges=[], starts=[graph_node()], + examined_nodes=[graph_node(), graph_node("O1", "origin_event")], + examined_edges=[graph_edge()], terminals=[graph_node("O1", "origin_event")], + member_count=5) + assert_component(value, "GraphWitnessComponent") + + +def test_basis_time_retains_inquiry_cutoff_and_window_without_replacing_them_with_run_time(): + value = {"as_of": time_value("known", "2026-10-11", "date", None), + "time_window": {"start": time_value("known", "2026-10-01", "date", None), + "end": time_value("known", "2026-10-11", "date", None)}} + assert_component(value, "BasisTime") + + +def test_input_identifiers_respect_the_existing_128_ascii_byte_boundary(): + value = input_ref("R" * 128) + assert_component(value, "InputRef") + value["identifier"] += "R" + reject_component(value, "InputRef") + + +def test_comparison_witness_can_retain_a_missing_assessment_without_inventing_independence(): + value = component_examples()["ComparisonWitnessComponent"] + value.update(assessment=None, examined_assessments=[], member_count=2) + assert_component(value, "ComparisonWitnessComponent") + + +@pytest.mark.parametrize("shape", ("GraphWitnessComponent", "InventoryWitnessComponent", + "ComparisonWitnessComponent", "SelectedMembersComponent", "HumanReviewWitnessComponent", + "CorrectionOutcomeWitnessComponent")) +def test_witness_member_count_accounts_for_every_retained_local_occurrence(shape): + value = component_examples()[shape] + assert_component(value, shape) + value["member_count"] += 1 + reject_component(value, shape, schema_too=False) + + +@pytest.mark.parametrize("shape", ("HumanReviewWitnessComponent", "CorrectionOutcomeWitnessComponent")) +def test_witness_source_slots_preserve_repeated_occurrences_and_charge_each(shape): + # The private review/outcome owners count source_refs occurrences. A + # repeated role/source slot is not a second independently acquired source. + value = component_examples()[shape] + value["source_refs"].append(copy.deepcopy(value["source_refs"][0])) + value["member_count"] += 1 + assert_component(value, shape) + + +@pytest.mark.parametrize("mutation", ("mismatch", "omitted", "extra")) +def test_witness_collection_payload_matches_its_own_result_witness_references(mutation): + # Reporting 16.4/16.5 and the accepted private _Result require one local + # witness set. Resolving the Finding IDs themselves is separate W03 work. + value = result_example("SIT-M008", "evaluator_overlap_witnesses", "witness_collection") + value.update(value={"witness_refs": ["SIT-FND-000001"]}, witness_refs=["SIT-FND-000001"]) + assert_component(value, "Result") + if mutation == "mismatch": + value["witness_refs"] = ["SIT-FND-000002"] + elif mutation == "omitted": + value["witness_refs"] = [] + else: + value["witness_refs"].append("SIT-FND-000002") + reject_component(value, "Result", schema_too=False) + + +@pytest.mark.parametrize("collection", ("records", "assertions")) +def test_case_target_keeps_legal_assertion_and_record_before_states(collection): + # Lineage 6.8/6.9 allow Assertion targets; private _CaseTarget preserves + # that collection instead of coercing an assertion into a record ref. + value = {"case_ref": input_ref("CASE-1"), "before_ref": input_ref("BEFORE-1", collection)} + assert_component(value, "CaseTarget") + population = component_examples()["Population"] + population.update(unit="case_target", member_refs=[value]) + assert_component(population, "Population") + + +@pytest.mark.parametrize("collection", ("inquiries", "evidence_references")) +def test_case_target_does_not_expand_before_state_into_an_unapproved_collection(collection): + value = {"case_ref": input_ref("CASE-1"), "before_ref": input_ref("BEFORE-1", collection)} + reject_component(value, "CaseTarget") + + +@pytest.mark.parametrize("collection,kind", [ + ("records", kind) for kind in ("claim", "artifact", "actor", "evidence_item", "origin_event", + "model", "evaluation", "correction_channel", "correction_event", "pipeline_record", + "anomaly", "unresolved_reference") +] + [("inquiries", "inquiry"), ("assertions", "assertion"), + ("evidence_references", "evidence_reference")]) +def test_graph_node_uses_the_existing_whole_entity_collection_and_kind(collection, kind): + # Frozen validation.references._index and graph.projections._graph_node + # bind the node to one complete typed entity, without a field selector. + value = {"ref": input_ref("NODE-1", collection), "kind": kind} + assert_component(value, "GraphNode") + for other in ("inquiries", "records", "assertions", "evidence_references"): + if other != collection: + changed = copy.deepcopy(value) + changed["ref"]["collection"] = other + reject_component(changed, "GraphNode") + value["ref"]["selector"] = "data.role_bindings[role=judge].object_ref" + reject_component(value, "GraphNode") + + +@pytest.mark.parametrize("mutation", ("record_owner", "inquiry_owner", "evidence_reference_owner", "field_selector")) +def test_relation_edge_keeps_its_whole_assertion_identity(mutation): + value = graph_edge() + assert_component(value, "GraphEdge") + if mutation == "field_selector": + value["source_ref"]["selector"] = "data.from_ref" + else: + value["source_ref"]["collection"] = { + "record_owner": "records", "inquiry_owner": "inquiries", + "evidence_reference_owner": "evidence_references"}[mutation] + reject_component(value, "GraphEdge") + + +def canonical_edge_example(): + # Evaluation role links are canonical record links without an invented + # RelationAssertion. The selected role remains part of their identity. + return {"source": graph_node("EVAL-1", "evaluation"), + "target": graph_node("MODEL-1", "model"), + "source_ref": input_ref("EVAL-1", selector="data.role_bindings[role=judge].object_ref"), + "predicate": None, "eligible": True, "reason_codes": []} + + +@pytest.mark.parametrize("mutation", ("missing_selector", "empty_selector", "wrong_owner_id", "wrong_owner_collection")) +def test_canonical_record_edge_retains_its_source_entity_and_named_role(mutation): + value = canonical_edge_example() + assert_component(value, "GraphEdge") + if mutation == "missing_selector": + value["source_ref"]["selector"] = None + elif mutation == "empty_selector": + value["source_ref"]["selector"] = "" + elif mutation == "wrong_owner_id": + value["source_ref"]["identifier"] = "EVAL-2" + else: + value["source_ref"]["collection"] = "assertions" + reject_component(value, "GraphEdge", schema_too=mutation in ("missing_selector", "empty_selector")) + + +@pytest.mark.parametrize("shape,member", (("Scope", "inquiry_ref"), + ("Scope", "claim_refs"), ("Capability", "inquiry_ref"))) +def test_scope_and_capability_owners_are_whole_inquiry_or_claim_entities(shape, member): + # Accepted _Scope explicitly uses selector-free Inquiry/Claim references; + # _Capability stores the whole Inquiry ID. General InputRefs retain their + # field selectors in other slots such as basis and canonical edge links. + value = component_examples()[shape] + assert_component(value, shape) + if member == "claim_refs": + value[member][0]["selector"] = "data.claim_key" + else: + value[member]["selector"] = "boundary.system_refs" + reject_component(value, shape) diff --git a/tests/contract/test_report_test_oracles.py b/tests/contract/test_report_test_oracles.py new file mode 100644 index 0000000..4138bdf --- /dev/null +++ b/tests/contract/test_report_test_oracles.py @@ -0,0 +1,365 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""Case-bound, product-independent Phase 4 report and byte oracles. + +The accepted specifications and an independently authored finite dossier supply +these expectations. This module neither imports the product nor generates or +updates golden files. Its equality rule deliberately applies only to the named +reference case; it is not another report validator or a new production API. +""" +import copy +import hashlib +import json +from pathlib import Path +import re + +import pytest + +ROOT = Path(__file__).resolve().parents[2] +GOLDEN = ROOT / 'tests' / 'golden' +FIXTURE = ROOT / 'tests' / 'fixtures' / 'micro' / 'phase4_public_cases.json' +ROOT_ORDER = ( + 'contract_version', 'report_kind', 'report_id', 'run', 'input_identity', + 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', + 'checks', 'observability_domains', 'results', 'findings', 'reasons', + 'release_limits', +) + + +def _expectations(): + return json.loads((GOLDEN / 'phase4_report_expectations.json').read_bytes()) + + +def _reference(): + return _expectations()['reference_document'] + + +def _strict_equal(actual, expected, path='$'): + """Types matter: Python's True == 1 must not erase a count mutation.""" + assert type(actual) is type(expected), path + ': type' + if type(expected) is dict: + assert actual.keys() == expected.keys(), path + ': object members' + for key in expected: + _strict_equal(actual[key], expected[key], path + '.' + key) + elif type(expected) is list: + assert len(actual) == len(expected), path + ': array length' + for index, value in enumerate(expected): + _strict_equal(actual[index], value, path + '[' + str(index) + ']') + else: + assert actual == expected, path + ': value' + + +def _assert_reference_document(candidate): + _strict_equal(candidate, _reference()) + + +def _pairs_no_duplicates(pairs): + result = {} + for key, value in pairs: + assert key not in result, 'duplicate JSON member' + result[key] = value + return result + + +def _decode_json(raw): + return json.loads(raw, object_pairs_hook=_pairs_no_duplicates, + parse_constant=lambda value: (_ for _ in ()).throw(AssertionError(value))) + + +def _assert_reference_json(raw): + assert type(raw) is bytes + assert raw.endswith(b'\n') and not raw.endswith(b'\n\n') + assert b'\r' not in raw and b'\xef\xbb\xbf' not in raw + _assert_reference_document(_decode_json(raw)) + record = _expectations()['exact_bytes']['json'] + assert len(raw) == record['size_bytes'] + assert hashlib.sha256(raw).hexdigest() == record['sha256'] + + +def _six_places(numerator, denominator): + """Independent integer half-up; no floating point or product encoder.""" + whole, remainder = divmod(numerator * 1000000, denominator) + if remainder * 2 >= denominator: + whole += 1 + return str(whole // 1000000) + '.' + str(whole % 1000000).zfill(6) + + +def _parse_reference_markdown(raw): + """Read fixed blocks independently; never execute or render source text.""" + assert type(raw) is bytes + text = raw.decode('utf-8') + assert text.endswith('\n') and not text.endswith('\n\n') and '\r' not in text + expected = _reference() + prefix = ('# Source Integrity Audit\n\nReport kind: ' + expected['report_kind'] + + '\nProcessing state: ' + expected['run']['processing_state'] + + '\nInput state: ' + expected['input_validation']['state'] + '\n\n') + assert text.startswith(prefix) + position = len(prefix) + + def literal(value): + nonlocal position + assert text.startswith(value, position), 'fixed Markdown layout at ' + str(position) + position += len(value) + + def block(): + nonlocal position + start = position + end = text.find('\n', start) + assert end >= 0 + opening = text[start:end] + assert re.fullmatch(r'`{3,}json', opening), 'JSON fence' + fence = opening[:-4] + position = end + 1 + end = text.find('\n' + fence + '\n', position) + assert end >= 0, 'closed fence' + body = text[position:end] + longest = max((len(run) for run in re.findall(r'`+', body)), default=0) + assert len(fence) == max(3, longest + 1), 'minimal safe fence' + value = _decode_json(body) + # Indentation is independently checked per line; exact bytes are pinned + # separately, so parsing cannot bless whitespace/canonicalization drift. + for line in body.split('\n'): + assert '\t' not in line + assert (len(line) - len(line.lstrip(' '))) % 2 == 0 + position = end + 1 + len(fence) + 1 + return value + + document = {} + reasons = {row['id']: row for row in expected['reasons']} + for root_index, name in enumerate(ROOT_ORDER): + literal('## ' + name + '\n\n') + if name != 'results' or not expected['results']: + document[name] = block() + if root_index != len(ROOT_ORDER) - 1: + literal('\n') + continue + rows = [] + for result in expected['results']: + literal('### ' + result['id'] + ': ' + result['field_key'] + '\n\n') + row = block(); rows.append(row); literal('\n') + if result['result_state'] == 'available' and result['value_kind'] == 'fraction': + fraction = result['value']; n, d = fraction['numerator'], fraction['denominator'] + literal('Decimal display: ' + str(n) + '/' + str(d) + ' = ' + _six_places(n, d) + '\n\n') + literal('Reason details\n\n') + actual_reasons = block() + _strict_equal(actual_reasons, [reasons[identifier] for identifier in result['reason_refs']]) + literal('\n') + document[name] = rows + assert position == len(text), 'trailing/omitted Markdown content' + return document + + +def _assert_reference_markdown(raw): + _assert_reference_document(_parse_reference_markdown(raw)) + record = _expectations()['exact_bytes']['markdown'] + assert len(raw) == record['size_bytes'] + assert hashlib.sha256(raw).hexdigest() == record['sha256'] + + +def _result(document, field): + rows = [row for row in document['results'] if row['field_key'] == field] + assert len(rows) == 1, 'mutant target must be one exact cell' + return rows[0] + + +def test_reference_baseline_matches_dossier_and_both_exact_formats(): + fixture = json.loads(FIXTURE.read_bytes())['cases'][0] + source = fixture['dossier'] + assert fixture['id'] == 'P4-REFERENCE-ONE-ORIGIN' + assert source['inquiries'][0]['seed_evidence_refs'] == ['P4-E1'] + assert source['inquiries'][0]['dependency_dimensions'] == ['acquisition'] + records = {row['id']: row for row in source['records']} + assert records['P4-E1']['data']['claim_ref'] == 'P4-CLAIM' + assert records['P4-E1']['data']['artifact_ref'] == 'P4-ART' + relations = [row for row in source['assertions'] if row['assertion_kind'] == 'relation'] + assert len(relations) == 1 + assert relations[0]['data'] == {'predicate': 'originates_from', 'from_ref': 'P4-E1', + 'to_ref': 'P4-O1', 'polarity': 'affirmed', + 'dimension': 'acquisition', 'details': {}} + document = _reference() + assert tuple(document) == ROOT_ORDER + assert len(document['results']) == 78 + assert len({row['field_key'] for row in document['results']}) == 57 + assert len(document['findings']) == 22 + assert len(document['checks']) == 671 + assert len(document['reasons']) == 38 + findings = {row['id']: row for row in document['findings']} + traces = [(row, component) for row in document['findings'] + for component in row['witness']['components'] + if component['type'] == 'graph_witness' and component['kind'] == 'complete_trace'] + assert sorted(component['member_count'] for _, component in traces) == [5, 6] + for field, count in [('single_origin_contribution_hhi', 6), ('inherited_only_seed_fraction', 5)]: + result = _result(document, field) + assert len(result['witness_refs']) == 1 + finding = findings[result['witness_refs'][0]] + assert finding['scope_ref'] == result['scope_ref'] + assert finding['condition_code'] == 'transformation_path_witness' + trace = next(c for c in finding['witness']['components'] if c['kind'] == 'complete_trace') + assert trace['member_count'] == count + assert len(trace['observations']) == 1 + scan_rows = _result(document, 'corrective_independence_disclosures')['value']['records'] + assert len(scan_rows) == 1 + assert scan_rows[0]['source'] == {'collection': 'inquiries', 'identifier': 'P4-I001', 'selector': 'target_object_refs'} + assert scan_rows[0]['fields']['native_record']['target_object_refs'] == [] + assert scan_rows[0]['qualifications'] == [ + 'Actual owner selection/source reference slot; this record does not establish an applicable review or independent process.'] + assert len(document['capabilities']) == 15 + assert len(document['observability_domains']) == 5 + for field, wanted in [('documentary_origin_resolution_fraction', {'numerator': 1, 'denominator': 1}), + ('single_origin_contribution_hhi', {'numerator': 1, 'denominator': 1}), + ('inherited_only_seed_fraction', {'numerator': 0, 'denominator': 1})]: + row = _result(document, field) + assert row['execution_state'] == 'completed' and row['result_state'] == 'available' + _strict_equal(row['value'], wanted) + interval = _result(document, 'inherited_only_completion_interval') + assert interval['result_state'] == 'not_applicable' and interval['value'] is None + reasons = {row['id']: row for row in document['reasons']} + assert 'completion_interval_not_needed' in [reasons[r]['code'] for r in interval['reason_refs']] + json_bytes = (GOLDEN / 'phase4_reference_report.json').read_bytes() + markdown_bytes = (GOLDEN / 'phase4_reference_report.md').read_bytes() + _assert_reference_json(json_bytes) + _assert_reference_markdown(markdown_bytes) + for excluded in fixture['disclosure_controls']['excluded_values']: + assert excluded.encode() not in json_bytes and excluded.encode() not in markdown_bytes + for name in ('retained_method', 'retained_qualification'): + assert fixture['disclosure_controls'][name].encode() in json_bytes + assert fixture['disclosure_controls'][name].encode() in markdown_bytes + assert b'````json\n' in markdown_bytes + + +@pytest.mark.parametrize('name', ROOT_ORDER) +@pytest.mark.parametrize('change', ('missing', 'extra')) +def test_root_member_mutants_are_rejected_after_positive(name, change): + baseline = _reference(); _assert_reference_document(baseline) + changed = copy.deepcopy(baseline) + if change == 'missing': + del changed[name] + else: + changed['extra_' + name] = None + with pytest.raises(AssertionError): + _assert_reference_document(changed) + + +@pytest.mark.parametrize('collection', ('run', 'input_identity', 'input_validation', 'scopes', + 'populations', 'basis_index', 'capabilities', 'checks', 'observability_domains', + 'results', 'findings', 'reasons')) +@pytest.mark.parametrize('change', ('missing', 'extra')) +def test_nested_member_mutants_are_rejected_after_positive(collection, change): + baseline = _reference(); _assert_reference_document(baseline) + changed = copy.deepcopy(baseline) + value = changed[collection] + if type(value) is list: + assert value, 'this reference intentionally exercises the nested type' + value = value[0] + if change == 'missing': + del value[next(iter(value))] + else: + value['unexpected_member'] = None + with pytest.raises(AssertionError): + _assert_reference_document(changed) + + +@pytest.mark.parametrize('mutation', ('boolean_count', 'wrong_numerator', 'wrong_denominator', + 'fabricated_missing_count', 'illegal_execution_pair', 'missing_reason', 'lost_qualification', + 'input_report_namespace', 'lost_scope', 'native_state_upgrade', 'basis_upgrade', + 'invented_score', 'private_excerpt', 'drop_trace_observation', 'wrong_trace_scope', + 'human_selector_loss', 'native_unknown_time', 'incidence_origin_loss')) +def test_semantic_single_property_mutants_are_rejected_after_positive(mutation): + baseline = _reference(); _assert_reference_document(baseline) + changed = copy.deepcopy(baseline) + if mutation == 'boolean_count': + _result(changed, 'seed_evidence_item_count')['value'] = True + elif mutation == 'wrong_numerator': + _result(changed, 'single_origin_contribution_hhi')['value']['numerator'] = 0 + elif mutation == 'wrong_denominator': + _result(changed, 'inherited_only_seed_fraction')['value']['denominator'] = 0 + elif mutation == 'fabricated_missing_count': + _result(changed, 'submitted_comparison_member_count')['value'] = 0 + elif mutation == 'illegal_execution_pair': + _result(changed, 'seed_evidence_item_count')['execution_state'] = 'interrupted' + elif mutation == 'missing_reason': + _result(changed, 'submitted_comparison_member_count')['reason_refs'] = [] + elif mutation == 'lost_qualification': + next(row for row in changed['basis_index'] if row['qualifications'])['qualifications'] = [] + elif mutation == 'input_report_namespace': + changed['scopes'][0]['inquiry_ref'] = changed['report_id'] + elif mutation == 'lost_scope': + changed['results'].pop(next(i for i, row in enumerate(changed['results']) if row['field_key'] == 'anomaly_context_disclosures')) + elif mutation == 'native_state_upgrade': + value = _result(changed, 'coverage_disclosures')['value']['records'][0]['fields'] + value['native_record']['data']['details']['state'] = 'unknown' + elif mutation == 'basis_upgrade': + next(row for row in changed['basis_index'] if row['basis_kind'] == 'declaration')['basis_kind'] = 'documented_record' + elif mutation == 'invented_score': + changed['integrity_score'] = 1 + elif mutation == 'private_excerpt': + changed['basis_index'][0]['excerpt'] = 'P4-PRIVATE-EXCERPT-NOT-EXPORTED' + elif mutation == 'drop_trace_observation': + next(c for f in changed['findings'] for c in f['witness']['components'] + if c['type'] == 'graph_witness' and c['kind'] == 'complete_trace')['observations'] = [] + elif mutation == 'wrong_trace_scope': + finding = next(f for f in changed['findings'] if any( + c['type'] == 'graph_witness' and c['kind'] == 'complete_trace' + for c in f['witness']['components'])) + finding['scope_ref'] = next(s['id'] for s in changed['scopes'] if s['id'] != finding['scope_ref']) + elif mutation == 'human_selector_loss': + _result(changed, 'corrective_independence_disclosures')['value']['records'][0]['source']['selector'] = None + elif mutation == 'native_unknown_time': + next(b for b in changed['basis_index'] if 'asserted_at' in b['time'])['time']['asserted_at']['state'] = 'known' + elif mutation == 'incidence_origin_loss': + _result(changed, 'origin_incidence_counts')['value']['origin_counts'] = [] + with pytest.raises(AssertionError): + _assert_reference_document(changed) + + +@pytest.mark.parametrize('format_name', ('json', 'markdown')) +@pytest.mark.parametrize('mutation', ('extra_lf', 'crlf', 'changed_denominator', 'lost_qualification')) +def test_byte_mutants_are_rejected_after_positive(format_name, mutation): + filename = 'phase4_reference_report.' + ('json' if format_name == 'json' else 'md') + original = (GOLDEN / filename).read_bytes() + check = _assert_reference_json if format_name == 'json' else _assert_reference_markdown + check(original) + if mutation == 'extra_lf': + changed = original + b'\n' + elif mutation == 'crlf': + changed = original.replace(b'\n', b'\r\n') + elif mutation == 'changed_denominator': + pattern = rb'("denominator"\s*:\s*)1' + changed, count = re.subn(pattern, rb'\g<1>2', original, count=1) + assert count == 1 + else: + phrase = b'Caller-supplied documentary premise (' + assert phrase in original + changed = original.replace(phrase, b'Independently authenticated premise (', 1) + assert changed != original + with pytest.raises((AssertionError, ValueError, UnicodeError)): + check(changed) + + +@pytest.mark.parametrize('mutation', ('none', 'drop_duplicate', 'sort_scan', 'lose_selector', 'lose_limit', 'invent_qualification')) +def test_constructed_human_scan_slots_preserve_exact_source_material(mutation): + example = _expectations()['constructed_mapping_oracles']['human_review_scan'] + expected = example['projected_rows'] + assert example['owner_member_count'] == (len(example['members']) + + len(example['examined_assessments']) + len(example['source_refs'])) == 5 + assert [row['source'] for row in expected[:2]] == example['examined_assessments'] + assert [row['source'] for row in expected[2:]] == example['source_refs'] + assert expected[2] == expected[3] + assert all(row['qualifications'] == [example['scan_qualification']] for row in expected[:2]) + assert all(row['qualifications'] == [example['source_qualification']] for row in expected[2:]) + _strict_equal(copy.deepcopy(expected), expected) # accept before mutation + if mutation == 'none': + return + changed = copy.deepcopy(expected) + if mutation == 'drop_duplicate': + changed.pop() + elif mutation == 'sort_scan': + changed[:2] = sorted(changed[:2], key=lambda row: row['source']['identifier']) + elif mutation == 'lose_selector': + changed[2]['source']['selector'] = None + elif mutation == 'lose_limit': + changed[0]['qualifications'] = [] + else: + changed[0]['fields']['process_qualification_state'] = 'met' + with pytest.raises(AssertionError): + _strict_equal(changed, expected) diff --git a/tests/fixtures/micro/phase4_public_cases.json b/tests/fixtures/micro/phase4_public_cases.json new file mode 100644 index 0000000..9278161 --- /dev/null +++ b/tests/fixtures/micro/phase4_public_cases.json @@ -0,0 +1,458 @@ +{ + "description": "Independently named finite Phase 4 dossiers. These do not replace or modify any original H7 fixture or logical golden.", + "authorship": "Authored from the accepted specifications by the collaborating Codex assistant lineage. Not generated from product audit/rendering output; no independent external human audit or empirical source authentication is claimed.", + "sources": [ + "PHASE_4_PLAN.md sections 4,5.4,6 P4-W02", + "OBSERVABILITY_AND_REPORTING.md sections 12-19", + "DEFINITIONS_AND_UNITS.md sections 20-24,27-28", + "REPOSITORY_ARCHITECTURE.md sections 17-19", + "GOVERNANCE_AND_HANDOFF.md sections 22.2,22.5", + "PRIVACY_AND_DATA_HANDLING.md section 4.2" + ], + "cases": [ + { + "id": "P4-REFERENCE-ONE-ORIGIN", + "role": "Complete finite reference for the independent JSON and Markdown golden files.", + "derivation": "One explicitly selected EvidenceItem binds one Claim and one Artifact, with one affirmed acquisition-parent assertion to one documentary OriginEvent. One fully enumerated finite coverage assessment and one boundary assessment share supplied documentary support. No comparison, evaluator, pipeline, correction, anomaly or contestation records are supplied.", + "difference_from_original_heroes": "New identities and complete independent small dossier; no original H7 input is reduced, rewritten or described as having completed.", + "expected_core_facts": { + "seed_members": [ + "P4-E1" + ], + "artifact_members": [ + "P4-ART" + ], + "origin_members": [ + "P4-O1" + ], + "per_seed_origins": { + "P4-E1": [ + "P4-O1" + ] + }, + "incidence_counts": { + "P4-O1": 1 + }, + "documentary_resolution_fraction": { + "numerator": 1, + "denominator": 1 + }, + "single_origin_contribution_hhi": { + "numerator": 1, + "denominator": 1 + }, + "immediate_dispositions": { + "inherited_only": [], + "origin_only": [ + "P4-E1" + ], + "mixed": [], + "unresolved": [] + }, + "inherited_only_seed_fraction": { + "numerator": 0, + "denominator": 1 + } + }, + "disclosure_controls": { + "excluded_values": [ + "P4-PRIVATE-DISPLAY-NOT-EXPORTED", + "P4-PRIVATE-EXCERPT-NOT-EXPORTED" + ], + "retained_method": "Inspect supplied acquisition record; literal ``` is data.", + "retained_qualification": "Caller-supplied documentary premise (合成例); no external authentication." + }, + "dossier": { + "contract_version": "sit-bundle/0.1", + "bundle_id": "P4-BUNDLE-REFERENCE", + "snapshot_id": "P4-SNAPSHOT-REFERENCE-01", + "recorded_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "predecessor": null, + "inquiries": [ + { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + ], + "records": [ + { + "id": "P4-ACTOR", + "kind": "actor", + "data": { + "actor_kind": "human", + "identity_disclosure": "pseudonymous", + "display_name": "P4-PRIVATE-DISPLAY-NOT-EXPORTED" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-ART", + "kind": "artifact", + "data": { + "artifact_kind": "document", + "work_key": "P4-WORK", + "version_label": "v1", + "locators": [], + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "content_evidence_refs": [] + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-CLAIM", + "kind": "claim", + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "version_label": "v1", + "text": "A fictional sample was recorded.", + "context": "Only the supplied finite example." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-E1", + "kind": "evidence_item", + "data": { + "claim_ref": "P4-CLAIM", + "artifact_ref": "P4-ART", + "locator": "sample-1", + "epistemic_type": "fictional_example", + "description": "One explicitly supplied contribution." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + }, + { + "id": "P4-O1", + "kind": "origin_event", + "data": { + "event_kind": "data_collection", + "event_key": "P4-ACQUISITION", + "performed_by_refs": [ + "P4-ACTOR" + ], + "method_ref": "P4-ART", + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "description": "One represented documentary acquisition boundary." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + } + ], + "assertions": [ + { + "id": "P4-BOUND", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "origin_boundary", + "subject_refs": [ + "P4-O1" + ], + "details": { + "dimension": "acquisition", + "boundary_role": "documented_origin", + "coverage_ref": "P4-COVER", + "termination_reason": "This supplied finite acquisition record terminates here." + } + } + }, + { + "id": "P4-COVER", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "coverage", + "subject_refs": [ + "P4-I001" + ], + "details": { + "coverage_kind": "upstream_history", + "state": "complete_for_scope", + "relation_types": [ + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on" + ], + "dimensions": [ + "acquisition" + ], + "member_refs": [ + "P4-E1", + "P4-O1" + ], + "omitted_refs": [], + "universe_enumerated": true, + "scope_note": "Exactly these two records and all their permitted acquisition-parent predicates." + } + } + }, + { + "id": "P4-PARENT", + "assertion_kind": "relation", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "predicate": "originates_from", + "from_ref": "P4-E1", + "to_ref": "P4-O1", + "polarity": "affirmed", + "dimension": "acquisition", + "details": {} + } + } + ], + "evidence_references": [ + { + "id": "P4-SUPPORT", + "reference_kind": "supplied_excerpt", + "availability": "supplied", + "artifact_ref": "P4-ART", + "record_ref": null, + "locator": null, + "excerpt": "P4-PRIVATE-EXCERPT-NOT-EXPORTED: fictional finite acquisition and its complete permitted parent history.", + "provided_by_ref": "P4-ACTOR", + "attestor_ref": null, + "scope_note": "Supplied fictional material; external authenticity is not examined." + } + ] + } + } + ] +} diff --git a/tests/golden/phase4_reference_report.json b/tests/golden/phase4_reference_report.json new file mode 100644 index 0000000..a5afdb0 --- /dev/null +++ b/tests/golden/phase4_reference_report.json @@ -0,0 +1 @@ +{"basis_index":[{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":["SIT-CHK-000224","SIT-CHK-000225","SIT-CHK-000226","SIT-CHK-000231","SIT-CHK-000232","SIT-CHK-000233","SIT-CHK-000234","SIT-CHK-000235","SIT-CHK-000239","SIT-CHK-000240","SIT-CHK-000241","SIT-CHK-000242","SIT-CHK-000298","SIT-CHK-000299","SIT-CHK-000300","SIT-CHK-000305","SIT-CHK-000306","SIT-CHK-000307","SIT-CHK-000308","SIT-CHK-000309","SIT-CHK-000310","SIT-CHK-000311","SIT-CHK-000312","SIT-CHK-000313","SIT-CHK-000343","SIT-CHK-000344","SIT-CHK-000345","SIT-CHK-000350","SIT-CHK-000351","SIT-CHK-000352","SIT-CHK-000353","SIT-CHK-000354","SIT-CHK-000358","SIT-CHK-000359","SIT-CHK-000360","SIT-CHK-000361","SIT-CHK-000398","SIT-CHK-000399","SIT-CHK-000400","SIT-CHK-000405","SIT-CHK-000406","SIT-CHK-000407","SIT-CHK-000408","SIT-CHK-000409","SIT-CHK-000413","SIT-CHK-000414","SIT-CHK-000415","SIT-CHK-000416"],"id":"SIT-BAS-000001","lifecycle":{"basis_refs":[],"state":"active"},"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"effective_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}},"inquiry_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]},"source":{"collection":"assertions","identifier":"P4-BOUND","selector":null},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{"asserted_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":["SIT-CHK-000224","SIT-CHK-000225","SIT-CHK-000226","SIT-CHK-000231","SIT-CHK-000232","SIT-CHK-000233","SIT-CHK-000234","SIT-CHK-000235","SIT-CHK-000236","SIT-CHK-000237","SIT-CHK-000238","SIT-CHK-000239","SIT-CHK-000240","SIT-CHK-000241","SIT-CHK-000242","SIT-CHK-000279","SIT-CHK-000280","SIT-CHK-000281","SIT-CHK-000286","SIT-CHK-000287","SIT-CHK-000288","SIT-CHK-000289","SIT-CHK-000290","SIT-CHK-000291","SIT-CHK-000292","SIT-CHK-000293","SIT-CHK-000294","SIT-CHK-000295","SIT-CHK-000296","SIT-CHK-000297","SIT-CHK-000343","SIT-CHK-000344","SIT-CHK-000345","SIT-CHK-000350","SIT-CHK-000351","SIT-CHK-000352","SIT-CHK-000353","SIT-CHK-000354","SIT-CHK-000355","SIT-CHK-000356","SIT-CHK-000357","SIT-CHK-000358","SIT-CHK-000359","SIT-CHK-000360","SIT-CHK-000361","SIT-CHK-000398","SIT-CHK-000399","SIT-CHK-000400","SIT-CHK-000405","SIT-CHK-000406","SIT-CHK-000407","SIT-CHK-000408","SIT-CHK-000409","SIT-CHK-000410","SIT-CHK-000411","SIT-CHK-000412","SIT-CHK-000413","SIT-CHK-000414","SIT-CHK-000415","SIT-CHK-000416"],"id":"SIT-BAS-000002","lifecycle":{"basis_refs":[],"state":"active"},"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"effective_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}},"inquiry_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]},"source":{"collection":"assertions","identifier":"P4-COVER","selector":null},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{"asserted_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":["SIT-CHK-000226","SIT-CHK-000231","SIT-CHK-000232","SIT-CHK-000233","SIT-CHK-000234","SIT-CHK-000235","SIT-CHK-000236","SIT-CHK-000237","SIT-CHK-000238","SIT-CHK-000239","SIT-CHK-000240","SIT-CHK-000241","SIT-CHK-000242","SIT-CHK-000345","SIT-CHK-000350","SIT-CHK-000351","SIT-CHK-000352","SIT-CHK-000353","SIT-CHK-000354","SIT-CHK-000355","SIT-CHK-000356","SIT-CHK-000357","SIT-CHK-000358","SIT-CHK-000359","SIT-CHK-000360","SIT-CHK-000361","SIT-CHK-000400","SIT-CHK-000405","SIT-CHK-000406","SIT-CHK-000407","SIT-CHK-000408","SIT-CHK-000409","SIT-CHK-000410","SIT-CHK-000411","SIT-CHK-000412","SIT-CHK-000413","SIT-CHK-000414","SIT-CHK-000415","SIT-CHK-000416"],"id":"SIT-BAS-000003","lifecycle":{"basis_refs":[],"state":"active"},"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"effective_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}},"inquiry_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]},"source":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{"asserted_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":"supplied","basis_kind":null,"check_refs":[],"id":"SIT-BAS-000004","lifecycle":null,"method":null,"qualifications":["Supplied fictional material; external authenticity is not examined."],"scope":null,"source":{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null},"support_refs":[],"time":{}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":[],"id":"SIT-BAS-000005","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"inquiries","identifier":"P4-I001","selector":null},"support_refs":[],"time":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":["SIT-CHK-000227","SIT-CHK-000228","SIT-CHK-000229","SIT-CHK-000230","SIT-CHK-000317","SIT-CHK-000318","SIT-CHK-000319","SIT-CHK-000320","SIT-CHK-000346","SIT-CHK-000347","SIT-CHK-000348","SIT-CHK-000349","SIT-CHK-000401","SIT-CHK-000402","SIT-CHK-000403","SIT-CHK-000404"],"id":"SIT-BAS-000006","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},"support_refs":[],"time":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":[],"id":"SIT-BAS-000007","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},"support_refs":[],"time":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":[],"id":"SIT-BAS-000008","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},"support_refs":[],"time":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":["SIT-CHK-000227","SIT-CHK-000228","SIT-CHK-000229","SIT-CHK-000230","SIT-CHK-000317","SIT-CHK-000318","SIT-CHK-000319","SIT-CHK-000320","SIT-CHK-000346","SIT-CHK-000347","SIT-CHK-000348","SIT-CHK-000349","SIT-CHK-000401","SIT-CHK-000402","SIT-CHK-000403","SIT-CHK-000404"],"id":"SIT-BAS-000009","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},"support_refs":[],"time":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":[],"id":"SIT-BAS-000010","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-ACTOR","selector":null},"support_refs":[],"time":{}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":[],"id":"SIT-BAS-000011","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-ART","selector":null},"support_refs":[],"time":{"published_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"retrieved_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"declaration","check_refs":[],"id":"SIT-BAS-000012","lifecycle":null,"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-CLAIM","selector":null},"support_refs":[],"time":{}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":[],"id":"SIT-BAS-000013","lifecycle":null,"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-E1","selector":null},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":[],"id":"SIT-BAS-000014","lifecycle":null,"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":[],"id":"SIT-BAS-000015","lifecycle":null,"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{}},{"asserter_ref":{"collection":"records","identifier":"P4-ACTOR","selector":null},"attestor_ref":null,"availability":null,"basis_kind":"documented_record","check_refs":[],"id":"SIT-BAS-000016","lifecycle":null,"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."],"scope":null,"source":{"collection":"records","identifier":"P4-O1","selector":null},"support_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"time":{"occurred_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}],"capabilities":[{"available_result_refs":["SIT-RES-000001","SIT-RES-000002","SIT-RES-000003","SIT-RES-000004","SIT-RES-000005"],"check_refs":["SIT-CHK-000001","SIT-CHK-000002","SIT-CHK-000003","SIT-CHK-000004","SIT-CHK-000005","SIT-CHK-000079","SIT-CHK-000080","SIT-CHK-000081","SIT-CHK-000082","SIT-CHK-000083","SIT-CHK-000157","SIT-CHK-000158","SIT-CHK-000159","SIT-CHK-000160","SIT-CHK-000161","SIT-CHK-000594","SIT-CHK-000595","SIT-CHK-000596","SIT-CHK-000597","SIT-CHK-000598"],"diagnostic_id":"SIT-M001","id":"SIT-CAP-000001","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000001","SIT-RES-000002","SIT-RES-000003","SIT-RES-000004","SIT-RES-000005"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000001","SIT-SCP-000003"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000006","SIT-RES-000007","SIT-RES-000008"],"check_refs":["SIT-CHK-000006","SIT-CHK-000007","SIT-CHK-000008","SIT-CHK-000084","SIT-CHK-000085","SIT-CHK-000086","SIT-CHK-000162","SIT-CHK-000163","SIT-CHK-000164","SIT-CHK-000193","SIT-CHK-000194","SIT-CHK-000195","SIT-CHK-000224","SIT-CHK-000225","SIT-CHK-000226","SIT-CHK-000279","SIT-CHK-000280","SIT-CHK-000281","SIT-CHK-000298","SIT-CHK-000299","SIT-CHK-000300","SIT-CHK-000314","SIT-CHK-000315","SIT-CHK-000316","SIT-CHK-000343","SIT-CHK-000344","SIT-CHK-000345","SIT-CHK-000398","SIT-CHK-000399","SIT-CHK-000400","SIT-CHK-000599","SIT-CHK-000600","SIT-CHK-000601"],"diagnostic_id":"SIT-M002","id":"SIT-CAP-000002","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000006","SIT-RES-000007","SIT-RES-000008"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000019"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000009"],"check_refs":["SIT-CHK-000009","SIT-CHK-000010","SIT-CHK-000011","SIT-CHK-000012","SIT-CHK-000087","SIT-CHK-000088","SIT-CHK-000089","SIT-CHK-000090","SIT-CHK-000165","SIT-CHK-000166","SIT-CHK-000167","SIT-CHK-000168","SIT-CHK-000196","SIT-CHK-000197","SIT-CHK-000198","SIT-CHK-000199","SIT-CHK-000227","SIT-CHK-000228","SIT-CHK-000229","SIT-CHK-000230","SIT-CHK-000282","SIT-CHK-000283","SIT-CHK-000284","SIT-CHK-000285","SIT-CHK-000301","SIT-CHK-000302","SIT-CHK-000303","SIT-CHK-000304","SIT-CHK-000317","SIT-CHK-000318","SIT-CHK-000319","SIT-CHK-000320","SIT-CHK-000346","SIT-CHK-000347","SIT-CHK-000348","SIT-CHK-000349","SIT-CHK-000401","SIT-CHK-000402","SIT-CHK-000403","SIT-CHK-000404","SIT-CHK-000453","SIT-CHK-000454","SIT-CHK-000455","SIT-CHK-000456","SIT-CHK-000602","SIT-CHK-000603","SIT-CHK-000604","SIT-CHK-000605"],"diagnostic_id":"SIT-M003","id":"SIT-CAP-000003","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000022","SIT-RSN-000023","SIT-RSN-000024","SIT-RSN-000025"],"result_refs":["SIT-RES-000009","SIT-RES-000010","SIT-RES-000011","SIT-RES-000012"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000017"],"unavailable_result_refs":["SIT-RES-000010","SIT-RES-000011","SIT-RES-000012"]},{"available_result_refs":["SIT-RES-000013","SIT-RES-000014","SIT-RES-000015","SIT-RES-000016"],"check_refs":["SIT-CHK-000013","SIT-CHK-000014","SIT-CHK-000015","SIT-CHK-000016","SIT-CHK-000091","SIT-CHK-000092","SIT-CHK-000093","SIT-CHK-000094","SIT-CHK-000169","SIT-CHK-000170","SIT-CHK-000171","SIT-CHK-000172","SIT-CHK-000200","SIT-CHK-000201","SIT-CHK-000202","SIT-CHK-000203","SIT-CHK-000231","SIT-CHK-000232","SIT-CHK-000233","SIT-CHK-000234","SIT-CHK-000286","SIT-CHK-000287","SIT-CHK-000288","SIT-CHK-000289","SIT-CHK-000305","SIT-CHK-000306","SIT-CHK-000307","SIT-CHK-000308","SIT-CHK-000321","SIT-CHK-000322","SIT-CHK-000323","SIT-CHK-000324","SIT-CHK-000350","SIT-CHK-000351","SIT-CHK-000352","SIT-CHK-000353","SIT-CHK-000405","SIT-CHK-000406","SIT-CHK-000407","SIT-CHK-000408","SIT-CHK-000606","SIT-CHK-000607","SIT-CHK-000608","SIT-CHK-000609"],"diagnostic_id":"SIT-M004","id":"SIT-CAP-000004","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000013","SIT-RES-000014","SIT-RES-000015","SIT-RES-000016"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000019"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000017"],"check_refs":["SIT-CHK-000017","SIT-CHK-000095","SIT-CHK-000173","SIT-CHK-000204","SIT-CHK-000235","SIT-CHK-000290","SIT-CHK-000309","SIT-CHK-000325","SIT-CHK-000354","SIT-CHK-000409","SIT-CHK-000459","SIT-CHK-000610"],"diagnostic_id":"SIT-M005","id":"SIT-CAP-000005","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000017"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000019"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000018","SIT-RES-000020"],"check_refs":["SIT-CHK-000018","SIT-CHK-000019","SIT-CHK-000020","SIT-CHK-000096","SIT-CHK-000097","SIT-CHK-000098","SIT-CHK-000174","SIT-CHK-000175","SIT-CHK-000176","SIT-CHK-000205","SIT-CHK-000206","SIT-CHK-000207","SIT-CHK-000236","SIT-CHK-000237","SIT-CHK-000238","SIT-CHK-000291","SIT-CHK-000292","SIT-CHK-000293","SIT-CHK-000326","SIT-CHK-000327","SIT-CHK-000328","SIT-CHK-000355","SIT-CHK-000356","SIT-CHK-000357","SIT-CHK-000410","SIT-CHK-000411","SIT-CHK-000412","SIT-CHK-000460","SIT-CHK-000461","SIT-CHK-000462","SIT-CHK-000611","SIT-CHK-000612","SIT-CHK-000613"],"diagnostic_id":"SIT-M006","id":"SIT-CAP-000006","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":["SIT-RES-000019"],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000015"],"result_refs":["SIT-RES-000018","SIT-RES-000019","SIT-RES-000020"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000020"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000021","SIT-RES-000022","SIT-RES-000023","SIT-RES-000024"],"check_refs":["SIT-CHK-000021","SIT-CHK-000022","SIT-CHK-000023","SIT-CHK-000024","SIT-CHK-000099","SIT-CHK-000100","SIT-CHK-000101","SIT-CHK-000102","SIT-CHK-000177","SIT-CHK-000178","SIT-CHK-000179","SIT-CHK-000180","SIT-CHK-000208","SIT-CHK-000209","SIT-CHK-000210","SIT-CHK-000211","SIT-CHK-000239","SIT-CHK-000240","SIT-CHK-000241","SIT-CHK-000242","SIT-CHK-000294","SIT-CHK-000295","SIT-CHK-000296","SIT-CHK-000297","SIT-CHK-000310","SIT-CHK-000311","SIT-CHK-000312","SIT-CHK-000313","SIT-CHK-000329","SIT-CHK-000330","SIT-CHK-000331","SIT-CHK-000332","SIT-CHK-000358","SIT-CHK-000359","SIT-CHK-000360","SIT-CHK-000361","SIT-CHK-000413","SIT-CHK-000414","SIT-CHK-000415","SIT-CHK-000416","SIT-CHK-000614","SIT-CHK-000615","SIT-CHK-000616","SIT-CHK-000617"],"diagnostic_id":"SIT-M007","id":"SIT-CAP-000007","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000021","SIT-RES-000022","SIT-RES-000023","SIT-RES-000024"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000019"],"unavailable_result_refs":[]},{"available_result_refs":[],"check_refs":["SIT-CHK-000025","SIT-CHK-000026","SIT-CHK-000027","SIT-CHK-000028","SIT-CHK-000103","SIT-CHK-000104","SIT-CHK-000105","SIT-CHK-000106","SIT-CHK-000618","SIT-CHK-000619","SIT-CHK-000620","SIT-CHK-000621"],"diagnostic_id":"SIT-M008","id":"SIT-CAP-000008","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":["SIT-RES-000025","SIT-RES-000026","SIT-RES-000027","SIT-RES-000028"],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000027","SIT-RSN-000028","SIT-RSN-000029","SIT-RSN-000030"],"result_refs":["SIT-RES-000025","SIT-RES-000026","SIT-RES-000027","SIT-RES-000028"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000005"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000030"],"check_refs":["SIT-CHK-000029","SIT-CHK-000030","SIT-CHK-000107","SIT-CHK-000108","SIT-CHK-000243","SIT-CHK-000244","SIT-CHK-000362","SIT-CHK-000363","SIT-CHK-000417","SIT-CHK-000418","SIT-CHK-000465","SIT-CHK-000466","SIT-CHK-000622","SIT-CHK-000623"],"diagnostic_id":"SIT-M009","id":"SIT-CAP-000009","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000020","SIT-RSN-000021"],"result_refs":["SIT-RES-000029","SIT-RES-000030"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000004"],"unavailable_result_refs":["SIT-RES-000029"]},{"available_result_refs":["SIT-RES-000032","SIT-RES-000034"],"check_refs":["SIT-CHK-000031","SIT-CHK-000032","SIT-CHK-000033","SIT-CHK-000034","SIT-CHK-000035","SIT-CHK-000036","SIT-CHK-000037","SIT-CHK-000109","SIT-CHK-000110","SIT-CHK-000111","SIT-CHK-000112","SIT-CHK-000113","SIT-CHK-000114","SIT-CHK-000115","SIT-CHK-000467","SIT-CHK-000468","SIT-CHK-000469","SIT-CHK-000470","SIT-CHK-000471","SIT-CHK-000472","SIT-CHK-000473","SIT-CHK-000498","SIT-CHK-000499","SIT-CHK-000500","SIT-CHK-000501","SIT-CHK-000502","SIT-CHK-000503","SIT-CHK-000504","SIT-CHK-000529","SIT-CHK-000530","SIT-CHK-000531","SIT-CHK-000532","SIT-CHK-000533","SIT-CHK-000534","SIT-CHK-000535","SIT-CHK-000624","SIT-CHK-000625","SIT-CHK-000626","SIT-CHK-000627","SIT-CHK-000628","SIT-CHK-000629","SIT-CHK-000630"],"diagnostic_id":"SIT-M010","id":"SIT-CAP-000010","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000001","SIT-RSN-000002","SIT-RSN-000003","SIT-RSN-000004","SIT-RSN-000005","SIT-RSN-000006","SIT-RSN-000007","SIT-RSN-000008","SIT-RSN-000009","SIT-RSN-000010","SIT-RSN-000011","SIT-RSN-000012","SIT-RSN-000013","SIT-RSN-000014","SIT-RSN-000038"],"result_refs":["SIT-RES-000031","SIT-RES-000032","SIT-RES-000033","SIT-RES-000034","SIT-RES-000035","SIT-RES-000036","SIT-RES-000037"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000008","SIT-SCP-000009"],"unavailable_result_refs":["SIT-RES-000031","SIT-RES-000033","SIT-RES-000035","SIT-RES-000036","SIT-RES-000037"]},{"available_result_refs":[],"check_refs":["SIT-CHK-000038","SIT-CHK-000039","SIT-CHK-000040","SIT-CHK-000116","SIT-CHK-000117","SIT-CHK-000118","SIT-CHK-000631","SIT-CHK-000632","SIT-CHK-000633"],"diagnostic_id":"SIT-M011","id":"SIT-CAP-000011","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":["SIT-RES-000038","SIT-RES-000039","SIT-RES-000040"],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000031","SIT-RSN-000032","SIT-RSN-000033"],"result_refs":["SIT-RES-000038","SIT-RES-000039","SIT-RES-000040"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000005"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000041","SIT-RES-000042","SIT-RES-000043","SIT-RES-000044","SIT-RES-000045","SIT-RES-000046","SIT-RES-000047","SIT-RES-000048"],"check_refs":["SIT-CHK-000041","SIT-CHK-000042","SIT-CHK-000043","SIT-CHK-000044","SIT-CHK-000045","SIT-CHK-000046","SIT-CHK-000047","SIT-CHK-000048","SIT-CHK-000119","SIT-CHK-000120","SIT-CHK-000121","SIT-CHK-000122","SIT-CHK-000123","SIT-CHK-000124","SIT-CHK-000125","SIT-CHK-000126","SIT-CHK-000181","SIT-CHK-000182","SIT-CHK-000183","SIT-CHK-000184","SIT-CHK-000185","SIT-CHK-000186","SIT-CHK-000187","SIT-CHK-000188","SIT-CHK-000212","SIT-CHK-000213","SIT-CHK-000214","SIT-CHK-000215","SIT-CHK-000216","SIT-CHK-000217","SIT-CHK-000218","SIT-CHK-000219","SIT-CHK-000245","SIT-CHK-000246","SIT-CHK-000247","SIT-CHK-000248","SIT-CHK-000249","SIT-CHK-000250","SIT-CHK-000251","SIT-CHK-000252","SIT-CHK-000333","SIT-CHK-000334","SIT-CHK-000335","SIT-CHK-000336","SIT-CHK-000337","SIT-CHK-000338","SIT-CHK-000339","SIT-CHK-000340","SIT-CHK-000364","SIT-CHK-000365","SIT-CHK-000366","SIT-CHK-000367","SIT-CHK-000368","SIT-CHK-000369","SIT-CHK-000370","SIT-CHK-000371","SIT-CHK-000419","SIT-CHK-000420","SIT-CHK-000421","SIT-CHK-000422","SIT-CHK-000423","SIT-CHK-000424","SIT-CHK-000425","SIT-CHK-000426","SIT-CHK-000560","SIT-CHK-000561","SIT-CHK-000562","SIT-CHK-000563","SIT-CHK-000564","SIT-CHK-000565","SIT-CHK-000566","SIT-CHK-000567","SIT-CHK-000634","SIT-CHK-000635","SIT-CHK-000636","SIT-CHK-000637","SIT-CHK-000638","SIT-CHK-000639","SIT-CHK-000640","SIT-CHK-000641"],"diagnostic_id":"SIT-M012","id":"SIT-CAP-000012","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000041","SIT-RES-000042","SIT-RES-000043","SIT-RES-000044","SIT-RES-000045","SIT-RES-000046","SIT-RES-000047","SIT-RES-000048"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000007"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000049","SIT-RES-000050"],"check_refs":["SIT-CHK-000049","SIT-CHK-000050","SIT-CHK-000127","SIT-CHK-000128","SIT-CHK-000253","SIT-CHK-000254","SIT-CHK-000341","SIT-CHK-000342","SIT-CHK-000372","SIT-CHK-000373","SIT-CHK-000427","SIT-CHK-000428","SIT-CHK-000457","SIT-CHK-000458","SIT-CHK-000463","SIT-CHK-000464","SIT-CHK-000568","SIT-CHK-000569","SIT-CHK-000642","SIT-CHK-000643"],"diagnostic_id":"SIT-M013","id":"SIT-CAP-000013","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000026"],"result_refs":["SIT-RES-000049","SIT-RES-000050"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000018"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000051","SIT-RES-000052","SIT-RES-000053","SIT-RES-000054","SIT-RES-000055","SIT-RES-000056","SIT-RES-000057","SIT-RES-000058","SIT-RES-000059","SIT-RES-000060","SIT-RES-000061","SIT-RES-000062","SIT-RES-000063","SIT-RES-000064","SIT-RES-000065","SIT-RES-000066","SIT-RES-000067","SIT-RES-000068","SIT-RES-000069","SIT-RES-000070","SIT-RES-000071","SIT-RES-000072","SIT-RES-000073","SIT-RES-000074"],"check_refs":["SIT-CHK-000051","SIT-CHK-000052","SIT-CHK-000053","SIT-CHK-000054","SIT-CHK-000055","SIT-CHK-000056","SIT-CHK-000057","SIT-CHK-000058","SIT-CHK-000059","SIT-CHK-000060","SIT-CHK-000061","SIT-CHK-000062","SIT-CHK-000063","SIT-CHK-000064","SIT-CHK-000065","SIT-CHK-000066","SIT-CHK-000067","SIT-CHK-000068","SIT-CHK-000069","SIT-CHK-000070","SIT-CHK-000071","SIT-CHK-000072","SIT-CHK-000073","SIT-CHK-000074","SIT-CHK-000129","SIT-CHK-000130","SIT-CHK-000131","SIT-CHK-000132","SIT-CHK-000133","SIT-CHK-000134","SIT-CHK-000135","SIT-CHK-000136","SIT-CHK-000137","SIT-CHK-000138","SIT-CHK-000139","SIT-CHK-000140","SIT-CHK-000141","SIT-CHK-000142","SIT-CHK-000143","SIT-CHK-000144","SIT-CHK-000145","SIT-CHK-000146","SIT-CHK-000147","SIT-CHK-000148","SIT-CHK-000149","SIT-CHK-000150","SIT-CHK-000151","SIT-CHK-000152","SIT-CHK-000255","SIT-CHK-000256","SIT-CHK-000257","SIT-CHK-000258","SIT-CHK-000259","SIT-CHK-000260","SIT-CHK-000261","SIT-CHK-000262","SIT-CHK-000263","SIT-CHK-000264","SIT-CHK-000265","SIT-CHK-000266","SIT-CHK-000267","SIT-CHK-000268","SIT-CHK-000269","SIT-CHK-000270","SIT-CHK-000271","SIT-CHK-000272","SIT-CHK-000273","SIT-CHK-000274","SIT-CHK-000275","SIT-CHK-000276","SIT-CHK-000277","SIT-CHK-000278","SIT-CHK-000374","SIT-CHK-000375","SIT-CHK-000376","SIT-CHK-000377","SIT-CHK-000378","SIT-CHK-000379","SIT-CHK-000380","SIT-CHK-000381","SIT-CHK-000382","SIT-CHK-000383","SIT-CHK-000384","SIT-CHK-000385","SIT-CHK-000386","SIT-CHK-000387","SIT-CHK-000388","SIT-CHK-000389","SIT-CHK-000390","SIT-CHK-000391","SIT-CHK-000392","SIT-CHK-000393","SIT-CHK-000394","SIT-CHK-000395","SIT-CHK-000396","SIT-CHK-000397","SIT-CHK-000429","SIT-CHK-000430","SIT-CHK-000431","SIT-CHK-000432","SIT-CHK-000433","SIT-CHK-000434","SIT-CHK-000435","SIT-CHK-000436","SIT-CHK-000437","SIT-CHK-000438","SIT-CHK-000439","SIT-CHK-000440","SIT-CHK-000441","SIT-CHK-000442","SIT-CHK-000443","SIT-CHK-000444","SIT-CHK-000445","SIT-CHK-000446","SIT-CHK-000447","SIT-CHK-000448","SIT-CHK-000449","SIT-CHK-000450","SIT-CHK-000451","SIT-CHK-000452","SIT-CHK-000474","SIT-CHK-000475","SIT-CHK-000476","SIT-CHK-000477","SIT-CHK-000478","SIT-CHK-000479","SIT-CHK-000480","SIT-CHK-000481","SIT-CHK-000482","SIT-CHK-000483","SIT-CHK-000484","SIT-CHK-000485","SIT-CHK-000486","SIT-CHK-000487","SIT-CHK-000488","SIT-CHK-000489","SIT-CHK-000490","SIT-CHK-000491","SIT-CHK-000492","SIT-CHK-000493","SIT-CHK-000494","SIT-CHK-000495","SIT-CHK-000496","SIT-CHK-000497","SIT-CHK-000505","SIT-CHK-000506","SIT-CHK-000507","SIT-CHK-000508","SIT-CHK-000509","SIT-CHK-000510","SIT-CHK-000511","SIT-CHK-000512","SIT-CHK-000513","SIT-CHK-000514","SIT-CHK-000515","SIT-CHK-000516","SIT-CHK-000517","SIT-CHK-000518","SIT-CHK-000519","SIT-CHK-000520","SIT-CHK-000521","SIT-CHK-000522","SIT-CHK-000523","SIT-CHK-000524","SIT-CHK-000525","SIT-CHK-000526","SIT-CHK-000527","SIT-CHK-000528","SIT-CHK-000536","SIT-CHK-000537","SIT-CHK-000538","SIT-CHK-000539","SIT-CHK-000540","SIT-CHK-000541","SIT-CHK-000542","SIT-CHK-000543","SIT-CHK-000544","SIT-CHK-000545","SIT-CHK-000546","SIT-CHK-000547","SIT-CHK-000548","SIT-CHK-000549","SIT-CHK-000550","SIT-CHK-000551","SIT-CHK-000552","SIT-CHK-000553","SIT-CHK-000554","SIT-CHK-000555","SIT-CHK-000556","SIT-CHK-000557","SIT-CHK-000558","SIT-CHK-000559","SIT-CHK-000570","SIT-CHK-000571","SIT-CHK-000572","SIT-CHK-000573","SIT-CHK-000574","SIT-CHK-000575","SIT-CHK-000576","SIT-CHK-000577","SIT-CHK-000578","SIT-CHK-000579","SIT-CHK-000580","SIT-CHK-000581","SIT-CHK-000582","SIT-CHK-000583","SIT-CHK-000584","SIT-CHK-000585","SIT-CHK-000586","SIT-CHK-000587","SIT-CHK-000588","SIT-CHK-000589","SIT-CHK-000590","SIT-CHK-000591","SIT-CHK-000592","SIT-CHK-000593","SIT-CHK-000644","SIT-CHK-000645","SIT-CHK-000646","SIT-CHK-000647","SIT-CHK-000648","SIT-CHK-000649","SIT-CHK-000650","SIT-CHK-000651","SIT-CHK-000652","SIT-CHK-000653","SIT-CHK-000654","SIT-CHK-000655","SIT-CHK-000656","SIT-CHK-000657","SIT-CHK-000658","SIT-CHK-000659","SIT-CHK-000660","SIT-CHK-000661","SIT-CHK-000662","SIT-CHK-000663","SIT-CHK-000664","SIT-CHK-000665","SIT-CHK-000666","SIT-CHK-000667"],"diagnostic_id":"SIT-M014","id":"SIT-CAP-000014","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":[],"result_refs":["SIT-RES-000051","SIT-RES-000052","SIT-RES-000053","SIT-RES-000054","SIT-RES-000055","SIT-RES-000056","SIT-RES-000057","SIT-RES-000058","SIT-RES-000059","SIT-RES-000060","SIT-RES-000061","SIT-RES-000062","SIT-RES-000063","SIT-RES-000064","SIT-RES-000065","SIT-RES-000066","SIT-RES-000067","SIT-RES-000068","SIT-RES-000069","SIT-RES-000070","SIT-RES-000071","SIT-RES-000072","SIT-RES-000073","SIT-RES-000074"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000002","SIT-SCP-000010","SIT-SCP-000011","SIT-SCP-000012","SIT-SCP-000013","SIT-SCP-000014","SIT-SCP-000015","SIT-SCP-000016"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000075","SIT-RES-000076","SIT-RES-000077","SIT-RES-000078"],"check_refs":["SIT-CHK-000075","SIT-CHK-000076","SIT-CHK-000077","SIT-CHK-000078","SIT-CHK-000153","SIT-CHK-000154","SIT-CHK-000155","SIT-CHK-000156","SIT-CHK-000189","SIT-CHK-000190","SIT-CHK-000191","SIT-CHK-000192","SIT-CHK-000220","SIT-CHK-000221","SIT-CHK-000222","SIT-CHK-000223","SIT-CHK-000668","SIT-CHK-000669","SIT-CHK-000670","SIT-CHK-000671"],"diagnostic_id":"SIT-M015","id":"SIT-CAP-000015","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"not_applicable_result_refs":[],"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000016","SIT-RSN-000017","SIT-RSN-000018","SIT-RSN-000019","SIT-RSN-000034","SIT-RSN-000035","SIT-RSN-000036","SIT-RSN-000037"],"result_refs":["SIT-RES-000075","SIT-RES-000076","SIT-RES-000077","SIT-RES-000078"],"scope_note":"Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.","scope_refs":["SIT-SCP-000006"],"unavailable_result_refs":[]}],"checks":[{"check_id":"PC01","id":"SIT-CHK-000001","input_refs":[],"note":"The owner received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000002","input_refs":[],"note":"The owner received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000003","input_refs":[],"note":"The owner received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000004","input_refs":[],"note":"The owner received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000005","input_refs":[],"note":"The owner received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000006","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000007","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000008","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000009","input_refs":[],"note":"The component received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000010","input_refs":[],"note":"The component received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000011","input_refs":[],"note":"The component received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000012","input_refs":[],"note":"The component received the complete admitted immutable snapshot.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000013","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000014","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000015","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000016","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000017","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000018","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000019","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000020","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000021","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000022","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000023","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000024","input_refs":[],"note":"This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000025","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000026","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000027","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000028","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000029","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000030","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000031","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000032","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000033","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000034","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000035","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000036","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000037","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000038","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000039","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000040","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"The same invocation completed admission before this scheduled structural scope explanation.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000041","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000042","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000043","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000044","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000045","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000046","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000047","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000048","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000049","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000050","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000051","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000052","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000053","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000054","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000055","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000056","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000057","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000058","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000059","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000060","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000061","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000062","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000063","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000064","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000065","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000066","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000067","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000068","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000069","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000070","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000071","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000072","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000073","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000074","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000075","input_refs":[],"note":"The same invocation completed structural admission and its full analytical plan before acceptance.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000076","input_refs":[],"note":"The same invocation completed structural admission and its full analytical plan before acceptance.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000077","input_refs":[],"note":"The same invocation completed structural admission and its full analytical plan before acceptance.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC01","id":"SIT-CHK-000078","input_refs":[],"note":"The same invocation completed structural admission and its full analytical plan before acceptance.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000079","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000080","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000081","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000082","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000083","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000084","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000085","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000086","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000087","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000088","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000089","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000090","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000091","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000092","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000093","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000094","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000095","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000096","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000097","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000098","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000099","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000100","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000101","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000102","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000103","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000104","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000105","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000106","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000107","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000108","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000109","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000110","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000111","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000112","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000113","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000114","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000115","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000116","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000117","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000118","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000119","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000120","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000121","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000122","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000123","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000124","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000125","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000126","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000127","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000128","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000129","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000130","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000131","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000132","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000133","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000134","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000135","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000136","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000137","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000138","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000139","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000140","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000141","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000142","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000143","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000144","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000145","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000146","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000147","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000148","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000149","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000150","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000151","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000152","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000153","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000154","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000155","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC02","id":"SIT-CHK-000156","input_refs":[],"note":"Exact operation scope comparison; supplied evidence is not authenticated.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000157","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"The Inquiry seed positions and exact Claim bindings were completely enumerated.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000158","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"The Inquiry seed positions and exact Claim bindings were completely enumerated.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000159","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"The Inquiry seed positions and exact Claim bindings were completely enumerated.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000160","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"The Inquiry seed positions and exact Claim bindings were completely enumerated.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000161","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"The Inquiry seed positions and exact Claim bindings were completely enumerated.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000162","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000163","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000164","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000165","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC03","id":"SIT-CHK-000166","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC03","id":"SIT-CHK-000167","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC03","id":"SIT-CHK-000168","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC03","id":"SIT-CHK-000169","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000170","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000171","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000172","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000173","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000174","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000175","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000176","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000177","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000178","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000179","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000180","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000181","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000182","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000183","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000184","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000185","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000186","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000187","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000188","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000189","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000190","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000191","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC03","id":"SIT-CHK-000192","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"seed_artifact_refs"},{"collection":"inquiries","identifier":"P4-I001","selector":"seed_evidence_refs"},{"collection":"records","identifier":"P4-E1","selector":"data.artifact_ref"},{"collection":"records","identifier":"P4-E1","selector":"data.claim_ref"}],"note":"Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000193","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000194","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000195","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000196","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000197","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000198","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000199","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000200","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000201","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000202","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000203","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000204","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000205","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000206","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000207","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite population selection or local typed-edge eligibility.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000208","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000209","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000210","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000211","input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC04","id":"SIT-CHK-000212","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000213","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000214","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000215","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000216","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000217","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000218","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000219","input_refs":[],"note":"This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC04","id":"SIT-CHK-000220","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-COVER","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-PARENT","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-E1","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-O1","selector":"provenance.evidence_ref_ids"}],"note":"Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"unmet"},{"check_id":"PC04","id":"SIT-CHK-000221","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-COVER","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-PARENT","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-E1","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-O1","selector":"provenance.evidence_ref_ids"}],"note":"Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"unmet"},{"check_id":"PC04","id":"SIT-CHK-000222","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-COVER","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-PARENT","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-E1","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-O1","selector":"provenance.evidence_ref_ids"}],"note":"Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"unmet"},{"check_id":"PC04","id":"SIT-CHK-000223","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-COVER","selector":"provenance.evidence_ref_ids"},{"collection":"assertions","identifier":"P4-PARENT","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-E1","selector":"provenance.evidence_ref_ids"},{"collection":"records","identifier":"P4-O1","selector":"provenance.evidence_ref_ids"}],"note":"Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"unmet"},{"check_id":"PC05","id":"SIT-CHK-000224","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000225","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000226","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000227","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC05","id":"SIT-CHK-000228","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC05","id":"SIT-CHK-000229","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC05","id":"SIT-CHK-000230","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC05","id":"SIT-CHK-000231","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000232","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000233","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000234","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000235","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000236","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000237","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000238","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000239","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000240","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000241","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000242","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC05","id":"SIT-CHK-000243","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"unknown"},{"check_id":"PC05","id":"SIT-CHK-000244","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"unknown"},{"check_id":"PC05","id":"SIT-CHK-000245","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000246","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000247","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000248","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000249","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000250","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000251","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000252","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000253","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000254","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000255","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000256","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000257","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000258","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000259","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000260","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000261","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000262","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000263","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000264","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000265","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000266","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000267","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000268","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000269","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000270","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000271","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000272","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000273","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000274","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000275","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000276","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000277","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC05","id":"SIT-CHK-000278","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC06","id":"SIT-CHK-000279","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000280","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000281","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000282","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC06","id":"SIT-CHK-000283","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC06","id":"SIT-CHK-000284","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC06","id":"SIT-CHK-000285","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC06","id":"SIT-CHK-000286","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000287","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000288","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000289","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000290","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000291","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000292","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000293","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000294","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000295","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000296","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC06","id":"SIT-CHK-000297","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000298","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000299","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000300","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000301","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC07","id":"SIT-CHK-000302","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC07","id":"SIT-CHK-000303","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC07","id":"SIT-CHK-000304","input_refs":[],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"not_applicable"},{"check_id":"PC07","id":"SIT-CHK-000305","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000306","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000307","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000308","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000309","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000310","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000311","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000312","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC07","id":"SIT-CHK-000313","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000314","input_refs":[{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000315","input_refs":[{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000316","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000317","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC08","id":"SIT-CHK-000318","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC08","id":"SIT-CHK-000319","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC08","id":"SIT-CHK-000320","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC08","id":"SIT-CHK-000321","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000322","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000323","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000324","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000325","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000326","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000327","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000328","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000329","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000330","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000331","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000332","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC08","id":"SIT-CHK-000333","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000334","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000335","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000336","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000337","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000338","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000339","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000340","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000341","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC08","id":"SIT-CHK-000342","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000343","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000344","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000345","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000346","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC09","id":"SIT-CHK-000347","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC09","id":"SIT-CHK-000348","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC09","id":"SIT-CHK-000349","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC09","id":"SIT-CHK-000350","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000351","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000352","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000353","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000354","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000355","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000356","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000357","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000358","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000359","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000360","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000361","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC09","id":"SIT-CHK-000362","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"unknown"},{"check_id":"PC09","id":"SIT-CHK-000363","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"unknown"},{"check_id":"PC09","id":"SIT-CHK-000364","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000365","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000366","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000367","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000368","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000369","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000370","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000371","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000372","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000373","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000374","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000375","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000376","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000377","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000378","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000379","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000380","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000381","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000382","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000383","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000384","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000385","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000386","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000387","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000388","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000389","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000390","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000391","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000392","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000393","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000394","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000395","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000396","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC09","id":"SIT-CHK-000397","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000398","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000399","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000400","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000401","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC10","id":"SIT-CHK-000402","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC10","id":"SIT-CHK-000403","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC10","id":"SIT-CHK-000404","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC10","id":"SIT-CHK-000405","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000406","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000407","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000408","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000409","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000410","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000411","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000412","input_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual scoped premise qualifications; individual source-bound facts are retained.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000413","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000414","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000415","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000416","input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null}],"note":"Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000417","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000418","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC10","id":"SIT-CHK-000419","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000420","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000421","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000422","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000423","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000424","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000425","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000426","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000427","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000428","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000429","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000430","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000431","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000432","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000433","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000434","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000435","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000436","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000437","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000438","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000439","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000440","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000441","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000442","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000443","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000444","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000445","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000446","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000447","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000448","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000449","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000450","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000451","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC10","id":"SIT-CHK-000452","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC11","id":"SIT-CHK-000453","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC11","id":"SIT-CHK-000454","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC11","id":"SIT-CHK-000455","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC11","id":"SIT-CHK-000456","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":"dependency_dimensions"},{"collection":"inquiries","identifier":"P4-I001","selector":"target_claim_refs"}],"note":"Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"unknown"},{"check_id":"PC11","id":"SIT-CHK-000457","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"unknown"},{"check_id":"PC11","id":"SIT-CHK-000458","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC12","id":"SIT-CHK-000459","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Whole supplied seed population; no resolved-subset fallback.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC13","id":"SIT-CHK-000460","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Whole supplied seed population; no resolved-subset fallback.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC13","id":"SIT-CHK-000461","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Whole supplied seed population; no resolved-subset fallback.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC13","id":"SIT-CHK-000462","input_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"note":"Whole supplied seed population; no resolved-subset fallback.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC14","id":"SIT-CHK-000463","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC14","id":"SIT-CHK-000464","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"not_applicable"},{"check_id":"PC15","id":"SIT-CHK-000465","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"unknown"},{"check_id":"PC15","id":"SIT-CHK-000466","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000467","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000468","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000469","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000470","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000471","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000472","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000473","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC16","id":"SIT-CHK-000474","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000475","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000476","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000477","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000478","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000479","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000480","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000481","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000482","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000483","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000484","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000485","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000486","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000487","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000488","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000489","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000490","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000491","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000492","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000493","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000494","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000495","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000496","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC16","id":"SIT-CHK-000497","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000498","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000499","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000500","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000501","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000502","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000503","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000504","input_refs":[],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"unknown"},{"check_id":"PC17","id":"SIT-CHK-000505","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000506","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000507","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000508","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000509","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000510","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000511","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000512","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000513","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000514","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000515","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000516","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000517","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000518","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000519","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000520","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000521","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000522","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000523","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000524","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000525","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000526","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000527","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC17","id":"SIT-CHK-000528","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000529","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC18","id":"SIT-CHK-000530","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC18","id":"SIT-CHK-000531","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"unknown"},{"check_id":"PC18","id":"SIT-CHK-000532","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000533","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000534","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000535","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"note":"Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000536","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000537","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000538","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000539","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000540","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000541","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000542","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000543","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000544","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000545","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000546","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000547","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000548","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000549","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000550","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000551","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000552","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000553","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000554","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000555","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000556","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000557","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000558","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"not_applicable"},{"check_id":"PC18","id":"SIT-CHK-000559","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000560","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000561","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000562","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000563","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000564","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000565","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000566","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC21","id":"SIT-CHK-000567","input_refs":[],"note":"Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"not_applicable"},{"check_id":"PC22","id":"SIT-CHK-000568","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC22","id":"SIT-CHK-000569","input_refs":[],"note":"Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000570","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000571","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000572","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000573","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000574","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000575","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000576","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000577","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000578","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000579","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000580","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000581","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000582","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000583","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000584","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000585","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000586","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000587","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000588","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000589","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000590","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000591","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000592","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC23","id":"SIT-CHK-000593","input_refs":[],"note":"Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000594","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000595","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000596","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000597","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000003","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000598","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000001","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000599","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000600","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000601","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000602","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000603","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000604","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000605","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000017","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000606","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000607","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000608","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000609","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000610","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000611","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000612","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000613","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000020","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000614","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000615","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000616","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000617","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000019","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000618","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000619","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000620","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000621","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000622","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000623","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000004","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000624","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000625","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000626","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000009","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000627","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000628","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000629","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000630","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000008","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000631","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000632","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000633","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000005","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000634","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000635","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000636","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000637","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000638","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000639","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000640","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000641","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000007","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000642","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000643","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000018","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000644","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000645","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000646","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000647","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000648","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000649","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000650","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000651","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000652","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000653","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000654","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000655","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000656","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000657","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000658","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000659","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000660","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000002","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000661","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000010","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000662","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000011","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000663","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000012","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000664","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000013","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000665","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000014","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000666","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000015","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000667","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000016","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000668","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000669","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000670","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"},{"check_id":"PC24","id":"SIT-CHK-000671","input_refs":[],"note":"Owner-recorded finite processing is complete.","reason_refs":[],"scope_ref":"SIT-SCP-000006","state":"met"}],"contract_version":"sit-report/0.1","findings":[{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M009"],"id":"SIT-FND-000001","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000007"],"reason_refs":["SIT-RSN-000020"],"scope_ref":"SIT-SCP-000004","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M009"],"id":"SIT-FND-000002","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000007"],"reason_refs":["SIT-RSN-000021"],"scope_ref":"SIT-SCP-000004","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000003","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000001"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000004","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000002"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000005","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000003"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000006","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000004"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000007","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000008"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000008","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000009"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000009","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000010"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000010","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000011"],"scope_ref":"SIT-SCP-000008","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000011","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000005"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000012","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000006"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000013","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000007"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000014","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000012"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000015","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000013"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000016","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000014"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000005"],"condition_code":"externality_stage_limitation","contrary_input_refs":[],"diagnostic_refs":["SIT-M010"],"id":"SIT-FND-000017","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","observation_kind":"qualification_gap","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000038"],"scope_ref":"SIT-SCP-000009","statement":"This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.","threat_family_refs":["SIT-TH012"],"witness":{"components":[{"member_count":1,"members":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"type":"selected_members"}],"input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}]}},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000004"],"condition_code":"scoped_no_witness","contrary_input_refs":[],"diagnostic_refs":[],"id":"SIT-FND-000018","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. No outside-world independence or passed threat check follows.","observation_kind":"no_witness_in_examined_view","population_refs":[],"reason_refs":[],"scope_ref":"SIT-SCP-000021","statement":"The completed typed search found no eligible witness between these endpoints in this examined supplied view.","threat_family_refs":[],"witness":{"components":[{"edges":[],"examined_edges":[],"examined_nodes":[{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-BOUND","selector":null}}],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"no_witness_in_examined_view","member_count":5,"members":[],"nodes":[],"observations":[{"eligible":false,"predicate":null,"reason_codes":["scope_unestablished"],"source":{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-BOUND","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-BOUND","selector":"provenance.evidence_ref_ids"},"target":{"kind":"evidence_reference","ref":{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}}}],"starts":[{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-BOUND","selector":null}}],"target":{"kind":"evidence_reference","ref":{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}},"terminals":[{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-BOUND","selector":null}}],"type":"graph_witness"}],"input_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}]}},{"basis_refs":["SIT-BAS-000003","SIT-BAS-000004"],"condition_code":"scoped_no_witness","contrary_input_refs":[],"diagnostic_refs":[],"id":"SIT-FND-000019","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. No outside-world independence or passed threat check follows.","observation_kind":"no_witness_in_examined_view","population_refs":[],"reason_refs":[],"scope_ref":"SIT-SCP-000022","statement":"The completed typed search found no eligible witness between these endpoints in this examined supplied view.","threat_family_refs":[],"witness":{"components":[{"edges":[],"examined_edges":[],"examined_nodes":[{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null}}],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"no_witness_in_examined_view","member_count":5,"members":[],"nodes":[],"observations":[{"eligible":false,"predicate":null,"reason_codes":["scope_unestablished"],"source":{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":"provenance.evidence_ref_ids"},"target":{"kind":"evidence_reference","ref":{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}}}],"starts":[{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null}}],"target":{"kind":"evidence_reference","ref":{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}},"terminals":[{"kind":"assertion","ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null}}],"type":"graph_witness"}],"input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}]}},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000004","SIT-BAS-000005","SIT-BAS-000013","SIT-BAS-000016"],"condition_code":"transformation_path_witness","contrary_input_refs":[],"diagnostic_refs":["SIT-M002","SIT-M004","SIT-M005","SIT-M007"],"id":"SIT-FND-000020","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation.","observation_kind":"positive_witness","population_refs":[],"reason_refs":[],"scope_ref":"SIT-SCP-000019","statement":"An eligible explicit path connects these exact endpoints in the named typed view.","threat_family_refs":["SIT-TH002"],"witness":{"components":[{"edges":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"examined_edges":[],"examined_nodes":[],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"path","member_count":3,"members":[],"nodes":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"observations":[],"starts":[],"target":null,"terminals":[],"type":"graph_witness"},{"edges":[],"examined_edges":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"examined_nodes":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"complete_trace","member_count":6,"members":[],"nodes":[],"observations":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"starts":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}}],"target":null,"terminals":[{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"type":"graph_witness"}],"input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}]}},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000004","SIT-BAS-000005","SIT-BAS-000013","SIT-BAS-000016"],"condition_code":"transformation_path_witness","contrary_input_refs":[],"diagnostic_refs":["SIT-M006"],"id":"SIT-FND-000021","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation.","observation_kind":"positive_witness","population_refs":[],"reason_refs":[],"scope_ref":"SIT-SCP-000020","statement":"An eligible explicit path connects these exact endpoints in the named typed view.","threat_family_refs":["SIT-TH002"],"witness":{"components":[{"edges":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"examined_edges":[],"examined_nodes":[],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"path","member_count":3,"members":[],"nodes":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"observations":[],"starts":[],"target":null,"terminals":[],"type":"graph_witness"},{"edges":[],"examined_edges":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"examined_nodes":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"complete_trace","member_count":5,"members":[],"nodes":[],"observations":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"starts":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}}],"target":null,"terminals":[],"type":"graph_witness"}],"input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}]}},{"basis_refs":["SIT-BAS-000003","SIT-BAS-000004","SIT-BAS-000013","SIT-BAS-000016"],"condition_code":"transformation_path_witness","contrary_input_refs":[],"diagnostic_refs":[],"id":"SIT-FND-000022","interpretation_limit":"Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation.","observation_kind":"positive_witness","population_refs":[],"reason_refs":[],"scope_ref":"SIT-SCP-000023","statement":"An eligible explicit path connects these exact endpoints in the named typed view.","threat_family_refs":["SIT-TH002"],"witness":{"components":[{"edges":[{"eligible":true,"predicate":"originates_from","reason_codes":[],"source":{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},"source_ref":{"collection":"assertions","identifier":"P4-PARENT","selector":null},"target":{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}}],"examined_edges":[],"examined_nodes":[],"exit_edges":[],"frontiers":[],"internal_edges":[],"kind":"path","member_count":3,"members":[],"nodes":[{"kind":"evidence_item","ref":{"collection":"records","identifier":"P4-E1","selector":null}},{"kind":"origin_event","ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"observations":[],"starts":[],"target":null,"terminals":[],"type":"graph_witness"}],"input_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}]}}],"input_identity":{"bundle_id":"P4-BUNDLE-REFERENCE","declared_predecessor":null,"input_contract_version":"sit-bundle/0.1","qualifications":["In-process input has no raw file digest; no canonical object fingerprint is invented."],"raw_file_digest":null,"snapshot_id":"P4-SNAPSHOT-REFERENCE-01","source_mode":"in_process"},"input_validation":{"diagnostics":[],"state":"accepted"},"observability_domains":[{"available_result_refs":["SIT-RES-000001","SIT-RES-000002","SIT-RES-000003","SIT-RES-000004","SIT-RES-000005"],"label":"Artifact and contribution inventory","level_index":0,"not_evaluated_result_refs":[],"reason_refs":[],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000006","SIT-RES-000007","SIT-RES-000008","SIT-RES-000018","SIT-RES-000020","SIT-RES-000021","SIT-RES-000022","SIT-RES-000023","SIT-RES-000024","SIT-RES-000075","SIT-RES-000076","SIT-RES-000077","SIT-RES-000078"],"label":"Declared provenance and process metadata","level_index":1,"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000015","SIT-RSN-000016","SIT-RSN-000017","SIT-RSN-000018","SIT-RSN-000019","SIT-RSN-000034","SIT-RSN-000035","SIT-RSN-000036","SIT-RSN-000037"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000006","SIT-RES-000007","SIT-RES-000008","SIT-RES-000009","SIT-RES-000013","SIT-RES-000014","SIT-RES-000015","SIT-RES-000016","SIT-RES-000017","SIT-RES-000018","SIT-RES-000020"],"label":"Origin-resolution and scoped process-assessment evidence","level_index":2,"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000015","SIT-RSN-000022","SIT-RSN-000023","SIT-RSN-000024","SIT-RSN-000025"],"unavailable_result_refs":["SIT-RES-000010","SIT-RES-000011","SIT-RES-000012"]},{"available_result_refs":["SIT-RES-000049","SIT-RES-000050","SIT-RES-000075","SIT-RES-000076","SIT-RES-000077","SIT-RES-000078"],"label":"Evaluator, correction-route and authority evidence","level_index":3,"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000016","SIT-RSN-000017","SIT-RSN-000018","SIT-RSN-000019","SIT-RSN-000026","SIT-RSN-000027","SIT-RSN-000028","SIT-RSN-000029","SIT-RSN-000030","SIT-RSN-000031","SIT-RSN-000032","SIT-RSN-000033","SIT-RSN-000034","SIT-RSN-000035","SIT-RSN-000036","SIT-RSN-000037"],"unavailable_result_refs":[]},{"available_result_refs":["SIT-RES-000030","SIT-RES-000032","SIT-RES-000034","SIT-RES-000041","SIT-RES-000042","SIT-RES-000043","SIT-RES-000044","SIT-RES-000045","SIT-RES-000046","SIT-RES-000047","SIT-RES-000048","SIT-RES-000051","SIT-RES-000052","SIT-RES-000053","SIT-RES-000054","SIT-RES-000055","SIT-RES-000056","SIT-RES-000057","SIT-RES-000058","SIT-RES-000059","SIT-RES-000060","SIT-RES-000061","SIT-RES-000062","SIT-RES-000063","SIT-RES-000064","SIT-RES-000065","SIT-RES-000066","SIT-RES-000067","SIT-RES-000068","SIT-RES-000069","SIT-RES-000070","SIT-RES-000071","SIT-RES-000072","SIT-RES-000073","SIT-RES-000074"],"label":"Boundary-qualified external input, stage histories and documented correction outcomes","level_index":4,"not_evaluated_result_refs":[],"reason_refs":["SIT-RSN-000001","SIT-RSN-000002","SIT-RSN-000003","SIT-RSN-000004","SIT-RSN-000005","SIT-RSN-000006","SIT-RSN-000007","SIT-RSN-000008","SIT-RSN-000009","SIT-RSN-000010","SIT-RSN-000011","SIT-RSN-000012","SIT-RSN-000013","SIT-RSN-000014","SIT-RSN-000020","SIT-RSN-000021","SIT-RSN-000038"],"unavailable_result_refs":["SIT-RES-000029","SIT-RES-000031","SIT-RES-000033","SIT-RES-000035","SIT-RES-000036","SIT-RES-000037"]}],"populations":[{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"coverage_refs":[],"id":"SIT-POP-000001","member_refs":[{"collection":"records","identifier":"P4-ART","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources."],"scope_ref":"SIT-SCP-000001","selection_rule":"A(I): resolved explicit seed Artifacts union resolved Artifact bindings of every Inquiry seed EvidenceItem.","unit":"artifact_record"},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"coverage_refs":[],"id":"SIT-POP-000002","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources."],"scope_ref":"SIT-SCP-000001","selection_rule":"Resolved explicit Artifact seeds lacking any seed EvidenceItem binding in this entire Inquiry.","unit":"artifact_record"},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"coverage_refs":[],"id":"SIT-POP-000003","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources."],"scope_ref":"SIT-SCP-000001","selection_rule":"U_A(I): unique unresolved Artifact reference IDs at the same explicit Inquiry seed source positions.","unit":"unresolved_reference"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000004","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000002","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"coverage_refs":[],"id":"SIT-POP-000005","member_refs":[{"collection":"records","identifier":"P4-ART","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources."],"scope_ref":"SIT-SCP-000003","selection_rule":"A(I,C): unique resolved Artifact IDs bound by E(I,C); unresolved endpoints are excluded.","unit":"artifact_record"},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"coverage_refs":[],"id":"SIT-POP-000006","member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources."],"scope_ref":"SIT-SCP-000003","selection_rule":"E(I,C): explicitly listed resolved seed EvidenceItem IDs whose exact Claim binding is C.","unit":"evidence_item"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000007","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Unestablished native membership is retained as a declaration; it supplies no numerical denominator."],"scope_ref":"SIT-SCP-000004","selection_rule":"Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.","unit":"record"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000008","member_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000006","selection_rule":"Explicit named EvidenceReference IDs, deduplicated within this snapshot.","unit":"evidence_reference"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000009","member_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000006","selection_rule":"Explicit named coverage Assertion IDs, deduplicated within this snapshot.","unit":"record"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000010","member_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"inquiries","identifier":"P4-I001","selector":null},{"collection":"records","identifier":"P4-ACTOR","selector":null},{"collection":"records","identifier":"P4-ART","selector":null},{"collection":"records","identifier":"P4-CLAIM","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000006","selection_rule":"Explicit named record IDs, deduplicated within this snapshot.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000011","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case documentary_linked_change_target_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"case_target"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000012","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case cases_with_documentary_linked_change_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"correction_case"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000013","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case correction_case_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"correction_case"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000014","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case linked_change_event_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"correction_change_record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000015","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case handling_event_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"handling_event"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000016","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case correction_case_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000017","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case correction_target_change_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000018","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world or all-downstream completeness."],"scope_ref":"SIT-SCP-000007","selection_rule":"Exact whole-case reported_capacity_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000019","member_refs":[],"membership_state":"unestablished","qualifications":["Unestablished native membership is retained as a declaration; it supplies no numerical denominator."],"scope_ref":"SIT-SCP-000008","selection_rule":"Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.","unit":"pipeline_member"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000020","member_refs":[],"membership_state":"unestablished","qualifications":["Unestablished native membership is retained as a declaration; it supplies no numerical denominator."],"scope_ref":"SIT-SCP-000009","selection_rule":"Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.","unit":"pipeline_member"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000021","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000010","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000022","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000011","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000023","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000012","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000024","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000013","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000025","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000014","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000026","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000015","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000027","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["No outside-world consensus or anomaly denominator."],"scope_ref":"SIT-SCP-000016","selection_rule":"Exact finite supplied context records; stage references retain M010 populations separately.","unit":"record"},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"coverage_refs":[],"id":"SIT-POP-000028","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders."],"scope_ref":"SIT-SCP-000017","selection_rule":"Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.","unit":"comparison_member"},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"coverage_refs":[],"id":"SIT-POP-000029","member_refs":[],"membership_state":"unestablished","qualifications":["An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders."],"scope_ref":"SIT-SCP-000017","selection_rule":"Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.","unit":"comparison_member"},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"coverage_refs":[],"id":"SIT-POP-000030","member_refs":[],"membership_state":"unestablished","qualifications":["An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders."],"scope_ref":"SIT-SCP-000017","selection_rule":"Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.","unit":"origin_event"},{"basis_refs":["SIT-BAS-000005"],"coverage_refs":[],"id":"SIT-POP-000031","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["This finite supplied selection confers no outside-world completeness."],"scope_ref":"SIT-SCP-000018","selection_rule":"Exactly the requested actual subjects, or the explicit Evaluation targets of this Inquiry; no all-record cohort or hidden human-judgment population.","unit":"record"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000032","member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"The complete explicit Claim-bound E(I,C), without dropping unresolved or multiple-origin rows.","unit":"evidence_item"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000033","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Unique exact supplied IDs after every explicit seed and relevant branch was examined: seed_items_with_unresolved_ancestry_count","unit":"evidence_item"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000034","member_refs":[{"collection":"records","identifier":"P4-O1","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Unique exact supplied IDs after every explicit seed and relevant branch was examined: documentary_origin_boundary_record_count","unit":"origin_event"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000035","member_refs":[{"collection":"records","identifier":"P4-O1","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Unique exact supplied IDs after every explicit seed and relevant branch was examined: reached_origin_record_count","unit":"origin_event"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000036","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Exact source records with completed owner-local disclosures: ancestry_gap_disclosures","unit":"record"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000037","member_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Exact source records with completed owner-local disclosures: origin_boundary_disclosures","unit":"record"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000038","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Unique exact supplied IDs after every explicit seed and relevant branch was examined: unqualified_terminal_record_count","unit":"record"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000039","member_refs":[],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000019","selection_rule":"Unique exact supplied IDs after every explicit seed and relevant branch was examined: unresolved_frontier_reference_count","unit":"unresolved_reference"},{"basis_refs":[],"coverage_refs":[],"id":"SIT-POP-000040","member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"membership_state":"enumerated_for_scope","qualifications":["Each explicit source ID is counted once; this is not a claim that the external universe is complete."],"scope_ref":"SIT-SCP-000020","selection_rule":"The complete explicit Claim-bound E(I,C), without dropping unresolved or multiple-origin rows.","unit":"evidence_item"}],"reasons":[{"affected_result_refs":["SIT-RES-000034"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000001","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000035"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000002","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000036"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000003","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000037"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000004","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000031"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000005","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"},{"affected_result_refs":["SIT-RES-000032"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000006","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"},{"affected_result_refs":["SIT-RES-000033"],"classification":"evidence_gap","code":"cohort_anchor_missing","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000007","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"},{"affected_result_refs":["SIT-RES-000034"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000008","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000035"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000009","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000036"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000010","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000037"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000011","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000008"},{"affected_result_refs":["SIT-RES-000031"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000012","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"},{"affected_result_refs":["SIT-RES-000032"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000013","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"},{"affected_result_refs":["SIT-RES-000033"],"classification":"evidence_gap","code":"cohort_universe_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000014","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"},{"affected_result_refs":["SIT-RES-000019"],"classification":"structural_inapplicability","code":"completion_interval_not_needed","detail":"Exact scoped contribution limitation; positive records and the full denominator remain visible.","id":"SIT-RSN-000015","input_refs":[],"scope_ref":"SIT-SCP-000020"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"documentary_basis_incomplete","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000016","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"documentary_basis_incomplete","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000017","input_refs":[{"collection":"records","identifier":"P4-ACTOR","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"documentary_basis_incomplete","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000018","input_refs":[{"collection":"records","identifier":"P4-ART","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"documentary_basis_incomplete","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000019","input_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000029"],"classification":"evidence_gap","code":"externality_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000020","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000004"},{"affected_result_refs":["SIT-RES-000030"],"classification":"evidence_gap","code":"externality_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000021","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000004"},{"affected_result_refs":["SIT-RES-000009"],"classification":"evidence_gap","code":"missing_comparison_assessment","detail":"This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.","id":"SIT-RSN-000022","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000017"},{"affected_result_refs":["SIT-RES-000010"],"classification":"evidence_gap","code":"missing_comparison_assessment","detail":"This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.","id":"SIT-RSN-000023","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000017"},{"affected_result_refs":["SIT-RES-000011"],"classification":"evidence_gap","code":"missing_comparison_assessment","detail":"This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.","id":"SIT-RSN-000024","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000017"},{"affected_result_refs":["SIT-RES-000012"],"classification":"evidence_gap","code":"missing_comparison_assessment","detail":"This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.","id":"SIT-RSN-000025","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000017"},{"affected_result_refs":["SIT-RES-000049"],"classification":"evidence_gap","code":"missing_comparison_assessment","detail":"The supplied review/process record retains this exact qualification limit. Visible contribution does not resolve missing process evidence or dependencies.","id":"SIT-RSN-000026","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000018"},{"affected_result_refs":["SIT-RES-000025"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000027","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000026"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000028","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000027"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000029","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000028"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000030","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000038"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000031","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000039"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000032","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000040"],"classification":"structural_inapplicability","code":"no_applicable_subject","detail":"No eligible subject tuple was supplied for this finite operation.","id":"SIT-RSN-000033","input_refs":[],"scope_ref":"SIT-SCP-000005"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"support_uninspectable","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000034","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"support_uninspectable","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000035","input_refs":[{"collection":"records","identifier":"P4-ACTOR","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"support_uninspectable","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000036","input_refs":[{"collection":"records","identifier":"P4-ART","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000077"],"classification":"evidence_gap","code":"support_uninspectable","detail":"The attributed named record retains this local qualification; its native inventory label is unchanged.","id":"SIT-RSN-000037","input_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"scope_ref":"SIT-SCP-000006"},{"affected_result_refs":["SIT-RES-000032"],"classification":"evidence_gap","code":"transition_baseline_unestablished","detail":"This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.","id":"SIT-RSN-000038","input_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null}],"scope_ref":"SIT-SCP-000009"}],"release_limits":["Offline analysis of caller-supplied records only.","Source identity, authenticity and external events are not independently authenticated.","No live monitoring or active content-level poisoning, injection or authorship detection was performed.","No universal truth, integrity, independence or safety score is produced.","No automatic intervention, source contact or changes to the audited system are performed.","Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence."],"report_id":"SIT-RPT-000001","report_kind":"audit_report","results":[{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"check_refs":["SIT-CHK-000001","SIT-CHK-000079","SIT-CHK-000157","SIT-CHK-000594"],"diagnostic_id":"SIT-M001","execution_state":"completed","field_key":"claim_artifact_record_count","id":"SIT-RES-000001","interpretation_limit":"Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.","population_refs":["SIT-POP-000005"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000003","value":1,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"check_refs":["SIT-CHK-000002","SIT-CHK-000080","SIT-CHK-000158","SIT-CHK-000595"],"diagnostic_id":"SIT-M001","execution_state":"completed","field_key":"claim_unassigned_seed_artifact_record_count","id":"SIT-RES-000002","interpretation_limit":"Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.","population_refs":["SIT-POP-000002"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000001","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"check_refs":["SIT-CHK-000003","SIT-CHK-000081","SIT-CHK-000159","SIT-CHK-000596"],"diagnostic_id":"SIT-M001","execution_state":"completed","field_key":"nominal_seed_artifact_record_count","id":"SIT-RES-000003","interpretation_limit":"Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.","population_refs":["SIT-POP-000001"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000001","value":1,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"check_refs":["SIT-CHK-000004","SIT-CHK-000082","SIT-CHK-000160","SIT-CHK-000597"],"diagnostic_id":"SIT-M001","execution_state":"completed","field_key":"seed_evidence_item_count","id":"SIT-RES-000004","interpretation_limit":"Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.","population_refs":["SIT-POP-000006"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000003","value":1,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000007","SIT-BAS-000008","SIT-BAS-000014","SIT-BAS-000015"],"check_refs":["SIT-CHK-000005","SIT-CHK-000083","SIT-CHK-000161","SIT-CHK-000598"],"diagnostic_id":"SIT-M001","execution_state":"completed","field_key":"unresolved_seed_artifact_reference_count","id":"SIT-RES-000005","interpretation_limit":"Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.","population_refs":["SIT-POP-000003"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000001","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000006","SIT-CHK-000084","SIT-CHK-000162","SIT-CHK-000193","SIT-CHK-000224","SIT-CHK-000279","SIT-CHK-000298","SIT-CHK-000314","SIT-CHK-000343","SIT-CHK-000398","SIT-CHK-000599"],"diagnostic_id":"SIT-M002","execution_state":"completed","field_key":"documentary_origin_boundary_record_count","id":"SIT-RES-000006","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000034"],"reason_refs":[],"result_origin":"qualification_check","result_state":"available","scope_ref":"SIT-SCP-000019","value":1,"value_kind":"count","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000007","SIT-CHK-000085","SIT-CHK-000163","SIT-CHK-000194","SIT-CHK-000225","SIT-CHK-000280","SIT-CHK-000299","SIT-CHK-000315","SIT-CHK-000344","SIT-CHK-000399","SIT-CHK-000600"],"diagnostic_id":"SIT-M002","execution_state":"completed","field_key":"origin_boundary_disclosures","id":"SIT-RES-000007","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000037"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"records":[{"fields":{"native_record":{"asserted_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"assertion_kind":"assessment","data":{"assessment_kind":"origin_boundary","details":{"boundary_role":"documented_origin","coverage_ref":"P4-COVER","dimension":"acquisition","termination_reason":"This supplied finite acquisition record terminates here."},"subject_refs":["P4-O1"]},"id":"P4-BOUND","lifecycle_basis_ref_ids":[],"lifecycle_state":"active","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"documented_record","evidence_ref_ids":["P4-SUPPORT"],"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."]},"scope":{"claim_refs":["P4-CLAIM"],"effective_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}},"inquiry_refs":["P4-I001"]}},"qualification_state":"met","reason_codes":[]},"qualifications":["Attributed documentary support only; no authentication or positive-edge eligibility.","Lifecycle and relation polarity are retained; documentary qualification does not make a current positive premise.","Caller-supplied documentary premise (合成例); no external authentication."],"source":{"collection":"assertions","identifier":"P4-BOUND","selector":null}}]},"value_kind":"record_disclosures","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000008","SIT-CHK-000086","SIT-CHK-000164","SIT-CHK-000195","SIT-CHK-000226","SIT-CHK-000281","SIT-CHK-000300","SIT-CHK-000316","SIT-CHK-000345","SIT-CHK-000400","SIT-CHK-000601"],"diagnostic_id":"SIT-M002","execution_state":"completed","field_key":"reached_origin_record_count","id":"SIT-RES-000008","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000035"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":1,"value_kind":"count","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"check_refs":["SIT-CHK-000009","SIT-CHK-000087","SIT-CHK-000165","SIT-CHK-000196","SIT-CHK-000227","SIT-CHK-000282","SIT-CHK-000301","SIT-CHK-000317","SIT-CHK-000346","SIT-CHK-000401","SIT-CHK-000453","SIT-CHK-000602"],"diagnostic_id":"SIT-M003","execution_state":"completed","field_key":"independence_assessment_disclosures","id":"SIT-RES-000009","interpretation_limit":"Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.","population_refs":["SIT-POP-000028"],"reason_refs":["SIT-RSN-000022"],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000017","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"check_refs":["SIT-CHK-000010","SIT-CHK-000088","SIT-CHK-000166","SIT-CHK-000197","SIT-CHK-000228","SIT-CHK-000283","SIT-CHK-000302","SIT-CHK-000318","SIT-CHK-000347","SIT-CHK-000402","SIT-CHK-000454","SIT-CHK-000603"],"diagnostic_id":"SIT-M003","execution_state":"completed","field_key":"qualified_origin_set_member_count","id":"SIT-RES-000010","interpretation_limit":"Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.","population_refs":["SIT-POP-000030"],"reason_refs":["SIT-RSN-000023"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000017","value":null,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"check_refs":["SIT-CHK-000011","SIT-CHK-000089","SIT-CHK-000167","SIT-CHK-000198","SIT-CHK-000229","SIT-CHK-000284","SIT-CHK-000303","SIT-CHK-000319","SIT-CHK-000348","SIT-CHK-000403","SIT-CHK-000455","SIT-CHK-000604"],"diagnostic_id":"SIT-M003","execution_state":"completed","field_key":"qualified_process_set_member_count","id":"SIT-RES-000011","interpretation_limit":"Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.","population_refs":["SIT-POP-000029"],"reason_refs":["SIT-RSN-000024"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000017","value":null,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000006","SIT-BAS-000009"],"check_refs":["SIT-CHK-000012","SIT-CHK-000090","SIT-CHK-000168","SIT-CHK-000199","SIT-CHK-000230","SIT-CHK-000285","SIT-CHK-000304","SIT-CHK-000320","SIT-CHK-000349","SIT-CHK-000404","SIT-CHK-000456","SIT-CHK-000605"],"diagnostic_id":"SIT-M003","execution_state":"completed","field_key":"submitted_comparison_member_count","id":"SIT-RES-000012","interpretation_limit":"Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.","population_refs":["SIT-POP-000029"],"reason_refs":["SIT-RSN-000025"],"result_origin":"inventory","result_state":"unavailable","scope_ref":"SIT-SCP-000017","value":null,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000013","SIT-CHK-000091","SIT-CHK-000169","SIT-CHK-000200","SIT-CHK-000231","SIT-CHK-000286","SIT-CHK-000305","SIT-CHK-000321","SIT-CHK-000350","SIT-CHK-000405","SIT-CHK-000606"],"diagnostic_id":"SIT-M004","execution_state":"completed","field_key":"documentary_origin_resolution_fraction","id":"SIT-RES-000013","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000032"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"denominator":1,"numerator":1},"value_kind":"fraction","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000014","SIT-CHK-000092","SIT-CHK-000170","SIT-CHK-000201","SIT-CHK-000232","SIT-CHK-000287","SIT-CHK-000306","SIT-CHK-000322","SIT-CHK-000351","SIT-CHK-000406","SIT-CHK-000607"],"diagnostic_id":"SIT-M004","execution_state":"completed","field_key":"origin_incidence_counts","id":"SIT-RES-000014","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000032"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"memberships":[{"member_ref":{"collection":"records","identifier":"P4-E1","selector":null},"origin_refs":[{"collection":"records","identifier":"P4-O1","selector":null}]}],"nonexclusive":true,"origin_counts":[{"count":1,"member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"origin_ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"population_ref":"SIT-POP-000032","total":1},"value_kind":"incidence","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000015","SIT-CHK-000093","SIT-CHK-000171","SIT-CHK-000202","SIT-CHK-000233","SIT-CHK-000288","SIT-CHK-000307","SIT-CHK-000323","SIT-CHK-000352","SIT-CHK-000407","SIT-CHK-000608"],"diagnostic_id":"SIT-M004","execution_state":"completed","field_key":"per_seed_origin_memberships","id":"SIT-RES-000015","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000032"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"memberships":[{"member_ref":{"collection":"records","identifier":"P4-E1","selector":null},"origin_refs":[{"collection":"records","identifier":"P4-O1","selector":null}]}],"nonexclusive":true,"origin_counts":[{"count":1,"member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}],"origin_ref":{"collection":"records","identifier":"P4-O1","selector":null}}],"population_ref":"SIT-POP-000032","total":1},"value_kind":"incidence","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000016","SIT-CHK-000094","SIT-CHK-000172","SIT-CHK-000203","SIT-CHK-000234","SIT-CHK-000289","SIT-CHK-000308","SIT-CHK-000324","SIT-CHK-000353","SIT-CHK-000408","SIT-CHK-000609"],"diagnostic_id":"SIT-M004","execution_state":"completed","field_key":"seed_origin_dispositions","id":"SIT-RES-000016","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000032"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"categories":[{"count":0,"label":"unresolved_or_conflicted","member_refs":[]},{"count":0,"label":"contains_baseline_or_scope_cut","member_refs":[]},{"count":0,"label":"contains_declared_origin","member_refs":[]},{"count":0,"label":"multiple_documented_origins","member_refs":[]},{"count":1,"label":"single_documented_origin","member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}]}],"population_ref":"SIT-POP-000032","total":1},"value_kind":"partition","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000017","SIT-CHK-000095","SIT-CHK-000173","SIT-CHK-000204","SIT-CHK-000235","SIT-CHK-000290","SIT-CHK-000309","SIT-CHK-000325","SIT-CHK-000354","SIT-CHK-000409","SIT-CHK-000459","SIT-CHK-000610"],"diagnostic_id":"SIT-M005","execution_state":"completed","field_key":"single_origin_contribution_hhi","id":"SIT-RES-000017","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000032"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"denominator":1,"numerator":1},"value_kind":"fraction","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000018","SIT-CHK-000096","SIT-CHK-000174","SIT-CHK-000205","SIT-CHK-000236","SIT-CHK-000291","SIT-CHK-000326","SIT-CHK-000355","SIT-CHK-000410","SIT-CHK-000460","SIT-CHK-000611"],"diagnostic_id":"SIT-M006","execution_state":"completed","field_key":"immediate_evidence_layer_dispositions","id":"SIT-RES-000018","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000040"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000020","value":{"categories":[{"count":0,"label":"inherited_only_at_evidence_layer","member_refs":[]},{"count":1,"label":"direct_origin_link_only","member_refs":[{"collection":"records","identifier":"P4-E1","selector":null}]},{"count":0,"label":"mixed_direct_and_inherited","member_refs":[]},{"count":0,"label":"unresolved_at_evidence_layer","member_refs":[]}],"population_ref":"SIT-POP-000040","total":1},"value_kind":"partition","witness_refs":["SIT-FND-000021"]},{"basis_refs":["SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000019","SIT-CHK-000097","SIT-CHK-000175","SIT-CHK-000206","SIT-CHK-000237","SIT-CHK-000292","SIT-CHK-000327","SIT-CHK-000356","SIT-CHK-000411","SIT-CHK-000461","SIT-CHK-000612"],"diagnostic_id":"SIT-M006","execution_state":"completed","field_key":"inherited_only_completion_interval","id":"SIT-RES-000019","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000040"],"reason_refs":["SIT-RSN-000015"],"result_origin":"graph_derivation","result_state":"not_applicable","scope_ref":"SIT-SCP-000020","value":null,"value_kind":"completion_interval","witness_refs":["SIT-FND-000021"]},{"basis_refs":["SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000020","SIT-CHK-000098","SIT-CHK-000176","SIT-CHK-000207","SIT-CHK-000238","SIT-CHK-000293","SIT-CHK-000328","SIT-CHK-000357","SIT-CHK-000412","SIT-CHK-000462","SIT-CHK-000613"],"diagnostic_id":"SIT-M006","execution_state":"completed","field_key":"inherited_only_seed_fraction","id":"SIT-RES-000020","interpretation_limit":"Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.","population_refs":["SIT-POP-000040"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000020","value":{"denominator":1,"numerator":0},"value_kind":"fraction","witness_refs":["SIT-FND-000021"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000021","SIT-CHK-000099","SIT-CHK-000177","SIT-CHK-000208","SIT-CHK-000239","SIT-CHK-000294","SIT-CHK-000310","SIT-CHK-000329","SIT-CHK-000358","SIT-CHK-000413","SIT-CHK-000614"],"diagnostic_id":"SIT-M007","execution_state":"completed","field_key":"ancestry_gap_disclosures","id":"SIT-RES-000021","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000036"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000022","SIT-CHK-000100","SIT-CHK-000178","SIT-CHK-000209","SIT-CHK-000240","SIT-CHK-000295","SIT-CHK-000311","SIT-CHK-000330","SIT-CHK-000359","SIT-CHK-000414","SIT-CHK-000615"],"diagnostic_id":"SIT-M007","execution_state":"completed","field_key":"seed_items_with_unresolved_ancestry_count","id":"SIT-RES-000022","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000033"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":0,"value_kind":"count","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000023","SIT-CHK-000101","SIT-CHK-000179","SIT-CHK-000210","SIT-CHK-000241","SIT-CHK-000296","SIT-CHK-000312","SIT-CHK-000331","SIT-CHK-000360","SIT-CHK-000415","SIT-CHK-000616"],"diagnostic_id":"SIT-M007","execution_state":"completed","field_key":"unqualified_terminal_record_count","id":"SIT-RES-000023","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000038"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":0,"value_kind":"count","witness_refs":["SIT-FND-000020"]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005"],"check_refs":["SIT-CHK-000024","SIT-CHK-000102","SIT-CHK-000180","SIT-CHK-000211","SIT-CHK-000242","SIT-CHK-000297","SIT-CHK-000313","SIT-CHK-000332","SIT-CHK-000361","SIT-CHK-000416","SIT-CHK-000617"],"diagnostic_id":"SIT-M007","execution_state":"completed","field_key":"unresolved_frontier_reference_count","id":"SIT-RES-000024","interpretation_limit":"Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.","population_refs":["SIT-POP-000039"],"reason_refs":[],"result_origin":"graph_derivation","result_state":"available","scope_ref":"SIT-SCP-000019","value":0,"value_kind":"count","witness_refs":["SIT-FND-000020"]},{"basis_refs":[],"check_refs":["SIT-CHK-000025","SIT-CHK-000103","SIT-CHK-000618"],"diagnostic_id":"SIT-M008","execution_state":"completed","field_key":"evaluator_overlap_disclosures","id":"SIT-RES-000025","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000027"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000026","SIT-CHK-000104","SIT-CHK-000619"],"diagnostic_id":"SIT-M008","execution_state":"completed","field_key":"evaluator_overlap_witnesses","id":"SIT-RES-000026","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000028"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"witness_collection","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000027","SIT-CHK-000105","SIT-CHK-000620"],"diagnostic_id":"SIT-M008","execution_state":"completed","field_key":"matching_family_label_count","id":"SIT-RES-000027","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000029"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"count","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000028","SIT-CHK-000106","SIT-CHK-000621"],"diagnostic_id":"SIT-M008","execution_state":"completed","field_key":"shared_recorded_ancestor_count","id":"SIT-RES-000028","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000030"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000029","SIT-CHK-000107","SIT-CHK-000243","SIT-CHK-000362","SIT-CHK-000417","SIT-CHK-000465","SIT-CHK-000622"],"diagnostic_id":"SIT-M009","execution_state":"completed","field_key":"externality_assessment_disclosures","id":"SIT-RES-000029","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000007"],"reason_refs":["SIT-RSN-000020"],"result_origin":"attributed_record","result_state":"unavailable","scope_ref":"SIT-SCP-000004","value":null,"value_kind":"record_disclosures","witness_refs":["SIT-FND-000001"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000030","SIT-CHK-000108","SIT-CHK-000244","SIT-CHK-000363","SIT-CHK-000418","SIT-CHK-000466","SIT-CHK-000623"],"diagnostic_id":"SIT-M009","execution_state":"completed","field_key":"externality_stage_links","id":"SIT-RES-000030","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000007"],"reason_refs":["SIT-RSN-000021"],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000004","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":["SIT-FND-000002"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000031","SIT-CHK-000109","SIT-CHK-000467","SIT-CHK-000498","SIT-CHK-000529","SIT-CHK-000624"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"cohort_transition_completion_interval","id":"SIT-RES-000031","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000005","SIT-RSN-000012"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000009","value":null,"value_kind":"completion_interval","witness_refs":["SIT-FND-000011","SIT-FND-000014"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000032","SIT-CHK-000110","SIT-CHK-000468","SIT-CHK-000499","SIT-CHK-000530","SIT-CHK-000625"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"cohort_transition_disclosures","id":"SIT-RES-000032","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000006","SIT-RSN-000013","SIT-RSN-000038"],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000009","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":["SIT-FND-000012","SIT-FND-000015","SIT-FND-000017"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000033","SIT-CHK-000111","SIT-CHK-000469","SIT-CHK-000500","SIT-CHK-000531","SIT-CHK-000626"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"cohort_transition_fraction","id":"SIT-RES-000033","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000020"],"reason_refs":["SIT-RSN-000007","SIT-RSN-000014"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000009","value":null,"value_kind":"fraction","witness_refs":["SIT-FND-000013","SIT-FND-000016"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000034","SIT-CHK-000112","SIT-CHK-000470","SIT-CHK-000501","SIT-CHK-000532","SIT-CHK-000627"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"pipeline_stage_disclosures","id":"SIT-RES-000034","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000001","SIT-RSN-000008"],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000008","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":["SIT-FND-000003","SIT-FND-000007"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000035","SIT-CHK-000113","SIT-CHK-000471","SIT-CHK-000502","SIT-CHK-000533","SIT-CHK-000628"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"stage_member_partition","id":"SIT-RES-000035","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000002","SIT-RSN-000009"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000008","value":null,"value_kind":"partition","witness_refs":["SIT-FND-000004","SIT-FND-000008"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000036","SIT-CHK-000114","SIT-CHK-000472","SIT-CHK-000503","SIT-CHK-000534","SIT-CHK-000629"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"stage_occurrence_completion_interval","id":"SIT-RES-000036","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000003","SIT-RSN-000010"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000008","value":null,"value_kind":"completion_interval","witness_refs":["SIT-FND-000005","SIT-FND-000009"]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000037","SIT-CHK-000115","SIT-CHK-000473","SIT-CHK-000504","SIT-CHK-000535","SIT-CHK-000630"],"diagnostic_id":"SIT-M010","execution_state":"completed","field_key":"stage_occurrence_fraction","id":"SIT-RES-000037","interpretation_limit":"Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.","population_refs":["SIT-POP-000019"],"reason_refs":["SIT-RSN-000004","SIT-RSN-000011"],"result_origin":"qualification_check","result_state":"unavailable","scope_ref":"SIT-SCP-000008","value":null,"value_kind":"fraction","witness_refs":["SIT-FND-000006","SIT-FND-000010"]},{"basis_refs":[],"check_refs":["SIT-CHK-000038","SIT-CHK-000116","SIT-CHK-000631"],"diagnostic_id":"SIT-M011","execution_state":"completed","field_key":"applicable_authorized_route_witnesses","id":"SIT-RES-000038","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000031"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"witness_collection","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000039","SIT-CHK-000117","SIT-CHK-000632"],"diagnostic_id":"SIT-M011","execution_state":"completed","field_key":"correction_route_disclosures","id":"SIT-RES-000039","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000032"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000040","SIT-CHK-000118","SIT-CHK-000633"],"diagnostic_id":"SIT-M011","execution_state":"completed","field_key":"declared_correction_route_witnesses","id":"SIT-RES-000040","interpretation_limit":"No eligible subject tuple was supplied for this finite operation.","population_refs":[],"reason_refs":["SIT-RSN-000033"],"result_origin":"qualification_check","result_state":"not_applicable","scope_ref":"SIT-SCP-000005","value":null,"value_kind":"witness_collection","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000041","SIT-CHK-000119","SIT-CHK-000181","SIT-CHK-000212","SIT-CHK-000245","SIT-CHK-000333","SIT-CHK-000364","SIT-CHK-000419","SIT-CHK-000560","SIT-CHK-000634"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"cases_with_documentary_linked_change_count","id":"SIT-RES-000041","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000012"],"reason_refs":[],"result_origin":"qualification_check","result_state":"available","scope_ref":"SIT-SCP-000007","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000042","SIT-CHK-000120","SIT-CHK-000182","SIT-CHK-000213","SIT-CHK-000246","SIT-CHK-000334","SIT-CHK-000365","SIT-CHK-000420","SIT-CHK-000561","SIT-CHK-000635"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"correction_case_disclosures","id":"SIT-RES-000042","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000016"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000007","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000043","SIT-CHK-000121","SIT-CHK-000183","SIT-CHK-000214","SIT-CHK-000247","SIT-CHK-000335","SIT-CHK-000366","SIT-CHK-000421","SIT-CHK-000562","SIT-CHK-000636"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"correction_case_record_count","id":"SIT-RES-000043","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000013"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000007","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000044","SIT-CHK-000122","SIT-CHK-000184","SIT-CHK-000215","SIT-CHK-000248","SIT-CHK-000336","SIT-CHK-000367","SIT-CHK-000422","SIT-CHK-000563","SIT-CHK-000637"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"correction_target_change_disclosures","id":"SIT-RES-000044","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000017"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000007","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000045","SIT-CHK-000123","SIT-CHK-000185","SIT-CHK-000216","SIT-CHK-000249","SIT-CHK-000337","SIT-CHK-000368","SIT-CHK-000423","SIT-CHK-000564","SIT-CHK-000638"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"documentary_linked_change_target_count","id":"SIT-RES-000045","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000011"],"reason_refs":[],"result_origin":"qualification_check","result_state":"available","scope_ref":"SIT-SCP-000007","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000046","SIT-CHK-000124","SIT-CHK-000186","SIT-CHK-000217","SIT-CHK-000250","SIT-CHK-000338","SIT-CHK-000369","SIT-CHK-000424","SIT-CHK-000565","SIT-CHK-000639"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"handling_event_record_count","id":"SIT-RES-000046","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000015"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000007","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000047","SIT-CHK-000125","SIT-CHK-000187","SIT-CHK-000218","SIT-CHK-000251","SIT-CHK-000339","SIT-CHK-000370","SIT-CHK-000425","SIT-CHK-000566","SIT-CHK-000640"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"linked_change_event_record_count","id":"SIT-RES-000047","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000014"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000007","value":0,"value_kind":"count","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000048","SIT-CHK-000126","SIT-CHK-000188","SIT-CHK-000219","SIT-CHK-000252","SIT-CHK-000340","SIT-CHK-000371","SIT-CHK-000426","SIT-CHK-000567","SIT-CHK-000641"],"diagnostic_id":"SIT-M012","execution_state":"completed","field_key":"reported_capacity_disclosures","id":"SIT-RES-000048","interpretation_limit":"Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.","population_refs":["SIT-POP-000018"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000007","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000049","SIT-CHK-000127","SIT-CHK-000253","SIT-CHK-000341","SIT-CHK-000372","SIT-CHK-000427","SIT-CHK-000457","SIT-CHK-000463","SIT-CHK-000568","SIT-CHK-000642"],"diagnostic_id":"SIT-M013","execution_state":"completed","field_key":"corrective_independence_disclosures","id":"SIT-RES-000049","interpretation_limit":"Attributed supplied review and exact process assessment only. A human title, employer, endpoint or recorded contribution establishes neither independence nor renewable human judgment. A qualified procedure does not establish institutional execution. Unexamined dimensions and protected or unresolved dependencies remain unestablished; formal checks and execution retain their own constraint kinds. No total independent-human capacity or judgment score follows.","population_refs":["SIT-POP-000031"],"reason_refs":["SIT-RSN-000026"],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000018","value":{"records":[{"fields":{"native_record":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"boundary":{"criterion":"Only the supplied finite record identities and typed bindings.","description":"One fictional acquisition and its supplied contribution.","system_refs":[]},"coverage_assertion_refs":["P4-COVER"],"dependency_dimensions":["acquisition"],"id":"P4-I001","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"declaration","evidence_ref_ids":[],"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."]},"seed_artifact_refs":["P4-ART"],"seed_evidence_refs":["P4-E1"],"target_claim_refs":["P4-CLAIM"],"target_object_refs":[],"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}}},"qualifications":["Actual owner selection/source reference slot; this record does not establish an applicable review or independent process."],"source":{"collection":"inquiries","identifier":"P4-I001","selector":"target_object_refs"}}]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000050","SIT-CHK-000128","SIT-CHK-000254","SIT-CHK-000342","SIT-CHK-000373","SIT-CHK-000428","SIT-CHK-000458","SIT-CHK-000464","SIT-CHK-000569","SIT-CHK-000643"],"diagnostic_id":"SIT-M013","execution_state":"completed","field_key":"human_contribution_disclosures","id":"SIT-RES-000050","interpretation_limit":"Attributed supplied review and exact process assessment only. A human title, employer, endpoint or recorded contribution establishes neither independence nor renewable human judgment. A qualified procedure does not establish institutional execution. Unexamined dimensions and protected or unresolved dependencies remain unestablished; formal checks and execution retain their own constraint kinds. No total independent-human capacity or judgment score follows.","population_refs":["SIT-POP-000031"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000018","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000051","SIT-CHK-000129","SIT-CHK-000255","SIT-CHK-000374","SIT-CHK-000429","SIT-CHK-000474","SIT-CHK-000505","SIT-CHK-000536","SIT-CHK-000570","SIT-CHK-000644"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000051","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000004"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000002","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000052","SIT-CHK-000130","SIT-CHK-000256","SIT-CHK-000375","SIT-CHK-000430","SIT-CHK-000475","SIT-CHK-000506","SIT-CHK-000537","SIT-CHK-000571","SIT-CHK-000645"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000052","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000021"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000010","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000053","SIT-CHK-000131","SIT-CHK-000257","SIT-CHK-000376","SIT-CHK-000431","SIT-CHK-000476","SIT-CHK-000507","SIT-CHK-000538","SIT-CHK-000572","SIT-CHK-000646"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000053","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000022"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000011","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000054","SIT-CHK-000132","SIT-CHK-000258","SIT-CHK-000377","SIT-CHK-000432","SIT-CHK-000477","SIT-CHK-000508","SIT-CHK-000539","SIT-CHK-000573","SIT-CHK-000647"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000054","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000023"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000012","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000055","SIT-CHK-000133","SIT-CHK-000259","SIT-CHK-000378","SIT-CHK-000433","SIT-CHK-000478","SIT-CHK-000509","SIT-CHK-000540","SIT-CHK-000574","SIT-CHK-000648"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000055","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000024"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000013","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000056","SIT-CHK-000134","SIT-CHK-000260","SIT-CHK-000379","SIT-CHK-000434","SIT-CHK-000479","SIT-CHK-000510","SIT-CHK-000541","SIT-CHK-000575","SIT-CHK-000649"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000056","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000025"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000014","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000057","SIT-CHK-000135","SIT-CHK-000261","SIT-CHK-000380","SIT-CHK-000435","SIT-CHK-000480","SIT-CHK-000511","SIT-CHK-000542","SIT-CHK-000576","SIT-CHK-000650"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000057","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000026"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000015","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000058","SIT-CHK-000136","SIT-CHK-000262","SIT-CHK-000381","SIT-CHK-000436","SIT-CHK-000481","SIT-CHK-000512","SIT-CHK-000543","SIT-CHK-000577","SIT-CHK-000651"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"anomaly_context_disclosures","id":"SIT-RES-000058","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000027"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000016","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000059","SIT-CHK-000137","SIT-CHK-000263","SIT-CHK-000382","SIT-CHK-000437","SIT-CHK-000482","SIT-CHK-000513","SIT-CHK-000544","SIT-CHK-000578","SIT-CHK-000652"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000059","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000004"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000002","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000060","SIT-CHK-000138","SIT-CHK-000264","SIT-CHK-000383","SIT-CHK-000438","SIT-CHK-000483","SIT-CHK-000514","SIT-CHK-000545","SIT-CHK-000579","SIT-CHK-000653"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000060","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000021"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000010","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000061","SIT-CHK-000139","SIT-CHK-000265","SIT-CHK-000384","SIT-CHK-000439","SIT-CHK-000484","SIT-CHK-000515","SIT-CHK-000546","SIT-CHK-000580","SIT-CHK-000654"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000061","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000022"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000011","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000062","SIT-CHK-000140","SIT-CHK-000266","SIT-CHK-000385","SIT-CHK-000440","SIT-CHK-000485","SIT-CHK-000516","SIT-CHK-000547","SIT-CHK-000581","SIT-CHK-000655"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000062","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000023"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000012","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000063","SIT-CHK-000141","SIT-CHK-000267","SIT-CHK-000386","SIT-CHK-000441","SIT-CHK-000486","SIT-CHK-000517","SIT-CHK-000548","SIT-CHK-000582","SIT-CHK-000656"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000063","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000024"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000013","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000064","SIT-CHK-000142","SIT-CHK-000268","SIT-CHK-000387","SIT-CHK-000442","SIT-CHK-000487","SIT-CHK-000518","SIT-CHK-000549","SIT-CHK-000583","SIT-CHK-000657"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000064","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000025"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000014","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000065","SIT-CHK-000143","SIT-CHK-000269","SIT-CHK-000388","SIT-CHK-000443","SIT-CHK-000488","SIT-CHK-000519","SIT-CHK-000550","SIT-CHK-000584","SIT-CHK-000658"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000065","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000026"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000015","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000066","SIT-CHK-000144","SIT-CHK-000270","SIT-CHK-000389","SIT-CHK-000444","SIT-CHK-000489","SIT-CHK-000520","SIT-CHK-000551","SIT-CHK-000585","SIT-CHK-000659"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"contestation_disclosures","id":"SIT-RES-000066","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000027"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000016","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000067","SIT-CHK-000145","SIT-CHK-000271","SIT-CHK-000390","SIT-CHK-000445","SIT-CHK-000490","SIT-CHK-000521","SIT-CHK-000552","SIT-CHK-000586","SIT-CHK-000660"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000067","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000004"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000002","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000068","SIT-CHK-000146","SIT-CHK-000272","SIT-CHK-000391","SIT-CHK-000446","SIT-CHK-000491","SIT-CHK-000522","SIT-CHK-000553","SIT-CHK-000587","SIT-CHK-000661"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000068","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000021"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000010","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000069","SIT-CHK-000147","SIT-CHK-000273","SIT-CHK-000392","SIT-CHK-000447","SIT-CHK-000492","SIT-CHK-000523","SIT-CHK-000554","SIT-CHK-000588","SIT-CHK-000662"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000069","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000022"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000011","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000070","SIT-CHK-000148","SIT-CHK-000274","SIT-CHK-000393","SIT-CHK-000448","SIT-CHK-000493","SIT-CHK-000524","SIT-CHK-000555","SIT-CHK-000589","SIT-CHK-000663"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000070","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000023"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000012","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000071","SIT-CHK-000149","SIT-CHK-000275","SIT-CHK-000394","SIT-CHK-000449","SIT-CHK-000494","SIT-CHK-000525","SIT-CHK-000556","SIT-CHK-000590","SIT-CHK-000664"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000071","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000024"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000013","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000072","SIT-CHK-000150","SIT-CHK-000276","SIT-CHK-000395","SIT-CHK-000450","SIT-CHK-000495","SIT-CHK-000526","SIT-CHK-000557","SIT-CHK-000591","SIT-CHK-000665"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000072","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000025"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000014","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000073","SIT-CHK-000151","SIT-CHK-000277","SIT-CHK-000396","SIT-CHK-000451","SIT-CHK-000496","SIT-CHK-000527","SIT-CHK-000558","SIT-CHK-000592","SIT-CHK-000666"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000073","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000026"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000015","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000005"],"check_refs":["SIT-CHK-000074","SIT-CHK-000152","SIT-CHK-000278","SIT-CHK-000397","SIT-CHK-000452","SIT-CHK-000497","SIT-CHK-000528","SIT-CHK-000559","SIT-CHK-000593","SIT-CHK-000667"],"diagnostic_id":"SIT-M014","execution_state":"completed","field_key":"tail_stage_result_links","id":"SIT-RES-000074","interpretation_limit":"Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.","population_refs":["SIT-POP-000027"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000016","value":{"records":[]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":["SIT-BAS-000002"],"check_refs":["SIT-CHK-000075","SIT-CHK-000153","SIT-CHK-000189","SIT-CHK-000220","SIT-CHK-000668"],"diagnostic_id":"SIT-M015","execution_state":"completed","field_key":"coverage_disclosures","id":"SIT-RES-000075","interpretation_limit":"Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.","population_refs":["SIT-POP-000009"],"reason_refs":[],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000006","value":{"records":[{"fields":{"native_record":{"asserted_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"assertion_kind":"assessment","data":{"assessment_kind":"coverage","details":{"coverage_kind":"upstream_history","dimensions":["acquisition"],"member_refs":["P4-E1","P4-O1"],"omitted_refs":[],"relation_types":["derived_from","copies","syndicated_from","summarizes","translates","quotes","originates_from","depends_on"],"scope_note":"Exactly these two records and all their permitted acquisition-parent predicates.","state":"complete_for_scope","universe_enumerated":true},"subject_refs":["P4-I001"]},"id":"P4-COVER","lifecycle_basis_ref_ids":[],"lifecycle_state":"active","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"documented_record","evidence_ref_ids":["P4-SUPPORT"],"method":"Inspect supplied acquisition record; literal ``` is data.","qualifications":["Caller-supplied documentary premise (合成例); no external authentication."]},"scope":{"claim_refs":["P4-CLAIM"],"effective_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}},"inquiry_refs":["P4-I001"]}},"qualification_state":"met","reason_codes":[]},"qualifications":["Completeness is attributed only to the exact supplied kind, subjects, predicates, dimension and finite member area."],"source":{"collection":"assertions","identifier":"P4-COVER","selector":null}}]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000076","SIT-CHK-000154","SIT-CHK-000190","SIT-CHK-000221","SIT-CHK-000669"],"diagnostic_id":"SIT-M015","execution_state":"completed","field_key":"declared_basis_inventory","id":"SIT-RES-000076","interpretation_limit":"Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.","population_refs":["SIT-POP-000010"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000006","value":{"categories":[{"count":4,"label":"declaration","member_refs":[{"collection":"inquiries","identifier":"P4-I001","selector":null},{"collection":"records","identifier":"P4-ACTOR","selector":null},{"collection":"records","identifier":"P4-ART","selector":null},{"collection":"records","identifier":"P4-CLAIM","selector":null}]},{"count":5,"label":"documented_record","member_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"assertions","identifier":"P4-COVER","selector":null},{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}]},{"count":0,"label":"upstream_inference","member_refs":[]},{"count":0,"label":"protected_attestation","member_refs":[]},{"count":0,"label":"unspecified","member_refs":[]}],"population_ref":"SIT-POP-000010","total":9},"value_kind":"partition","witness_refs":[]},{"basis_refs":["SIT-BAS-000001","SIT-BAS-000002","SIT-BAS-000003","SIT-BAS-000005","SIT-BAS-000010","SIT-BAS-000011","SIT-BAS-000012","SIT-BAS-000013","SIT-BAS-000016"],"check_refs":["SIT-CHK-000077","SIT-CHK-000155","SIT-CHK-000191","SIT-CHK-000222","SIT-CHK-000670"],"diagnostic_id":"SIT-M015","execution_state":"completed","field_key":"documentary_basis_gap_disclosures","id":"SIT-RES-000077","interpretation_limit":"Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.","population_refs":["SIT-POP-000010"],"reason_refs":["SIT-RSN-000016","SIT-RSN-000017","SIT-RSN-000018","SIT-RSN-000019","SIT-RSN-000034","SIT-RSN-000035","SIT-RSN-000036","SIT-RSN-000037"],"result_origin":"attributed_record","result_state":"available","scope_ref":"SIT-SCP-000006","value":{"records":[{"fields":{"native_record":{"data":{"actor_kind":"human","identity_disclosure":"pseudonymous"},"id":"P4-ACTOR","kind":"actor","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"declaration","evidence_ref_ids":[],"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."]}},"qualification_state":"unmet","reason_codes":["documentary_basis_incomplete","support_uninspectable"]},"qualifications":["Attributed documentary support only; no authentication or positive-edge eligibility.","Supplied declaration; no external authentication."],"source":{"collection":"records","identifier":"P4-ACTOR","selector":null}},{"fields":{"native_record":{"data":{"artifact_kind":"document","content_evidence_refs":[],"published_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"retrieved_at":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"version_label":"v1"},"id":"P4-ART","kind":"artifact","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"declaration","evidence_ref_ids":[],"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."]}},"qualification_state":"unmet","reason_codes":["documentary_basis_incomplete","support_uninspectable"]},"qualifications":["Attributed documentary support only; no authentication or positive-edge eligibility.","Supplied declaration; no external authentication."],"source":{"collection":"records","identifier":"P4-ART","selector":null}},{"fields":{"native_record":{"data":{"claim_key":"P4-CLAIM-FAMILY","context":"Only the supplied finite example.","version_label":"v1"},"id":"P4-CLAIM","kind":"claim","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"declaration","evidence_ref_ids":[],"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."]}},"qualification_state":"unmet","reason_codes":["documentary_basis_incomplete","support_uninspectable"]},"qualifications":["Attributed documentary support only; no authentication or positive-edge eligibility.","Supplied declaration; no external authentication."],"source":{"collection":"records","identifier":"P4-CLAIM","selector":null}},{"fields":{"native_record":{"as_of":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"boundary":{"criterion":"Only the supplied finite record identities and typed bindings.","description":"One fictional acquisition and its supplied contribution.","system_refs":[]},"coverage_assertion_refs":["P4-COVER"],"dependency_dimensions":["acquisition"],"id":"P4-I001","provenance":{"attributed_to_ref":"P4-ACTOR","basis_kind":"declaration","evidence_ref_ids":[],"method":"Independently authored finite Phase 4 reference case.","qualifications":["Supplied declaration; no external authentication."]},"seed_artifact_refs":["P4-ART"],"seed_evidence_refs":["P4-E1"],"target_claim_refs":["P4-CLAIM"],"target_object_refs":[],"time_window":{"end":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null},"start":{"precision":null,"reason":"No occurrence time is supplied for this fictional reference case.","state":"unknown","value":null}}},"qualification_state":"unmet","reason_codes":["documentary_basis_incomplete","support_uninspectable"]},"qualifications":["Attributed documentary support only; no authentication or positive-edge eligibility.","Supplied declaration; no external authentication."],"source":{"collection":"inquiries","identifier":"P4-I001","selector":null}}]},"value_kind":"record_disclosures","witness_refs":[]},{"basis_refs":[],"check_refs":["SIT-CHK-000078","SIT-CHK-000156","SIT-CHK-000192","SIT-CHK-000223","SIT-CHK-000671"],"diagnostic_id":"SIT-M015","execution_state":"completed","field_key":"reference_availability_inventory","id":"SIT-RES-000078","interpretation_limit":"Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.","population_refs":["SIT-POP-000008"],"reason_refs":[],"result_origin":"inventory","result_state":"available","scope_ref":"SIT-SCP-000006","value":{"categories":[{"count":1,"label":"supplied","member_refs":[{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}]},{"count":0,"label":"locator_only","member_refs":[]},{"count":0,"label":"withheld","member_refs":[]},{"count":0,"label":"unavailable","member_refs":[]}],"population_ref":"SIT-POP-000008","total":1},"value_kind":"partition","witness_refs":[]}],"run":{"completed_diagnostic_ids":["SIT-M001","SIT-M002","SIT-M003","SIT-M004","SIT-M005","SIT-M006","SIT-M007","SIT-M008","SIT-M009","SIT-M010","SIT-M011","SIT-M012","SIT-M013","SIT-M014","SIT-M015"],"diagnostics":[],"finished_at":{"precision":null,"reason":"not_recorded_by_SIT-RP-0.1","state":"unknown","value":null},"input_contract_version":"sit-bundle/0.1","processing_state":"completed","qualifications":["SIT-RP-0.1","Wall-clock start and finish times are not recorded by SIT-RP-0.1."],"requested_diagnostic_ids":["SIT-M001","SIT-M002","SIT-M003","SIT-M004","SIT-M005","SIT-M006","SIT-M007","SIT-M008","SIT-M009","SIT-M010","SIT-M011","SIT-M012","SIT-M013","SIT-M014","SIT-M015"],"started_at":{"precision":null,"reason":"not_recorded_by_SIT-RP-0.1","state":"unknown","value":null},"tool_name":"Source Integrity Toolkit","tool_version":"0.1.0.dev0"},"scopes":[{"claim_refs":[],"coverage_refs":[],"dependency_dimension":null,"graph_view":null,"id":"SIT-SCP-000001","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Explicit supplied seed positions only; no dimension, graph eligibility, historical reconstruction or complete outside-world source inventory is asserted."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000002","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":null,"id":"SIT-SCP-000003","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Explicit supplied seed positions only; no dimension, graph eligibility, historical reconstruction or complete outside-world source inventory is asserted."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":null,"id":"SIT-SCP-000004","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":null,"id":"SIT-SCP-000005","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["The structural job key identifies the exact planned operation; no outside-world absence is inferred."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"assertion_assurance","id":"SIT-SCP-000006","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Explicit named metadata population only; omitted dimensions/views are not generalized."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"correction_outcomes","id":"SIT-SCP-000007","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Exact relevant selected submissions and their case_ref-linked events. Whole-case counts remain separate from an explicitly selected declared-target display subset."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"pipeline_stages","id":"SIT-SCP-000008","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"pipeline_stages","id":"SIT-SCP-000009","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000010","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000011","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000012","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000013","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000014","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000015","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"stance_contestation","id":"SIT-SCP-000016","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":"acquisition","graph_view":null,"id":"SIT-SCP-000017","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["One supplied assessment, or an explicitly absent requested comparison. Selected exact Claims are a scoped query; the unchanged native assessment retains its full original scope. Snapshot structure does not reconstruct unknown lifecycle history."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":"acquisition","graph_view":null,"id":"SIT-SCP-000018","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Selected actual review/process subjects only; the comparison owner retains each complete native comparison set and scope."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null}],"dependency_dimension":"acquisition","graph_view":"claim_origin","id":"SIT-SCP-000019","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Complete finite supplied view only; current snapshot does not reconstruct lifecycle history or hidden roots."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[{"collection":"assertions","identifier":"P4-COVER","selector":null}],"dependency_dimension":"acquisition","graph_view":"claim_origin","id":"SIT-SCP-000020","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Immediate EvidenceItem layer only; distant ancestry and semantic novelty are outside this result."],"requested_time":null,"target_refs":[],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"assertion_assurance","id":"SIT-SCP-000021","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation."],"requested_time":null,"target_refs":[{"collection":"assertions","identifier":"P4-BOUND","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":null,"graph_view":"assertion_assurance","id":"SIT-SCP-000022","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation."],"requested_time":null,"target_refs":[{"collection":"assertions","identifier":"P4-PARENT","selector":null},{"collection":"evidence_references","identifier":"P4-SUPPORT","selector":null}],"temporal_basis":"snapshot_structural"},{"claim_refs":[{"collection":"records","identifier":"P4-CLAIM","selector":null}],"coverage_refs":[],"dependency_dimension":"acquisition","graph_view":"claim_origin","id":"SIT-SCP-000023","inquiry_ref":{"collection":"inquiries","identifier":"P4-I001","selector":null},"qualifications":["Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation."],"requested_time":null,"target_refs":[{"collection":"records","identifier":"P4-E1","selector":null},{"collection":"records","identifier":"P4-O1","selector":null}],"temporal_basis":"snapshot_structural"}]} diff --git a/tests/golden/phase4_reference_report.md b/tests/golden/phase4_reference_report.md new file mode 100644 index 0000000..1d42c62 --- /dev/null +++ b/tests/golden/phase4_reference_report.md @@ -0,0 +1,19262 @@ +# Source Integrity Audit + +Report kind: audit_report +Processing state: completed +Input state: accepted + +## contract_version + +```json +"sit-report/0.1" +``` + +## report_kind + +```json +"audit_report" +``` + +## report_id + +```json +"SIT-RPT-000001" +``` + +## run + +```json +{ + "completed_diagnostic_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "diagnostics": [], + "finished_at": { + "precision": null, + "reason": "not_recorded_by_SIT-RP-0.1", + "state": "unknown", + "value": null + }, + "input_contract_version": "sit-bundle/0.1", + "processing_state": "completed", + "qualifications": [ + "SIT-RP-0.1", + "Wall-clock start and finish times are not recorded by SIT-RP-0.1." + ], + "requested_diagnostic_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "started_at": { + "precision": null, + "reason": "not_recorded_by_SIT-RP-0.1", + "state": "unknown", + "value": null + }, + "tool_name": "Source Integrity Toolkit", + "tool_version": "0.1.0.dev0" +} +``` + +## input_identity + +```json +{ + "bundle_id": "P4-BUNDLE-REFERENCE", + "declared_predecessor": null, + "input_contract_version": "sit-bundle/0.1", + "qualifications": [ + "In-process input has no raw file digest; no canonical object fingerprint is invented." + ], + "raw_file_digest": null, + "snapshot_id": "P4-SNAPSHOT-REFERENCE-01", + "source_mode": "in_process" +} +``` + +## input_validation + +```json +{ + "diagnostics": [], + "state": "accepted" +} +``` + +## scopes + +```json +[ + { + "claim_refs": [], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": null, + "id": "SIT-SCP-000001", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Explicit supplied seed positions only; no dimension, graph eligibility, historical reconstruction or complete outside-world source inventory is asserted." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000002", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": null, + "id": "SIT-SCP-000003", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Explicit supplied seed positions only; no dimension, graph eligibility, historical reconstruction or complete outside-world source inventory is asserted." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": null, + "id": "SIT-SCP-000004", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": null, + "id": "SIT-SCP-000005", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "The structural job key identifies the exact planned operation; no outside-world absence is inferred." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "assertion_assurance", + "id": "SIT-SCP-000006", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Explicit named metadata population only; omitted dimensions/views are not generalized." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "correction_outcomes", + "id": "SIT-SCP-000007", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Exact relevant selected submissions and their case_ref-linked events. Whole-case counts remain separate from an explicitly selected declared-target display subset." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "pipeline_stages", + "id": "SIT-SCP-000008", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "pipeline_stages", + "id": "SIT-SCP-000009", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000010", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000011", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000012", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000013", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000014", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000015", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "id": "SIT-SCP-000016", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": "acquisition", + "graph_view": null, + "id": "SIT-SCP-000017", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "One supplied assessment, or an explicitly absent requested comparison. Selected exact Claims are a scoped query; the unchanged native assessment retains its full original scope. Snapshot structure does not reconstruct unknown lifecycle history." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": "acquisition", + "graph_view": null, + "id": "SIT-SCP-000018", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Selected actual review/process subjects only; the comparison owner retains each complete native comparison set and scope." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "dependency_dimension": "acquisition", + "graph_view": "claim_origin", + "id": "SIT-SCP-000019", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Complete finite supplied view only; current snapshot does not reconstruct lifecycle history or hidden roots." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "dependency_dimension": "acquisition", + "graph_view": "claim_origin", + "id": "SIT-SCP-000020", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Immediate EvidenceItem layer only; distant ancestry and semantic novelty are outside this result." + ], + "requested_time": null, + "target_refs": [], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "assertion_assurance", + "id": "SIT-SCP-000021", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation." + ], + "requested_time": null, + "target_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": null, + "graph_view": "assertion_assurance", + "id": "SIT-SCP-000022", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation." + ], + "requested_time": null, + "target_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "temporal_basis": "snapshot_structural" + }, + { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "coverage_refs": [], + "dependency_dimension": "acquisition", + "graph_view": "claim_origin", + "id": "SIT-SCP-000023", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "qualifications": [ + "Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation." + ], + "requested_time": null, + "target_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "temporal_basis": "snapshot_structural" + } +] +``` + +## populations + +```json +[ + { + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "coverage_refs": [], + "id": "SIT-POP-000001", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ], + "scope_ref": "SIT-SCP-000001", + "selection_rule": "A(I): resolved explicit seed Artifacts union resolved Artifact bindings of every Inquiry seed EvidenceItem.", + "unit": "artifact_record" + }, + { + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "coverage_refs": [], + "id": "SIT-POP-000002", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ], + "scope_ref": "SIT-SCP-000001", + "selection_rule": "Resolved explicit Artifact seeds lacking any seed EvidenceItem binding in this entire Inquiry.", + "unit": "artifact_record" + }, + { + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "coverage_refs": [], + "id": "SIT-POP-000003", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ], + "scope_ref": "SIT-SCP-000001", + "selection_rule": "U_A(I): unique unresolved Artifact reference IDs at the same explicit Inquiry seed source positions.", + "unit": "unresolved_reference" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000004", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000002", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "coverage_refs": [], + "id": "SIT-POP-000005", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ], + "scope_ref": "SIT-SCP-000003", + "selection_rule": "A(I,C): unique resolved Artifact IDs bound by E(I,C); unresolved endpoints are excluded.", + "unit": "artifact_record" + }, + { + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "coverage_refs": [], + "id": "SIT-POP-000006", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ], + "scope_ref": "SIT-SCP-000003", + "selection_rule": "E(I,C): explicitly listed resolved seed EvidenceItem IDs whose exact Claim binding is C.", + "unit": "evidence_item" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000007", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Unestablished native membership is retained as a declaration; it supplies no numerical denominator." + ], + "scope_ref": "SIT-SCP-000004", + "selection_rule": "Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.", + "unit": "record" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000008", + "member_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000006", + "selection_rule": "Explicit named EvidenceReference IDs, deduplicated within this snapshot.", + "unit": "evidence_reference" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000009", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000006", + "selection_rule": "Explicit named coverage Assertion IDs, deduplicated within this snapshot.", + "unit": "record" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000010", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000006", + "selection_rule": "Explicit named record IDs, deduplicated within this snapshot.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000011", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case documentary_linked_change_target_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "case_target" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000012", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case cases_with_documentary_linked_change_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "correction_case" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000013", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case correction_case_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "correction_case" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000014", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case linked_change_event_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "correction_change_record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000015", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case handling_event_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "handling_event" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000016", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case correction_case_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000017", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case correction_target_change_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000018", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ], + "scope_ref": "SIT-SCP-000007", + "selection_rule": "Exact whole-case reported_capacity_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000019", + "member_refs": [], + "membership_state": "unestablished", + "qualifications": [ + "Unestablished native membership is retained as a declaration; it supplies no numerical denominator." + ], + "scope_ref": "SIT-SCP-000008", + "selection_rule": "Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.", + "unit": "pipeline_member" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000020", + "member_refs": [], + "membership_state": "unestablished", + "qualifications": [ + "Unestablished native membership is retained as a declaration; it supplies no numerical denominator." + ], + "scope_ref": "SIT-SCP-000009", + "selection_rule": "Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.", + "unit": "pipeline_member" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000021", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000010", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000022", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000011", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000023", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000012", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000024", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000013", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000025", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000014", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000026", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000015", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000027", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ], + "scope_ref": "SIT-SCP-000016", + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "unit": "record" + }, + { + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "coverage_refs": [], + "id": "SIT-POP-000028", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders." + ], + "scope_ref": "SIT-SCP-000017", + "selection_rule": "Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.", + "unit": "comparison_member" + }, + { + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "coverage_refs": [], + "id": "SIT-POP-000029", + "member_refs": [], + "membership_state": "unestablished", + "qualifications": [ + "An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders." + ], + "scope_ref": "SIT-SCP-000017", + "selection_rule": "Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.", + "unit": "comparison_member" + }, + { + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "coverage_refs": [], + "id": "SIT-POP-000030", + "member_refs": [], + "membership_state": "unestablished", + "qualifications": [ + "An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders." + ], + "scope_ref": "SIT-SCP-000017", + "selection_rule": "Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.", + "unit": "origin_event" + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "coverage_refs": [], + "id": "SIT-POP-000031", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "This finite supplied selection confers no outside-world completeness." + ], + "scope_ref": "SIT-SCP-000018", + "selection_rule": "Exactly the requested actual subjects, or the explicit Evaluation targets of this Inquiry; no all-record cohort or hidden human-judgment population.", + "unit": "record" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000032", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "The complete explicit Claim-bound E(I,C), without dropping unresolved or multiple-origin rows.", + "unit": "evidence_item" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000033", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: seed_items_with_unresolved_ancestry_count", + "unit": "evidence_item" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000034", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: documentary_origin_boundary_record_count", + "unit": "origin_event" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000035", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: reached_origin_record_count", + "unit": "origin_event" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000036", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Exact source records with completed owner-local disclosures: ancestry_gap_disclosures", + "unit": "record" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000037", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Exact source records with completed owner-local disclosures: origin_boundary_disclosures", + "unit": "record" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000038", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: unqualified_terminal_record_count", + "unit": "record" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000039", + "member_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000019", + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: unresolved_frontier_reference_count", + "unit": "unresolved_reference" + }, + { + "basis_refs": [], + "coverage_refs": [], + "id": "SIT-POP-000040", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ], + "scope_ref": "SIT-SCP-000020", + "selection_rule": "The complete explicit Claim-bound E(I,C), without dropping unresolved or multiple-origin rows.", + "unit": "evidence_item" + } +] +``` + +## basis_index + +````json +[ + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [ + "SIT-CHK-000224", + "SIT-CHK-000225", + "SIT-CHK-000226", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000235", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000298", + "SIT-CHK-000299", + "SIT-CHK-000300", + "SIT-CHK-000305", + "SIT-CHK-000306", + "SIT-CHK-000307", + "SIT-CHK-000308", + "SIT-CHK-000309", + "SIT-CHK-000310", + "SIT-CHK-000311", + "SIT-CHK-000312", + "SIT-CHK-000313", + "SIT-CHK-000343", + "SIT-CHK-000344", + "SIT-CHK-000345", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000354", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000398", + "SIT-CHK-000399", + "SIT-CHK-000400", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000409", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416" + ], + "id": "SIT-BAS-000001", + "lifecycle": { + "basis_refs": [], + "state": "active" + }, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "effective_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + }, + "inquiry_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + }, + "source": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": { + "asserted_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [ + "SIT-CHK-000224", + "SIT-CHK-000225", + "SIT-CHK-000226", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000235", + "SIT-CHK-000236", + "SIT-CHK-000237", + "SIT-CHK-000238", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000279", + "SIT-CHK-000280", + "SIT-CHK-000281", + "SIT-CHK-000286", + "SIT-CHK-000287", + "SIT-CHK-000288", + "SIT-CHK-000289", + "SIT-CHK-000290", + "SIT-CHK-000291", + "SIT-CHK-000292", + "SIT-CHK-000293", + "SIT-CHK-000294", + "SIT-CHK-000295", + "SIT-CHK-000296", + "SIT-CHK-000297", + "SIT-CHK-000343", + "SIT-CHK-000344", + "SIT-CHK-000345", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000354", + "SIT-CHK-000355", + "SIT-CHK-000356", + "SIT-CHK-000357", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000398", + "SIT-CHK-000399", + "SIT-CHK-000400", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000409", + "SIT-CHK-000410", + "SIT-CHK-000411", + "SIT-CHK-000412", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416" + ], + "id": "SIT-BAS-000002", + "lifecycle": { + "basis_refs": [], + "state": "active" + }, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "effective_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + }, + "inquiry_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + }, + "source": { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": { + "asserted_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [ + "SIT-CHK-000226", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000235", + "SIT-CHK-000236", + "SIT-CHK-000237", + "SIT-CHK-000238", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000345", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000354", + "SIT-CHK-000355", + "SIT-CHK-000356", + "SIT-CHK-000357", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000400", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000409", + "SIT-CHK-000410", + "SIT-CHK-000411", + "SIT-CHK-000412", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416" + ], + "id": "SIT-BAS-000003", + "lifecycle": { + "basis_refs": [], + "state": "active" + }, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": { + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "effective_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + }, + "inquiry_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + }, + "source": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": { + "asserted_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": "supplied", + "basis_kind": null, + "check_refs": [], + "id": "SIT-BAS-000004", + "lifecycle": null, + "method": null, + "qualifications": [ + "Supplied fictional material; external authenticity is not examined." + ], + "scope": null, + "source": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + "support_refs": [], + "time": {} + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [], + "id": "SIT-BAS-000005", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "support_refs": [], + "time": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [ + "SIT-CHK-000227", + "SIT-CHK-000228", + "SIT-CHK-000229", + "SIT-CHK-000230", + "SIT-CHK-000317", + "SIT-CHK-000318", + "SIT-CHK-000319", + "SIT-CHK-000320", + "SIT-CHK-000346", + "SIT-CHK-000347", + "SIT-CHK-000348", + "SIT-CHK-000349", + "SIT-CHK-000401", + "SIT-CHK-000402", + "SIT-CHK-000403", + "SIT-CHK-000404" + ], + "id": "SIT-BAS-000006", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + "support_refs": [], + "time": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [], + "id": "SIT-BAS-000007", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + "support_refs": [], + "time": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [], + "id": "SIT-BAS-000008", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + "support_refs": [], + "time": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [ + "SIT-CHK-000227", + "SIT-CHK-000228", + "SIT-CHK-000229", + "SIT-CHK-000230", + "SIT-CHK-000317", + "SIT-CHK-000318", + "SIT-CHK-000319", + "SIT-CHK-000320", + "SIT-CHK-000346", + "SIT-CHK-000347", + "SIT-CHK-000348", + "SIT-CHK-000349", + "SIT-CHK-000401", + "SIT-CHK-000402", + "SIT-CHK-000403", + "SIT-CHK-000404" + ], + "id": "SIT-BAS-000009", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + "support_refs": [], + "time": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [], + "id": "SIT-BAS-000010", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "support_refs": [], + "time": {} + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [], + "id": "SIT-BAS-000011", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + "support_refs": [], + "time": { + "published_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "retrieved_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "declaration", + "check_refs": [], + "id": "SIT-BAS-000012", + "lifecycle": null, + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + }, + "support_refs": [], + "time": {} + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [], + "id": "SIT-BAS-000013", + "lifecycle": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": {} + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [], + "id": "SIT-BAS-000014", + "lifecycle": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": {} + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [], + "id": "SIT-BAS-000015", + "lifecycle": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": {} + }, + { + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "availability": null, + "basis_kind": "documented_record", + "check_refs": [], + "id": "SIT-BAS-000016", + "lifecycle": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "scope": null, + "source": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "time": { + "occurred_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } +] +```` + +## capabilities + +```json +[ + { + "available_result_refs": [ + "SIT-RES-000001", + "SIT-RES-000002", + "SIT-RES-000003", + "SIT-RES-000004", + "SIT-RES-000005" + ], + "check_refs": [ + "SIT-CHK-000001", + "SIT-CHK-000002", + "SIT-CHK-000003", + "SIT-CHK-000004", + "SIT-CHK-000005", + "SIT-CHK-000079", + "SIT-CHK-000080", + "SIT-CHK-000081", + "SIT-CHK-000082", + "SIT-CHK-000083", + "SIT-CHK-000157", + "SIT-CHK-000158", + "SIT-CHK-000159", + "SIT-CHK-000160", + "SIT-CHK-000161", + "SIT-CHK-000594", + "SIT-CHK-000595", + "SIT-CHK-000596", + "SIT-CHK-000597", + "SIT-CHK-000598" + ], + "diagnostic_id": "SIT-M001", + "id": "SIT-CAP-000001", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000001", + "SIT-RES-000002", + "SIT-RES-000003", + "SIT-RES-000004", + "SIT-RES-000005" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000001", + "SIT-SCP-000003" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008" + ], + "check_refs": [ + "SIT-CHK-000006", + "SIT-CHK-000007", + "SIT-CHK-000008", + "SIT-CHK-000084", + "SIT-CHK-000085", + "SIT-CHK-000086", + "SIT-CHK-000162", + "SIT-CHK-000163", + "SIT-CHK-000164", + "SIT-CHK-000193", + "SIT-CHK-000194", + "SIT-CHK-000195", + "SIT-CHK-000224", + "SIT-CHK-000225", + "SIT-CHK-000226", + "SIT-CHK-000279", + "SIT-CHK-000280", + "SIT-CHK-000281", + "SIT-CHK-000298", + "SIT-CHK-000299", + "SIT-CHK-000300", + "SIT-CHK-000314", + "SIT-CHK-000315", + "SIT-CHK-000316", + "SIT-CHK-000343", + "SIT-CHK-000344", + "SIT-CHK-000345", + "SIT-CHK-000398", + "SIT-CHK-000399", + "SIT-CHK-000400", + "SIT-CHK-000599", + "SIT-CHK-000600", + "SIT-CHK-000601" + ], + "diagnostic_id": "SIT-M002", + "id": "SIT-CAP-000002", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000019" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000009" + ], + "check_refs": [ + "SIT-CHK-000009", + "SIT-CHK-000010", + "SIT-CHK-000011", + "SIT-CHK-000012", + "SIT-CHK-000087", + "SIT-CHK-000088", + "SIT-CHK-000089", + "SIT-CHK-000090", + "SIT-CHK-000165", + "SIT-CHK-000166", + "SIT-CHK-000167", + "SIT-CHK-000168", + "SIT-CHK-000196", + "SIT-CHK-000197", + "SIT-CHK-000198", + "SIT-CHK-000199", + "SIT-CHK-000227", + "SIT-CHK-000228", + "SIT-CHK-000229", + "SIT-CHK-000230", + "SIT-CHK-000282", + "SIT-CHK-000283", + "SIT-CHK-000284", + "SIT-CHK-000285", + "SIT-CHK-000301", + "SIT-CHK-000302", + "SIT-CHK-000303", + "SIT-CHK-000304", + "SIT-CHK-000317", + "SIT-CHK-000318", + "SIT-CHK-000319", + "SIT-CHK-000320", + "SIT-CHK-000346", + "SIT-CHK-000347", + "SIT-CHK-000348", + "SIT-CHK-000349", + "SIT-CHK-000401", + "SIT-CHK-000402", + "SIT-CHK-000403", + "SIT-CHK-000404", + "SIT-CHK-000453", + "SIT-CHK-000454", + "SIT-CHK-000455", + "SIT-CHK-000456", + "SIT-CHK-000602", + "SIT-CHK-000603", + "SIT-CHK-000604", + "SIT-CHK-000605" + ], + "diagnostic_id": "SIT-M003", + "id": "SIT-CAP-000003", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000022", + "SIT-RSN-000023", + "SIT-RSN-000024", + "SIT-RSN-000025" + ], + "result_refs": [ + "SIT-RES-000009", + "SIT-RES-000010", + "SIT-RES-000011", + "SIT-RES-000012" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000017" + ], + "unavailable_result_refs": [ + "SIT-RES-000010", + "SIT-RES-000011", + "SIT-RES-000012" + ] + }, + { + "available_result_refs": [ + "SIT-RES-000013", + "SIT-RES-000014", + "SIT-RES-000015", + "SIT-RES-000016" + ], + "check_refs": [ + "SIT-CHK-000013", + "SIT-CHK-000014", + "SIT-CHK-000015", + "SIT-CHK-000016", + "SIT-CHK-000091", + "SIT-CHK-000092", + "SIT-CHK-000093", + "SIT-CHK-000094", + "SIT-CHK-000169", + "SIT-CHK-000170", + "SIT-CHK-000171", + "SIT-CHK-000172", + "SIT-CHK-000200", + "SIT-CHK-000201", + "SIT-CHK-000202", + "SIT-CHK-000203", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000286", + "SIT-CHK-000287", + "SIT-CHK-000288", + "SIT-CHK-000289", + "SIT-CHK-000305", + "SIT-CHK-000306", + "SIT-CHK-000307", + "SIT-CHK-000308", + "SIT-CHK-000321", + "SIT-CHK-000322", + "SIT-CHK-000323", + "SIT-CHK-000324", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000606", + "SIT-CHK-000607", + "SIT-CHK-000608", + "SIT-CHK-000609" + ], + "diagnostic_id": "SIT-M004", + "id": "SIT-CAP-000004", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000013", + "SIT-RES-000014", + "SIT-RES-000015", + "SIT-RES-000016" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000019" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000017" + ], + "check_refs": [ + "SIT-CHK-000017", + "SIT-CHK-000095", + "SIT-CHK-000173", + "SIT-CHK-000204", + "SIT-CHK-000235", + "SIT-CHK-000290", + "SIT-CHK-000309", + "SIT-CHK-000325", + "SIT-CHK-000354", + "SIT-CHK-000409", + "SIT-CHK-000459", + "SIT-CHK-000610" + ], + "diagnostic_id": "SIT-M005", + "id": "SIT-CAP-000005", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000017" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000019" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000018", + "SIT-RES-000020" + ], + "check_refs": [ + "SIT-CHK-000018", + "SIT-CHK-000019", + "SIT-CHK-000020", + "SIT-CHK-000096", + "SIT-CHK-000097", + "SIT-CHK-000098", + "SIT-CHK-000174", + "SIT-CHK-000175", + "SIT-CHK-000176", + "SIT-CHK-000205", + "SIT-CHK-000206", + "SIT-CHK-000207", + "SIT-CHK-000236", + "SIT-CHK-000237", + "SIT-CHK-000238", + "SIT-CHK-000291", + "SIT-CHK-000292", + "SIT-CHK-000293", + "SIT-CHK-000326", + "SIT-CHK-000327", + "SIT-CHK-000328", + "SIT-CHK-000355", + "SIT-CHK-000356", + "SIT-CHK-000357", + "SIT-CHK-000410", + "SIT-CHK-000411", + "SIT-CHK-000412", + "SIT-CHK-000460", + "SIT-CHK-000461", + "SIT-CHK-000462", + "SIT-CHK-000611", + "SIT-CHK-000612", + "SIT-CHK-000613" + ], + "diagnostic_id": "SIT-M006", + "id": "SIT-CAP-000006", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [ + "SIT-RES-000019" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000015" + ], + "result_refs": [ + "SIT-RES-000018", + "SIT-RES-000019", + "SIT-RES-000020" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000020" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000021", + "SIT-RES-000022", + "SIT-RES-000023", + "SIT-RES-000024" + ], + "check_refs": [ + "SIT-CHK-000021", + "SIT-CHK-000022", + "SIT-CHK-000023", + "SIT-CHK-000024", + "SIT-CHK-000099", + "SIT-CHK-000100", + "SIT-CHK-000101", + "SIT-CHK-000102", + "SIT-CHK-000177", + "SIT-CHK-000178", + "SIT-CHK-000179", + "SIT-CHK-000180", + "SIT-CHK-000208", + "SIT-CHK-000209", + "SIT-CHK-000210", + "SIT-CHK-000211", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000294", + "SIT-CHK-000295", + "SIT-CHK-000296", + "SIT-CHK-000297", + "SIT-CHK-000310", + "SIT-CHK-000311", + "SIT-CHK-000312", + "SIT-CHK-000313", + "SIT-CHK-000329", + "SIT-CHK-000330", + "SIT-CHK-000331", + "SIT-CHK-000332", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416", + "SIT-CHK-000614", + "SIT-CHK-000615", + "SIT-CHK-000616", + "SIT-CHK-000617" + ], + "diagnostic_id": "SIT-M007", + "id": "SIT-CAP-000007", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000021", + "SIT-RES-000022", + "SIT-RES-000023", + "SIT-RES-000024" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000019" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [], + "check_refs": [ + "SIT-CHK-000025", + "SIT-CHK-000026", + "SIT-CHK-000027", + "SIT-CHK-000028", + "SIT-CHK-000103", + "SIT-CHK-000104", + "SIT-CHK-000105", + "SIT-CHK-000106", + "SIT-CHK-000618", + "SIT-CHK-000619", + "SIT-CHK-000620", + "SIT-CHK-000621" + ], + "diagnostic_id": "SIT-M008", + "id": "SIT-CAP-000008", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [ + "SIT-RES-000025", + "SIT-RES-000026", + "SIT-RES-000027", + "SIT-RES-000028" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000027", + "SIT-RSN-000028", + "SIT-RSN-000029", + "SIT-RSN-000030" + ], + "result_refs": [ + "SIT-RES-000025", + "SIT-RES-000026", + "SIT-RES-000027", + "SIT-RES-000028" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000005" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000030" + ], + "check_refs": [ + "SIT-CHK-000029", + "SIT-CHK-000030", + "SIT-CHK-000107", + "SIT-CHK-000108", + "SIT-CHK-000243", + "SIT-CHK-000244", + "SIT-CHK-000362", + "SIT-CHK-000363", + "SIT-CHK-000417", + "SIT-CHK-000418", + "SIT-CHK-000465", + "SIT-CHK-000466", + "SIT-CHK-000622", + "SIT-CHK-000623" + ], + "diagnostic_id": "SIT-M009", + "id": "SIT-CAP-000009", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000020", + "SIT-RSN-000021" + ], + "result_refs": [ + "SIT-RES-000029", + "SIT-RES-000030" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000004" + ], + "unavailable_result_refs": [ + "SIT-RES-000029" + ] + }, + { + "available_result_refs": [ + "SIT-RES-000032", + "SIT-RES-000034" + ], + "check_refs": [ + "SIT-CHK-000031", + "SIT-CHK-000032", + "SIT-CHK-000033", + "SIT-CHK-000034", + "SIT-CHK-000035", + "SIT-CHK-000036", + "SIT-CHK-000037", + "SIT-CHK-000109", + "SIT-CHK-000110", + "SIT-CHK-000111", + "SIT-CHK-000112", + "SIT-CHK-000113", + "SIT-CHK-000114", + "SIT-CHK-000115", + "SIT-CHK-000467", + "SIT-CHK-000468", + "SIT-CHK-000469", + "SIT-CHK-000470", + "SIT-CHK-000471", + "SIT-CHK-000472", + "SIT-CHK-000473", + "SIT-CHK-000498", + "SIT-CHK-000499", + "SIT-CHK-000500", + "SIT-CHK-000501", + "SIT-CHK-000502", + "SIT-CHK-000503", + "SIT-CHK-000504", + "SIT-CHK-000529", + "SIT-CHK-000530", + "SIT-CHK-000531", + "SIT-CHK-000532", + "SIT-CHK-000533", + "SIT-CHK-000534", + "SIT-CHK-000535", + "SIT-CHK-000624", + "SIT-CHK-000625", + "SIT-CHK-000626", + "SIT-CHK-000627", + "SIT-CHK-000628", + "SIT-CHK-000629", + "SIT-CHK-000630" + ], + "diagnostic_id": "SIT-M010", + "id": "SIT-CAP-000010", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000001", + "SIT-RSN-000002", + "SIT-RSN-000003", + "SIT-RSN-000004", + "SIT-RSN-000005", + "SIT-RSN-000006", + "SIT-RSN-000007", + "SIT-RSN-000008", + "SIT-RSN-000009", + "SIT-RSN-000010", + "SIT-RSN-000011", + "SIT-RSN-000012", + "SIT-RSN-000013", + "SIT-RSN-000014", + "SIT-RSN-000038" + ], + "result_refs": [ + "SIT-RES-000031", + "SIT-RES-000032", + "SIT-RES-000033", + "SIT-RES-000034", + "SIT-RES-000035", + "SIT-RES-000036", + "SIT-RES-000037" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000008", + "SIT-SCP-000009" + ], + "unavailable_result_refs": [ + "SIT-RES-000031", + "SIT-RES-000033", + "SIT-RES-000035", + "SIT-RES-000036", + "SIT-RES-000037" + ] + }, + { + "available_result_refs": [], + "check_refs": [ + "SIT-CHK-000038", + "SIT-CHK-000039", + "SIT-CHK-000040", + "SIT-CHK-000116", + "SIT-CHK-000117", + "SIT-CHK-000118", + "SIT-CHK-000631", + "SIT-CHK-000632", + "SIT-CHK-000633" + ], + "diagnostic_id": "SIT-M011", + "id": "SIT-CAP-000011", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [ + "SIT-RES-000038", + "SIT-RES-000039", + "SIT-RES-000040" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000031", + "SIT-RSN-000032", + "SIT-RSN-000033" + ], + "result_refs": [ + "SIT-RES-000038", + "SIT-RES-000039", + "SIT-RES-000040" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000005" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000041", + "SIT-RES-000042", + "SIT-RES-000043", + "SIT-RES-000044", + "SIT-RES-000045", + "SIT-RES-000046", + "SIT-RES-000047", + "SIT-RES-000048" + ], + "check_refs": [ + "SIT-CHK-000041", + "SIT-CHK-000042", + "SIT-CHK-000043", + "SIT-CHK-000044", + "SIT-CHK-000045", + "SIT-CHK-000046", + "SIT-CHK-000047", + "SIT-CHK-000048", + "SIT-CHK-000119", + "SIT-CHK-000120", + "SIT-CHK-000121", + "SIT-CHK-000122", + "SIT-CHK-000123", + "SIT-CHK-000124", + "SIT-CHK-000125", + "SIT-CHK-000126", + "SIT-CHK-000181", + "SIT-CHK-000182", + "SIT-CHK-000183", + "SIT-CHK-000184", + "SIT-CHK-000185", + "SIT-CHK-000186", + "SIT-CHK-000187", + "SIT-CHK-000188", + "SIT-CHK-000212", + "SIT-CHK-000213", + "SIT-CHK-000214", + "SIT-CHK-000215", + "SIT-CHK-000216", + "SIT-CHK-000217", + "SIT-CHK-000218", + "SIT-CHK-000219", + "SIT-CHK-000245", + "SIT-CHK-000246", + "SIT-CHK-000247", + "SIT-CHK-000248", + "SIT-CHK-000249", + "SIT-CHK-000250", + "SIT-CHK-000251", + "SIT-CHK-000252", + "SIT-CHK-000333", + "SIT-CHK-000334", + "SIT-CHK-000335", + "SIT-CHK-000336", + "SIT-CHK-000337", + "SIT-CHK-000338", + "SIT-CHK-000339", + "SIT-CHK-000340", + "SIT-CHK-000364", + "SIT-CHK-000365", + "SIT-CHK-000366", + "SIT-CHK-000367", + "SIT-CHK-000368", + "SIT-CHK-000369", + "SIT-CHK-000370", + "SIT-CHK-000371", + "SIT-CHK-000419", + "SIT-CHK-000420", + "SIT-CHK-000421", + "SIT-CHK-000422", + "SIT-CHK-000423", + "SIT-CHK-000424", + "SIT-CHK-000425", + "SIT-CHK-000426", + "SIT-CHK-000560", + "SIT-CHK-000561", + "SIT-CHK-000562", + "SIT-CHK-000563", + "SIT-CHK-000564", + "SIT-CHK-000565", + "SIT-CHK-000566", + "SIT-CHK-000567", + "SIT-CHK-000634", + "SIT-CHK-000635", + "SIT-CHK-000636", + "SIT-CHK-000637", + "SIT-CHK-000638", + "SIT-CHK-000639", + "SIT-CHK-000640", + "SIT-CHK-000641" + ], + "diagnostic_id": "SIT-M012", + "id": "SIT-CAP-000012", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000041", + "SIT-RES-000042", + "SIT-RES-000043", + "SIT-RES-000044", + "SIT-RES-000045", + "SIT-RES-000046", + "SIT-RES-000047", + "SIT-RES-000048" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000007" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000049", + "SIT-RES-000050" + ], + "check_refs": [ + "SIT-CHK-000049", + "SIT-CHK-000050", + "SIT-CHK-000127", + "SIT-CHK-000128", + "SIT-CHK-000253", + "SIT-CHK-000254", + "SIT-CHK-000341", + "SIT-CHK-000342", + "SIT-CHK-000372", + "SIT-CHK-000373", + "SIT-CHK-000427", + "SIT-CHK-000428", + "SIT-CHK-000457", + "SIT-CHK-000458", + "SIT-CHK-000463", + "SIT-CHK-000464", + "SIT-CHK-000568", + "SIT-CHK-000569", + "SIT-CHK-000642", + "SIT-CHK-000643" + ], + "diagnostic_id": "SIT-M013", + "id": "SIT-CAP-000013", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000026" + ], + "result_refs": [ + "SIT-RES-000049", + "SIT-RES-000050" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000018" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000051", + "SIT-RES-000052", + "SIT-RES-000053", + "SIT-RES-000054", + "SIT-RES-000055", + "SIT-RES-000056", + "SIT-RES-000057", + "SIT-RES-000058", + "SIT-RES-000059", + "SIT-RES-000060", + "SIT-RES-000061", + "SIT-RES-000062", + "SIT-RES-000063", + "SIT-RES-000064", + "SIT-RES-000065", + "SIT-RES-000066", + "SIT-RES-000067", + "SIT-RES-000068", + "SIT-RES-000069", + "SIT-RES-000070", + "SIT-RES-000071", + "SIT-RES-000072", + "SIT-RES-000073", + "SIT-RES-000074" + ], + "check_refs": [ + "SIT-CHK-000051", + "SIT-CHK-000052", + "SIT-CHK-000053", + "SIT-CHK-000054", + "SIT-CHK-000055", + "SIT-CHK-000056", + "SIT-CHK-000057", + "SIT-CHK-000058", + "SIT-CHK-000059", + "SIT-CHK-000060", + "SIT-CHK-000061", + "SIT-CHK-000062", + "SIT-CHK-000063", + "SIT-CHK-000064", + "SIT-CHK-000065", + "SIT-CHK-000066", + "SIT-CHK-000067", + "SIT-CHK-000068", + "SIT-CHK-000069", + "SIT-CHK-000070", + "SIT-CHK-000071", + "SIT-CHK-000072", + "SIT-CHK-000073", + "SIT-CHK-000074", + "SIT-CHK-000129", + "SIT-CHK-000130", + "SIT-CHK-000131", + "SIT-CHK-000132", + "SIT-CHK-000133", + "SIT-CHK-000134", + "SIT-CHK-000135", + "SIT-CHK-000136", + "SIT-CHK-000137", + "SIT-CHK-000138", + "SIT-CHK-000139", + "SIT-CHK-000140", + "SIT-CHK-000141", + "SIT-CHK-000142", + "SIT-CHK-000143", + "SIT-CHK-000144", + "SIT-CHK-000145", + "SIT-CHK-000146", + "SIT-CHK-000147", + "SIT-CHK-000148", + "SIT-CHK-000149", + "SIT-CHK-000150", + "SIT-CHK-000151", + "SIT-CHK-000152", + "SIT-CHK-000255", + "SIT-CHK-000256", + "SIT-CHK-000257", + "SIT-CHK-000258", + "SIT-CHK-000259", + "SIT-CHK-000260", + "SIT-CHK-000261", + "SIT-CHK-000262", + "SIT-CHK-000263", + "SIT-CHK-000264", + "SIT-CHK-000265", + "SIT-CHK-000266", + "SIT-CHK-000267", + "SIT-CHK-000268", + "SIT-CHK-000269", + "SIT-CHK-000270", + "SIT-CHK-000271", + "SIT-CHK-000272", + "SIT-CHK-000273", + "SIT-CHK-000274", + "SIT-CHK-000275", + "SIT-CHK-000276", + "SIT-CHK-000277", + "SIT-CHK-000278", + "SIT-CHK-000374", + "SIT-CHK-000375", + "SIT-CHK-000376", + "SIT-CHK-000377", + "SIT-CHK-000378", + "SIT-CHK-000379", + "SIT-CHK-000380", + "SIT-CHK-000381", + "SIT-CHK-000382", + "SIT-CHK-000383", + "SIT-CHK-000384", + "SIT-CHK-000385", + "SIT-CHK-000386", + "SIT-CHK-000387", + "SIT-CHK-000388", + "SIT-CHK-000389", + "SIT-CHK-000390", + "SIT-CHK-000391", + "SIT-CHK-000392", + "SIT-CHK-000393", + "SIT-CHK-000394", + "SIT-CHK-000395", + "SIT-CHK-000396", + "SIT-CHK-000397", + "SIT-CHK-000429", + "SIT-CHK-000430", + "SIT-CHK-000431", + "SIT-CHK-000432", + "SIT-CHK-000433", + "SIT-CHK-000434", + "SIT-CHK-000435", + "SIT-CHK-000436", + "SIT-CHK-000437", + "SIT-CHK-000438", + "SIT-CHK-000439", + "SIT-CHK-000440", + "SIT-CHK-000441", + "SIT-CHK-000442", + "SIT-CHK-000443", + "SIT-CHK-000444", + "SIT-CHK-000445", + "SIT-CHK-000446", + "SIT-CHK-000447", + "SIT-CHK-000448", + "SIT-CHK-000449", + "SIT-CHK-000450", + "SIT-CHK-000451", + "SIT-CHK-000452", + "SIT-CHK-000474", + "SIT-CHK-000475", + "SIT-CHK-000476", + "SIT-CHK-000477", + "SIT-CHK-000478", + "SIT-CHK-000479", + "SIT-CHK-000480", + "SIT-CHK-000481", + "SIT-CHK-000482", + "SIT-CHK-000483", + "SIT-CHK-000484", + "SIT-CHK-000485", + "SIT-CHK-000486", + "SIT-CHK-000487", + "SIT-CHK-000488", + "SIT-CHK-000489", + "SIT-CHK-000490", + "SIT-CHK-000491", + "SIT-CHK-000492", + "SIT-CHK-000493", + "SIT-CHK-000494", + "SIT-CHK-000495", + "SIT-CHK-000496", + "SIT-CHK-000497", + "SIT-CHK-000505", + "SIT-CHK-000506", + "SIT-CHK-000507", + "SIT-CHK-000508", + "SIT-CHK-000509", + "SIT-CHK-000510", + "SIT-CHK-000511", + "SIT-CHK-000512", + "SIT-CHK-000513", + "SIT-CHK-000514", + "SIT-CHK-000515", + "SIT-CHK-000516", + "SIT-CHK-000517", + "SIT-CHK-000518", + "SIT-CHK-000519", + "SIT-CHK-000520", + "SIT-CHK-000521", + "SIT-CHK-000522", + "SIT-CHK-000523", + "SIT-CHK-000524", + "SIT-CHK-000525", + "SIT-CHK-000526", + "SIT-CHK-000527", + "SIT-CHK-000528", + "SIT-CHK-000536", + "SIT-CHK-000537", + "SIT-CHK-000538", + "SIT-CHK-000539", + "SIT-CHK-000540", + "SIT-CHK-000541", + "SIT-CHK-000542", + "SIT-CHK-000543", + "SIT-CHK-000544", + "SIT-CHK-000545", + "SIT-CHK-000546", + "SIT-CHK-000547", + "SIT-CHK-000548", + "SIT-CHK-000549", + "SIT-CHK-000550", + "SIT-CHK-000551", + "SIT-CHK-000552", + "SIT-CHK-000553", + "SIT-CHK-000554", + "SIT-CHK-000555", + "SIT-CHK-000556", + "SIT-CHK-000557", + "SIT-CHK-000558", + "SIT-CHK-000559", + "SIT-CHK-000570", + "SIT-CHK-000571", + "SIT-CHK-000572", + "SIT-CHK-000573", + "SIT-CHK-000574", + "SIT-CHK-000575", + "SIT-CHK-000576", + "SIT-CHK-000577", + "SIT-CHK-000578", + "SIT-CHK-000579", + "SIT-CHK-000580", + "SIT-CHK-000581", + "SIT-CHK-000582", + "SIT-CHK-000583", + "SIT-CHK-000584", + "SIT-CHK-000585", + "SIT-CHK-000586", + "SIT-CHK-000587", + "SIT-CHK-000588", + "SIT-CHK-000589", + "SIT-CHK-000590", + "SIT-CHK-000591", + "SIT-CHK-000592", + "SIT-CHK-000593", + "SIT-CHK-000644", + "SIT-CHK-000645", + "SIT-CHK-000646", + "SIT-CHK-000647", + "SIT-CHK-000648", + "SIT-CHK-000649", + "SIT-CHK-000650", + "SIT-CHK-000651", + "SIT-CHK-000652", + "SIT-CHK-000653", + "SIT-CHK-000654", + "SIT-CHK-000655", + "SIT-CHK-000656", + "SIT-CHK-000657", + "SIT-CHK-000658", + "SIT-CHK-000659", + "SIT-CHK-000660", + "SIT-CHK-000661", + "SIT-CHK-000662", + "SIT-CHK-000663", + "SIT-CHK-000664", + "SIT-CHK-000665", + "SIT-CHK-000666", + "SIT-CHK-000667" + ], + "diagnostic_id": "SIT-M014", + "id": "SIT-CAP-000014", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "result_refs": [ + "SIT-RES-000051", + "SIT-RES-000052", + "SIT-RES-000053", + "SIT-RES-000054", + "SIT-RES-000055", + "SIT-RES-000056", + "SIT-RES-000057", + "SIT-RES-000058", + "SIT-RES-000059", + "SIT-RES-000060", + "SIT-RES-000061", + "SIT-RES-000062", + "SIT-RES-000063", + "SIT-RES-000064", + "SIT-RES-000065", + "SIT-RES-000066", + "SIT-RES-000067", + "SIT-RES-000068", + "SIT-RES-000069", + "SIT-RES-000070", + "SIT-RES-000071", + "SIT-RES-000072", + "SIT-RES-000073", + "SIT-RES-000074" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000002", + "SIT-SCP-000010", + "SIT-SCP-000011", + "SIT-SCP-000012", + "SIT-SCP-000013", + "SIT-SCP-000014", + "SIT-SCP-000015", + "SIT-SCP-000016" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "check_refs": [ + "SIT-CHK-000075", + "SIT-CHK-000076", + "SIT-CHK-000077", + "SIT-CHK-000078", + "SIT-CHK-000153", + "SIT-CHK-000154", + "SIT-CHK-000155", + "SIT-CHK-000156", + "SIT-CHK-000189", + "SIT-CHK-000190", + "SIT-CHK-000191", + "SIT-CHK-000192", + "SIT-CHK-000220", + "SIT-CHK-000221", + "SIT-CHK-000222", + "SIT-CHK-000223", + "SIT-CHK-000668", + "SIT-CHK-000669", + "SIT-CHK-000670", + "SIT-CHK-000671" + ], + "diagnostic_id": "SIT-M015", + "id": "SIT-CAP-000015", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ], + "result_refs": [ + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred.", + "scope_refs": [ + "SIT-SCP-000006" + ], + "unavailable_result_refs": [] + } +] +``` + +## checks + +```json +[ + { + "check_id": "PC01", + "id": "SIT-CHK-000001", + "input_refs": [], + "note": "The owner received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000002", + "input_refs": [], + "note": "The owner received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000003", + "input_refs": [], + "note": "The owner received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000004", + "input_refs": [], + "note": "The owner received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000005", + "input_refs": [], + "note": "The owner received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000006", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000007", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000008", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000009", + "input_refs": [], + "note": "The component received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000010", + "input_refs": [], + "note": "The component received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000011", + "input_refs": [], + "note": "The component received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000012", + "input_refs": [], + "note": "The component received the complete admitted immutable snapshot.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000013", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000014", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000015", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000016", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000017", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000018", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000019", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000020", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000021", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000022", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000023", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000024", + "input_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000025", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000026", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000027", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000028", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000029", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000030", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000031", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000032", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000033", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000034", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000035", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000036", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000037", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000038", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000039", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000040", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "The same invocation completed admission before this scheduled structural scope explanation.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000041", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000042", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000043", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000044", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000045", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000046", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000047", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000048", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000049", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000050", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000051", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000052", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000053", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000054", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000055", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000056", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000057", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000058", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000059", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000060", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000061", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000062", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000063", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000064", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000065", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000066", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000067", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000068", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000069", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000070", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000071", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000072", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000073", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000074", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000075", + "input_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000076", + "input_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000077", + "input_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC01", + "id": "SIT-CHK-000078", + "input_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000079", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000080", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000081", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000082", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000083", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000084", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000085", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000086", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000087", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000088", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000089", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000090", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000091", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000092", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000093", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000094", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000095", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000096", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000097", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000098", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000099", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000100", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000101", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000102", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000103", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000104", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000105", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000106", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000107", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000108", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000109", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000110", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000111", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000112", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000113", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000114", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000115", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000116", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000117", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000118", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000119", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000120", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000121", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000122", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000123", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000124", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000125", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000126", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000127", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000128", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000129", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000130", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000131", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000132", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000133", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000134", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000135", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000136", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000137", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000138", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000139", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000140", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000141", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000142", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000143", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000144", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000145", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000146", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000147", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000148", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000149", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000150", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000151", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000152", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000153", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000154", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000155", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC02", + "id": "SIT-CHK-000156", + "input_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000157", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000158", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000159", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000160", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000161", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000162", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000163", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000164", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000165", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000166", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000167", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000168", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000169", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000170", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000171", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000172", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000173", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000174", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000175", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000176", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000177", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000178", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000179", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000180", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000181", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000182", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000183", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000184", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000185", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000186", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000187", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000188", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000189", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000190", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000191", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC03", + "id": "SIT-CHK-000192", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000193", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000194", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000195", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000196", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000197", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000198", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000199", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000200", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000201", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000202", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000203", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000204", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000205", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000206", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000207", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite population selection or local typed-edge eligibility.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000208", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000209", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000210", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000211", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000212", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000213", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000214", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000215", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000216", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000217", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000218", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000219", + "input_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000220", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "unmet" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000221", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "unmet" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000222", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "unmet" + }, + { + "check_id": "PC04", + "id": "SIT-CHK-000223", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "unmet" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000224", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000225", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000226", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000227", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000228", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000229", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000230", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000231", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000232", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000233", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000234", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000235", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000236", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000237", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000238", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000239", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000240", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000241", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000242", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000243", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "unknown" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000244", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "unknown" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000245", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000246", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000247", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000248", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000249", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000250", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000251", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000252", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000253", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000254", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000255", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000256", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000257", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000258", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000259", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000260", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000261", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000262", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000263", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000264", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000265", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000266", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000267", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000268", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000269", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000270", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000271", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000272", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000273", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000274", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000275", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000276", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000277", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC05", + "id": "SIT-CHK-000278", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000279", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000280", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000281", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000282", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000283", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000284", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000285", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000286", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000287", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000288", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000289", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000290", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000291", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000292", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000293", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000294", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000295", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000296", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC06", + "id": "SIT-CHK-000297", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000298", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000299", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000300", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000301", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000302", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000303", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000304", + "input_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000305", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000306", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000307", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000308", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000309", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000310", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000311", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000312", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC07", + "id": "SIT-CHK-000313", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000314", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000315", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000316", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000317", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000318", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000319", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000320", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000321", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000322", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000323", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000324", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000325", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000326", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000327", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000328", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000329", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000330", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000331", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000332", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000333", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000334", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000335", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000336", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000337", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000338", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000339", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000340", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000341", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC08", + "id": "SIT-CHK-000342", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000343", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000344", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000345", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000346", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000347", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000348", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000349", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000350", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000351", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000352", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000353", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000354", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000355", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000356", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000357", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000358", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000359", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000360", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000361", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000362", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "unknown" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000363", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "unknown" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000364", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000365", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000366", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000367", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000368", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000369", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000370", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000371", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000372", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000373", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000374", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000375", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000376", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000377", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000378", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000379", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000380", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000381", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000382", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000383", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000384", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000385", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000386", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000387", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000388", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000389", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000390", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000391", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000392", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000393", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000394", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000395", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000396", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC09", + "id": "SIT-CHK-000397", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000398", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000399", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000400", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000401", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000402", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000403", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000404", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000405", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000406", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000407", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000408", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000409", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000410", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000411", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000412", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000413", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000414", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000415", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000416", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000417", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000418", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000419", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000420", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000421", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000422", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000423", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000424", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000425", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000426", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000427", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000428", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000429", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000430", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000431", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000432", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000433", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000434", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000435", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000436", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000437", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000438", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000439", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000440", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000441", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000442", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000443", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000444", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000445", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000446", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000447", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000448", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000449", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000450", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000451", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC10", + "id": "SIT-CHK-000452", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC11", + "id": "SIT-CHK-000453", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC11", + "id": "SIT-CHK-000454", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC11", + "id": "SIT-CHK-000455", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC11", + "id": "SIT-CHK-000456", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "unknown" + }, + { + "check_id": "PC11", + "id": "SIT-CHK-000457", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "unknown" + }, + { + "check_id": "PC11", + "id": "SIT-CHK-000458", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC12", + "id": "SIT-CHK-000459", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Whole supplied seed population; no resolved-subset fallback.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC13", + "id": "SIT-CHK-000460", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Whole supplied seed population; no resolved-subset fallback.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC13", + "id": "SIT-CHK-000461", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Whole supplied seed population; no resolved-subset fallback.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC13", + "id": "SIT-CHK-000462", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "note": "Whole supplied seed population; no resolved-subset fallback.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC14", + "id": "SIT-CHK-000463", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC14", + "id": "SIT-CHK-000464", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable" + }, + { + "check_id": "PC15", + "id": "SIT-CHK-000465", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "unknown" + }, + { + "check_id": "PC15", + "id": "SIT-CHK-000466", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000467", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000468", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000469", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000470", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000471", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000472", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000473", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000474", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000475", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000476", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000477", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000478", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000479", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000480", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000481", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000482", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000483", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000484", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000485", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000486", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000487", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000488", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000489", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000490", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000491", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000492", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000493", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000494", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000495", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000496", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC16", + "id": "SIT-CHK-000497", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000498", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000499", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000500", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000501", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000502", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000503", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000504", + "input_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "unknown" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000505", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000506", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000507", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000508", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000509", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000510", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000511", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000512", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000513", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000514", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000515", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000516", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000517", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000518", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000519", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000520", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000521", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000522", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000523", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000524", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000525", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000526", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000527", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC17", + "id": "SIT-CHK-000528", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000529", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000530", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000531", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "unknown" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000532", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000533", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000534", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000535", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000536", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000537", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000538", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000539", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000540", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000541", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000542", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000543", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000544", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000545", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000546", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000547", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000548", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000549", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000550", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000551", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000552", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000553", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000554", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000555", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000556", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000557", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000558", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable" + }, + { + "check_id": "PC18", + "id": "SIT-CHK-000559", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000560", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000561", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000562", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000563", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000564", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000565", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000566", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC21", + "id": "SIT-CHK-000567", + "input_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable" + }, + { + "check_id": "PC22", + "id": "SIT-CHK-000568", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC22", + "id": "SIT-CHK-000569", + "input_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000570", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000571", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000572", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000573", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000574", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000575", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000576", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000577", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000578", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000579", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000580", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000581", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000582", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000583", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000584", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000585", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000586", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000587", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000588", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000589", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000590", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000591", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000592", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC23", + "id": "SIT-CHK-000593", + "input_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000594", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000595", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000596", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000597", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000003", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000598", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000001", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000599", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000600", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000601", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000602", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000603", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000604", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000605", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000017", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000606", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000607", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000608", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000609", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000610", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000611", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000612", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000613", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000614", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000615", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000616", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000617", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000618", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000619", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000620", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000621", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000622", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000623", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000004", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000624", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000625", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000626", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000009", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000627", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000628", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000629", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000630", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000008", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000631", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000632", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000633", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000005", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000634", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000635", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000636", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000637", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000638", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000639", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000640", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000641", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000007", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000642", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000643", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000018", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000644", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000645", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000646", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000647", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000648", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000649", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000650", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000651", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000652", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000653", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000654", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000655", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000656", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000657", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000658", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000659", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000660", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000002", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000661", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000010", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000662", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000011", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000663", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000012", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000664", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000013", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000665", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000014", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000666", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000015", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000667", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000016", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000668", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000669", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000670", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + }, + { + "check_id": "PC24", + "id": "SIT-CHK-000671", + "input_refs": [], + "note": "Owner-recorded finite processing is complete.", + "reason_refs": [], + "scope_ref": "SIT-SCP-000006", + "state": "met" + } +] +``` + +## observability_domains + +```json +[ + { + "available_result_refs": [ + "SIT-RES-000001", + "SIT-RES-000002", + "SIT-RES-000003", + "SIT-RES-000004", + "SIT-RES-000005" + ], + "label": "Artifact and contribution inventory", + "level_index": 0, + "not_evaluated_result_refs": [], + "reason_refs": [], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008", + "SIT-RES-000018", + "SIT-RES-000020", + "SIT-RES-000021", + "SIT-RES-000022", + "SIT-RES-000023", + "SIT-RES-000024", + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "label": "Declared provenance and process metadata", + "level_index": 1, + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000015", + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008", + "SIT-RES-000009", + "SIT-RES-000013", + "SIT-RES-000014", + "SIT-RES-000015", + "SIT-RES-000016", + "SIT-RES-000017", + "SIT-RES-000018", + "SIT-RES-000020" + ], + "label": "Origin-resolution and scoped process-assessment evidence", + "level_index": 2, + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000015", + "SIT-RSN-000022", + "SIT-RSN-000023", + "SIT-RSN-000024", + "SIT-RSN-000025" + ], + "unavailable_result_refs": [ + "SIT-RES-000010", + "SIT-RES-000011", + "SIT-RES-000012" + ] + }, + { + "available_result_refs": [ + "SIT-RES-000049", + "SIT-RES-000050", + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "label": "Evaluator, correction-route and authority evidence", + "level_index": 3, + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000026", + "SIT-RSN-000027", + "SIT-RSN-000028", + "SIT-RSN-000029", + "SIT-RSN-000030", + "SIT-RSN-000031", + "SIT-RSN-000032", + "SIT-RSN-000033", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ], + "unavailable_result_refs": [] + }, + { + "available_result_refs": [ + "SIT-RES-000030", + "SIT-RES-000032", + "SIT-RES-000034", + "SIT-RES-000041", + "SIT-RES-000042", + "SIT-RES-000043", + "SIT-RES-000044", + "SIT-RES-000045", + "SIT-RES-000046", + "SIT-RES-000047", + "SIT-RES-000048", + "SIT-RES-000051", + "SIT-RES-000052", + "SIT-RES-000053", + "SIT-RES-000054", + "SIT-RES-000055", + "SIT-RES-000056", + "SIT-RES-000057", + "SIT-RES-000058", + "SIT-RES-000059", + "SIT-RES-000060", + "SIT-RES-000061", + "SIT-RES-000062", + "SIT-RES-000063", + "SIT-RES-000064", + "SIT-RES-000065", + "SIT-RES-000066", + "SIT-RES-000067", + "SIT-RES-000068", + "SIT-RES-000069", + "SIT-RES-000070", + "SIT-RES-000071", + "SIT-RES-000072", + "SIT-RES-000073", + "SIT-RES-000074" + ], + "label": "Boundary-qualified external input, stage histories and documented correction outcomes", + "level_index": 4, + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000001", + "SIT-RSN-000002", + "SIT-RSN-000003", + "SIT-RSN-000004", + "SIT-RSN-000005", + "SIT-RSN-000006", + "SIT-RSN-000007", + "SIT-RSN-000008", + "SIT-RSN-000009", + "SIT-RSN-000010", + "SIT-RSN-000011", + "SIT-RSN-000012", + "SIT-RSN-000013", + "SIT-RSN-000014", + "SIT-RSN-000020", + "SIT-RSN-000021", + "SIT-RSN-000038" + ], + "unavailable_result_refs": [ + "SIT-RES-000029", + "SIT-RES-000031", + "SIT-RES-000033", + "SIT-RES-000035", + "SIT-RES-000036", + "SIT-RES-000037" + ] + } +] +``` + +## results + +### SIT-RES-000001: claim_artifact_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "check_refs": [ + "SIT-CHK-000001", + "SIT-CHK-000079", + "SIT-CHK-000157", + "SIT-CHK-000594" + ], + "diagnostic_id": "SIT-M001", + "execution_state": "completed", + "field_key": "claim_artifact_record_count", + "id": "SIT-RES-000001", + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.", + "population_refs": [ + "SIT-POP-000005" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000003", + "value": 1, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000002: claim_unassigned_seed_artifact_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "check_refs": [ + "SIT-CHK-000002", + "SIT-CHK-000080", + "SIT-CHK-000158", + "SIT-CHK-000595" + ], + "diagnostic_id": "SIT-M001", + "execution_state": "completed", + "field_key": "claim_unassigned_seed_artifact_record_count", + "id": "SIT-RES-000002", + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.", + "population_refs": [ + "SIT-POP-000002" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000001", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000003: nominal_seed_artifact_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "check_refs": [ + "SIT-CHK-000003", + "SIT-CHK-000081", + "SIT-CHK-000159", + "SIT-CHK-000596" + ], + "diagnostic_id": "SIT-M001", + "execution_state": "completed", + "field_key": "nominal_seed_artifact_record_count", + "id": "SIT-RES-000003", + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.", + "population_refs": [ + "SIT-POP-000001" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000001", + "value": 1, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000004: seed_evidence_item_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "check_refs": [ + "SIT-CHK-000004", + "SIT-CHK-000082", + "SIT-CHK-000160", + "SIT-CHK-000597" + ], + "diagnostic_id": "SIT-M001", + "execution_state": "completed", + "field_key": "seed_evidence_item_count", + "id": "SIT-RES-000004", + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.", + "population_refs": [ + "SIT-POP-000006" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000003", + "value": 1, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000005: unresolved_seed_artifact_reference_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "check_refs": [ + "SIT-CHK-000005", + "SIT-CHK-000083", + "SIT-CHK-000161", + "SIT-CHK-000598" + ], + "diagnostic_id": "SIT-M001", + "execution_state": "completed", + "field_key": "unresolved_seed_artifact_reference_count", + "id": "SIT-RES-000005", + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run.", + "population_refs": [ + "SIT-POP-000003" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000001", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000006: documentary_origin_boundary_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000006", + "SIT-CHK-000084", + "SIT-CHK-000162", + "SIT-CHK-000193", + "SIT-CHK-000224", + "SIT-CHK-000279", + "SIT-CHK-000298", + "SIT-CHK-000314", + "SIT-CHK-000343", + "SIT-CHK-000398", + "SIT-CHK-000599" + ], + "diagnostic_id": "SIT-M002", + "execution_state": "completed", + "field_key": "documentary_origin_boundary_record_count", + "id": "SIT-RES-000006", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000034" + ], + "reason_refs": [], + "result_origin": "qualification_check", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": 1, + "value_kind": "count", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000007: origin_boundary_disclosures + +````json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000007", + "SIT-CHK-000085", + "SIT-CHK-000163", + "SIT-CHK-000194", + "SIT-CHK-000225", + "SIT-CHK-000280", + "SIT-CHK-000299", + "SIT-CHK-000315", + "SIT-CHK-000344", + "SIT-CHK-000399", + "SIT-CHK-000600" + ], + "diagnostic_id": "SIT-M002", + "execution_state": "completed", + "field_key": "origin_boundary_disclosures", + "id": "SIT-RES-000007", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000037" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "records": [ + { + "fields": { + "native_record": { + "asserted_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "assertion_kind": "assessment", + "data": { + "assessment_kind": "origin_boundary", + "details": { + "boundary_role": "documented_origin", + "coverage_ref": "P4-COVER", + "dimension": "acquisition", + "termination_reason": "This supplied finite acquisition record terminates here." + }, + "subject_refs": [ + "P4-O1" + ] + }, + "id": "P4-BOUND", + "lifecycle_basis_ref_ids": [], + "lifecycle_state": "active", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "scope": { + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + }, + "inquiry_refs": [ + "P4-I001" + ] + } + }, + "qualification_state": "met", + "reason_codes": [] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Lifecycle and relation polarity are retained; documentary qualification does not make a current positive premise.", + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "source": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + } + ] + }, + "value_kind": "record_disclosures", + "witness_refs": [ + "SIT-FND-000020" + ] +} +```` + +Reason details + +```json +[] +``` + +### SIT-RES-000008: reached_origin_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000008", + "SIT-CHK-000086", + "SIT-CHK-000164", + "SIT-CHK-000195", + "SIT-CHK-000226", + "SIT-CHK-000281", + "SIT-CHK-000300", + "SIT-CHK-000316", + "SIT-CHK-000345", + "SIT-CHK-000400", + "SIT-CHK-000601" + ], + "diagnostic_id": "SIT-M002", + "execution_state": "completed", + "field_key": "reached_origin_record_count", + "id": "SIT-RES-000008", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000035" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": 1, + "value_kind": "count", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000009: independence_assessment_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "check_refs": [ + "SIT-CHK-000009", + "SIT-CHK-000087", + "SIT-CHK-000165", + "SIT-CHK-000196", + "SIT-CHK-000227", + "SIT-CHK-000282", + "SIT-CHK-000301", + "SIT-CHK-000317", + "SIT-CHK-000346", + "SIT-CHK-000401", + "SIT-CHK-000453", + "SIT-CHK-000602" + ], + "diagnostic_id": "SIT-M003", + "execution_state": "completed", + "field_key": "independence_assessment_disclosures", + "id": "SIT-RES-000009", + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.", + "population_refs": [ + "SIT-POP-000028" + ], + "reason_refs": [ + "SIT-RSN-000022" + ], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000017", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000009" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000022", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + } +] +``` + +### SIT-RES-000010: qualified_origin_set_member_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "check_refs": [ + "SIT-CHK-000010", + "SIT-CHK-000088", + "SIT-CHK-000166", + "SIT-CHK-000197", + "SIT-CHK-000228", + "SIT-CHK-000283", + "SIT-CHK-000302", + "SIT-CHK-000318", + "SIT-CHK-000347", + "SIT-CHK-000402", + "SIT-CHK-000454", + "SIT-CHK-000603" + ], + "diagnostic_id": "SIT-M003", + "execution_state": "completed", + "field_key": "qualified_origin_set_member_count", + "id": "SIT-RES-000010", + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.", + "population_refs": [ + "SIT-POP-000030" + ], + "reason_refs": [ + "SIT-RSN-000023" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000017", + "value": null, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000010" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000023", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + } +] +``` + +### SIT-RES-000011: qualified_process_set_member_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "check_refs": [ + "SIT-CHK-000011", + "SIT-CHK-000089", + "SIT-CHK-000167", + "SIT-CHK-000198", + "SIT-CHK-000229", + "SIT-CHK-000284", + "SIT-CHK-000303", + "SIT-CHK-000319", + "SIT-CHK-000348", + "SIT-CHK-000403", + "SIT-CHK-000455", + "SIT-CHK-000604" + ], + "diagnostic_id": "SIT-M003", + "execution_state": "completed", + "field_key": "qualified_process_set_member_count", + "id": "SIT-RES-000011", + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.", + "population_refs": [ + "SIT-POP-000029" + ], + "reason_refs": [ + "SIT-RSN-000024" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000017", + "value": null, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000011" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000024", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + } +] +``` + +### SIT-RES-000012: submitted_comparison_member_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "check_refs": [ + "SIT-CHK-000012", + "SIT-CHK-000090", + "SIT-CHK-000168", + "SIT-CHK-000199", + "SIT-CHK-000230", + "SIT-CHK-000285", + "SIT-CHK-000304", + "SIT-CHK-000320", + "SIT-CHK-000349", + "SIT-CHK-000404", + "SIT-CHK-000456", + "SIT-CHK-000605" + ], + "diagnostic_id": "SIT-M003", + "execution_state": "completed", + "field_key": "submitted_comparison_member_count", + "id": "SIT-RES-000012", + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension.", + "population_refs": [ + "SIT-POP-000029" + ], + "reason_refs": [ + "SIT-RSN-000025" + ], + "result_origin": "inventory", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000017", + "value": null, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000012" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000025", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + } +] +``` + +### SIT-RES-000013: documentary_origin_resolution_fraction + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000013", + "SIT-CHK-000091", + "SIT-CHK-000169", + "SIT-CHK-000200", + "SIT-CHK-000231", + "SIT-CHK-000286", + "SIT-CHK-000305", + "SIT-CHK-000321", + "SIT-CHK-000350", + "SIT-CHK-000405", + "SIT-CHK-000606" + ], + "diagnostic_id": "SIT-M004", + "execution_state": "completed", + "field_key": "documentary_origin_resolution_fraction", + "id": "SIT-RES-000013", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000032" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "denominator": 1, + "numerator": 1 + }, + "value_kind": "fraction", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Decimal display: 1/1 = 1.000000 + +Reason details + +```json +[] +``` + +### SIT-RES-000014: origin_incidence_counts + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000014", + "SIT-CHK-000092", + "SIT-CHK-000170", + "SIT-CHK-000201", + "SIT-CHK-000232", + "SIT-CHK-000287", + "SIT-CHK-000306", + "SIT-CHK-000322", + "SIT-CHK-000351", + "SIT-CHK-000406", + "SIT-CHK-000607" + ], + "diagnostic_id": "SIT-M004", + "execution_state": "completed", + "field_key": "origin_incidence_counts", + "id": "SIT-RES-000014", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000032" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "memberships": [ + { + "member_ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "origin_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + ], + "nonexclusive": true, + "origin_counts": [ + { + "count": 1, + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "origin_ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "population_ref": "SIT-POP-000032", + "total": 1 + }, + "value_kind": "incidence", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000015: per_seed_origin_memberships + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000015", + "SIT-CHK-000093", + "SIT-CHK-000171", + "SIT-CHK-000202", + "SIT-CHK-000233", + "SIT-CHK-000288", + "SIT-CHK-000307", + "SIT-CHK-000323", + "SIT-CHK-000352", + "SIT-CHK-000407", + "SIT-CHK-000608" + ], + "diagnostic_id": "SIT-M004", + "execution_state": "completed", + "field_key": "per_seed_origin_memberships", + "id": "SIT-RES-000015", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000032" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "memberships": [ + { + "member_ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "origin_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + ], + "nonexclusive": true, + "origin_counts": [ + { + "count": 1, + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "origin_ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "population_ref": "SIT-POP-000032", + "total": 1 + }, + "value_kind": "incidence", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000016: seed_origin_dispositions + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000016", + "SIT-CHK-000094", + "SIT-CHK-000172", + "SIT-CHK-000203", + "SIT-CHK-000234", + "SIT-CHK-000289", + "SIT-CHK-000308", + "SIT-CHK-000324", + "SIT-CHK-000353", + "SIT-CHK-000408", + "SIT-CHK-000609" + ], + "diagnostic_id": "SIT-M004", + "execution_state": "completed", + "field_key": "seed_origin_dispositions", + "id": "SIT-RES-000016", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000032" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "categories": [ + { + "count": 0, + "label": "unresolved_or_conflicted", + "member_refs": [] + }, + { + "count": 0, + "label": "contains_baseline_or_scope_cut", + "member_refs": [] + }, + { + "count": 0, + "label": "contains_declared_origin", + "member_refs": [] + }, + { + "count": 0, + "label": "multiple_documented_origins", + "member_refs": [] + }, + { + "count": 1, + "label": "single_documented_origin", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ] + } + ], + "population_ref": "SIT-POP-000032", + "total": 1 + }, + "value_kind": "partition", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000017: single_origin_contribution_hhi + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000017", + "SIT-CHK-000095", + "SIT-CHK-000173", + "SIT-CHK-000204", + "SIT-CHK-000235", + "SIT-CHK-000290", + "SIT-CHK-000309", + "SIT-CHK-000325", + "SIT-CHK-000354", + "SIT-CHK-000409", + "SIT-CHK-000459", + "SIT-CHK-000610" + ], + "diagnostic_id": "SIT-M005", + "execution_state": "completed", + "field_key": "single_origin_contribution_hhi", + "id": "SIT-RES-000017", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000032" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "denominator": 1, + "numerator": 1 + }, + "value_kind": "fraction", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Decimal display: 1/1 = 1.000000 + +Reason details + +```json +[] +``` + +### SIT-RES-000018: immediate_evidence_layer_dispositions + +```json +{ + "basis_refs": [ + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000018", + "SIT-CHK-000096", + "SIT-CHK-000174", + "SIT-CHK-000205", + "SIT-CHK-000236", + "SIT-CHK-000291", + "SIT-CHK-000326", + "SIT-CHK-000355", + "SIT-CHK-000410", + "SIT-CHK-000460", + "SIT-CHK-000611" + ], + "diagnostic_id": "SIT-M006", + "execution_state": "completed", + "field_key": "immediate_evidence_layer_dispositions", + "id": "SIT-RES-000018", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000040" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000020", + "value": { + "categories": [ + { + "count": 0, + "label": "inherited_only_at_evidence_layer", + "member_refs": [] + }, + { + "count": 1, + "label": "direct_origin_link_only", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ] + }, + { + "count": 0, + "label": "mixed_direct_and_inherited", + "member_refs": [] + }, + { + "count": 0, + "label": "unresolved_at_evidence_layer", + "member_refs": [] + } + ], + "population_ref": "SIT-POP-000040", + "total": 1 + }, + "value_kind": "partition", + "witness_refs": [ + "SIT-FND-000021" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000019: inherited_only_completion_interval + +```json +{ + "basis_refs": [ + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000019", + "SIT-CHK-000097", + "SIT-CHK-000175", + "SIT-CHK-000206", + "SIT-CHK-000237", + "SIT-CHK-000292", + "SIT-CHK-000327", + "SIT-CHK-000356", + "SIT-CHK-000411", + "SIT-CHK-000461", + "SIT-CHK-000612" + ], + "diagnostic_id": "SIT-M006", + "execution_state": "completed", + "field_key": "inherited_only_completion_interval", + "id": "SIT-RES-000019", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000040" + ], + "reason_refs": [ + "SIT-RSN-000015" + ], + "result_origin": "graph_derivation", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000020", + "value": null, + "value_kind": "completion_interval", + "witness_refs": [ + "SIT-FND-000021" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000019" + ], + "classification": "structural_inapplicability", + "code": "completion_interval_not_needed", + "detail": "Exact scoped contribution limitation; positive records and the full denominator remain visible.", + "id": "SIT-RSN-000015", + "input_refs": [], + "scope_ref": "SIT-SCP-000020" + } +] +``` + +### SIT-RES-000020: inherited_only_seed_fraction + +```json +{ + "basis_refs": [ + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000020", + "SIT-CHK-000098", + "SIT-CHK-000176", + "SIT-CHK-000207", + "SIT-CHK-000238", + "SIT-CHK-000293", + "SIT-CHK-000328", + "SIT-CHK-000357", + "SIT-CHK-000412", + "SIT-CHK-000462", + "SIT-CHK-000613" + ], + "diagnostic_id": "SIT-M006", + "execution_state": "completed", + "field_key": "inherited_only_seed_fraction", + "id": "SIT-RES-000020", + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins.", + "population_refs": [ + "SIT-POP-000040" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000020", + "value": { + "denominator": 1, + "numerator": 0 + }, + "value_kind": "fraction", + "witness_refs": [ + "SIT-FND-000021" + ] +} +``` + +Decimal display: 0/1 = 0.000000 + +Reason details + +```json +[] +``` + +### SIT-RES-000021: ancestry_gap_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000021", + "SIT-CHK-000099", + "SIT-CHK-000177", + "SIT-CHK-000208", + "SIT-CHK-000239", + "SIT-CHK-000294", + "SIT-CHK-000310", + "SIT-CHK-000329", + "SIT-CHK-000358", + "SIT-CHK-000413", + "SIT-CHK-000614" + ], + "diagnostic_id": "SIT-M007", + "execution_state": "completed", + "field_key": "ancestry_gap_disclosures", + "id": "SIT-RES-000021", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000036" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000022: seed_items_with_unresolved_ancestry_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000022", + "SIT-CHK-000100", + "SIT-CHK-000178", + "SIT-CHK-000209", + "SIT-CHK-000240", + "SIT-CHK-000295", + "SIT-CHK-000311", + "SIT-CHK-000330", + "SIT-CHK-000359", + "SIT-CHK-000414", + "SIT-CHK-000615" + ], + "diagnostic_id": "SIT-M007", + "execution_state": "completed", + "field_key": "seed_items_with_unresolved_ancestry_count", + "id": "SIT-RES-000022", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000033" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": 0, + "value_kind": "count", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000023: unqualified_terminal_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000023", + "SIT-CHK-000101", + "SIT-CHK-000179", + "SIT-CHK-000210", + "SIT-CHK-000241", + "SIT-CHK-000296", + "SIT-CHK-000312", + "SIT-CHK-000331", + "SIT-CHK-000360", + "SIT-CHK-000415", + "SIT-CHK-000616" + ], + "diagnostic_id": "SIT-M007", + "execution_state": "completed", + "field_key": "unqualified_terminal_record_count", + "id": "SIT-RES-000023", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000038" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": 0, + "value_kind": "count", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000024: unresolved_frontier_reference_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000024", + "SIT-CHK-000102", + "SIT-CHK-000180", + "SIT-CHK-000211", + "SIT-CHK-000242", + "SIT-CHK-000297", + "SIT-CHK-000313", + "SIT-CHK-000332", + "SIT-CHK-000361", + "SIT-CHK-000416", + "SIT-CHK-000617" + ], + "diagnostic_id": "SIT-M007", + "execution_state": "completed", + "field_key": "unresolved_frontier_reference_count", + "id": "SIT-RES-000024", + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable.", + "population_refs": [ + "SIT-POP-000039" + ], + "reason_refs": [], + "result_origin": "graph_derivation", + "result_state": "available", + "scope_ref": "SIT-SCP-000019", + "value": 0, + "value_kind": "count", + "witness_refs": [ + "SIT-FND-000020" + ] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000025: evaluator_overlap_disclosures + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000025", + "SIT-CHK-000103", + "SIT-CHK-000618" + ], + "diagnostic_id": "SIT-M008", + "execution_state": "completed", + "field_key": "evaluator_overlap_disclosures", + "id": "SIT-RES-000025", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000027" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000025" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000027", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000026: evaluator_overlap_witnesses + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000026", + "SIT-CHK-000104", + "SIT-CHK-000619" + ], + "diagnostic_id": "SIT-M008", + "execution_state": "completed", + "field_key": "evaluator_overlap_witnesses", + "id": "SIT-RES-000026", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000028" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "witness_collection", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000026" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000028", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000027: matching_family_label_count + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000027", + "SIT-CHK-000105", + "SIT-CHK-000620" + ], + "diagnostic_id": "SIT-M008", + "execution_state": "completed", + "field_key": "matching_family_label_count", + "id": "SIT-RES-000027", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000029" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000027" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000029", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000028: shared_recorded_ancestor_count + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000028", + "SIT-CHK-000106", + "SIT-CHK-000621" + ], + "diagnostic_id": "SIT-M008", + "execution_state": "completed", + "field_key": "shared_recorded_ancestor_count", + "id": "SIT-RES-000028", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000030" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000028" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000030", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000029: externality_assessment_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000029", + "SIT-CHK-000107", + "SIT-CHK-000243", + "SIT-CHK-000362", + "SIT-CHK-000417", + "SIT-CHK-000465", + "SIT-CHK-000622" + ], + "diagnostic_id": "SIT-M009", + "execution_state": "completed", + "field_key": "externality_assessment_disclosures", + "id": "SIT-RES-000029", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000007" + ], + "reason_refs": [ + "SIT-RSN-000020" + ], + "result_origin": "attributed_record", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000004", + "value": null, + "value_kind": "record_disclosures", + "witness_refs": [ + "SIT-FND-000001" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000029" + ], + "classification": "evidence_gap", + "code": "externality_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000020", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000004" + } +] +``` + +### SIT-RES-000030: externality_stage_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000030", + "SIT-CHK-000108", + "SIT-CHK-000244", + "SIT-CHK-000363", + "SIT-CHK-000418", + "SIT-CHK-000466", + "SIT-CHK-000623" + ], + "diagnostic_id": "SIT-M009", + "execution_state": "completed", + "field_key": "externality_stage_links", + "id": "SIT-RES-000030", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000007" + ], + "reason_refs": [ + "SIT-RSN-000021" + ], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000004", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [ + "SIT-FND-000002" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000030" + ], + "classification": "evidence_gap", + "code": "externality_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000021", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000004" + } +] +``` + +### SIT-RES-000031: cohort_transition_completion_interval + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000031", + "SIT-CHK-000109", + "SIT-CHK-000467", + "SIT-CHK-000498", + "SIT-CHK-000529", + "SIT-CHK-000624" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "cohort_transition_completion_interval", + "id": "SIT-RES-000031", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000005", + "SIT-RSN-000012" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000009", + "value": null, + "value_kind": "completion_interval", + "witness_refs": [ + "SIT-FND-000011", + "SIT-FND-000014" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000031" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000005", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000031" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000012", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + } +] +``` + +### SIT-RES-000032: cohort_transition_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000032", + "SIT-CHK-000110", + "SIT-CHK-000468", + "SIT-CHK-000499", + "SIT-CHK-000530", + "SIT-CHK-000625" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "cohort_transition_disclosures", + "id": "SIT-RES-000032", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000006", + "SIT-RSN-000013", + "SIT-RSN-000038" + ], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000009", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [ + "SIT-FND-000012", + "SIT-FND-000015", + "SIT-FND-000017" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000032" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000006", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000032" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000013", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000032" + ], + "classification": "evidence_gap", + "code": "transition_baseline_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000038", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + } +] +``` + +### SIT-RES-000033: cohort_transition_fraction + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000033", + "SIT-CHK-000111", + "SIT-CHK-000469", + "SIT-CHK-000500", + "SIT-CHK-000531", + "SIT-CHK-000626" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "cohort_transition_fraction", + "id": "SIT-RES-000033", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000007", + "SIT-RSN-000014" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000009", + "value": null, + "value_kind": "fraction", + "witness_refs": [ + "SIT-FND-000013", + "SIT-FND-000016" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000033" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000007", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000033" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000014", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + } +] +``` + +### SIT-RES-000034: pipeline_stage_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000034", + "SIT-CHK-000112", + "SIT-CHK-000470", + "SIT-CHK-000501", + "SIT-CHK-000532", + "SIT-CHK-000627" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "pipeline_stage_disclosures", + "id": "SIT-RES-000034", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000001", + "SIT-RSN-000008" + ], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000008", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [ + "SIT-FND-000003", + "SIT-FND-000007" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000034" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000001", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000034" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000008", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + } +] +``` + +### SIT-RES-000035: stage_member_partition + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000035", + "SIT-CHK-000113", + "SIT-CHK-000471", + "SIT-CHK-000502", + "SIT-CHK-000533", + "SIT-CHK-000628" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "stage_member_partition", + "id": "SIT-RES-000035", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000002", + "SIT-RSN-000009" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000008", + "value": null, + "value_kind": "partition", + "witness_refs": [ + "SIT-FND-000004", + "SIT-FND-000008" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000035" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000002", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000035" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000009", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + } +] +``` + +### SIT-RES-000036: stage_occurrence_completion_interval + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000036", + "SIT-CHK-000114", + "SIT-CHK-000472", + "SIT-CHK-000503", + "SIT-CHK-000534", + "SIT-CHK-000629" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "stage_occurrence_completion_interval", + "id": "SIT-RES-000036", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000003", + "SIT-RSN-000010" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000008", + "value": null, + "value_kind": "completion_interval", + "witness_refs": [ + "SIT-FND-000005", + "SIT-FND-000009" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000036" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000003", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000036" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000010", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + } +] +``` + +### SIT-RES-000037: stage_occurrence_fraction + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000037", + "SIT-CHK-000115", + "SIT-CHK-000473", + "SIT-CHK-000504", + "SIT-CHK-000535", + "SIT-CHK-000630" + ], + "diagnostic_id": "SIT-M010", + "execution_state": "completed", + "field_key": "stage_occurrence_fraction", + "id": "SIT-RES-000037", + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000004", + "SIT-RSN-000011" + ], + "result_origin": "qualification_check", + "result_state": "unavailable", + "scope_ref": "SIT-SCP-000008", + "value": null, + "value_kind": "fraction", + "witness_refs": [ + "SIT-FND-000006", + "SIT-FND-000010" + ] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000037" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000004", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000037" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000011", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + } +] +``` + +### SIT-RES-000038: applicable_authorized_route_witnesses + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000038", + "SIT-CHK-000116", + "SIT-CHK-000631" + ], + "diagnostic_id": "SIT-M011", + "execution_state": "completed", + "field_key": "applicable_authorized_route_witnesses", + "id": "SIT-RES-000038", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000031" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "witness_collection", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000038" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000031", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000039: correction_route_disclosures + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000039", + "SIT-CHK-000117", + "SIT-CHK-000632" + ], + "diagnostic_id": "SIT-M011", + "execution_state": "completed", + "field_key": "correction_route_disclosures", + "id": "SIT-RES-000039", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000032" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000039" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000032", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000040: declared_correction_route_witnesses + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000040", + "SIT-CHK-000118", + "SIT-CHK-000633" + ], + "diagnostic_id": "SIT-M011", + "execution_state": "completed", + "field_key": "declared_correction_route_witnesses", + "id": "SIT-RES-000040", + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation.", + "population_refs": [], + "reason_refs": [ + "SIT-RSN-000033" + ], + "result_origin": "qualification_check", + "result_state": "not_applicable", + "scope_ref": "SIT-SCP-000005", + "value": null, + "value_kind": "witness_collection", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000040" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000033", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + } +] +``` + +### SIT-RES-000041: cases_with_documentary_linked_change_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000041", + "SIT-CHK-000119", + "SIT-CHK-000181", + "SIT-CHK-000212", + "SIT-CHK-000245", + "SIT-CHK-000333", + "SIT-CHK-000364", + "SIT-CHK-000419", + "SIT-CHK-000560", + "SIT-CHK-000634" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "cases_with_documentary_linked_change_count", + "id": "SIT-RES-000041", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000012" + ], + "reason_refs": [], + "result_origin": "qualification_check", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000042: correction_case_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000042", + "SIT-CHK-000120", + "SIT-CHK-000182", + "SIT-CHK-000213", + "SIT-CHK-000246", + "SIT-CHK-000334", + "SIT-CHK-000365", + "SIT-CHK-000420", + "SIT-CHK-000561", + "SIT-CHK-000635" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "correction_case_disclosures", + "id": "SIT-RES-000042", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000016" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000043: correction_case_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000043", + "SIT-CHK-000121", + "SIT-CHK-000183", + "SIT-CHK-000214", + "SIT-CHK-000247", + "SIT-CHK-000335", + "SIT-CHK-000366", + "SIT-CHK-000421", + "SIT-CHK-000562", + "SIT-CHK-000636" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "correction_case_record_count", + "id": "SIT-RES-000043", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000013" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000044: correction_target_change_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000044", + "SIT-CHK-000122", + "SIT-CHK-000184", + "SIT-CHK-000215", + "SIT-CHK-000248", + "SIT-CHK-000336", + "SIT-CHK-000367", + "SIT-CHK-000422", + "SIT-CHK-000563", + "SIT-CHK-000637" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "correction_target_change_disclosures", + "id": "SIT-RES-000044", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000017" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000045: documentary_linked_change_target_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000045", + "SIT-CHK-000123", + "SIT-CHK-000185", + "SIT-CHK-000216", + "SIT-CHK-000249", + "SIT-CHK-000337", + "SIT-CHK-000368", + "SIT-CHK-000423", + "SIT-CHK-000564", + "SIT-CHK-000638" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "documentary_linked_change_target_count", + "id": "SIT-RES-000045", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000011" + ], + "reason_refs": [], + "result_origin": "qualification_check", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000046: handling_event_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000046", + "SIT-CHK-000124", + "SIT-CHK-000186", + "SIT-CHK-000217", + "SIT-CHK-000250", + "SIT-CHK-000338", + "SIT-CHK-000369", + "SIT-CHK-000424", + "SIT-CHK-000565", + "SIT-CHK-000639" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "handling_event_record_count", + "id": "SIT-RES-000046", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000015" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000047: linked_change_event_record_count + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000047", + "SIT-CHK-000125", + "SIT-CHK-000187", + "SIT-CHK-000218", + "SIT-CHK-000251", + "SIT-CHK-000339", + "SIT-CHK-000370", + "SIT-CHK-000425", + "SIT-CHK-000566", + "SIT-CHK-000640" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "linked_change_event_record_count", + "id": "SIT-RES-000047", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000014" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": 0, + "value_kind": "count", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000048: reported_capacity_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000048", + "SIT-CHK-000126", + "SIT-CHK-000188", + "SIT-CHK-000219", + "SIT-CHK-000252", + "SIT-CHK-000340", + "SIT-CHK-000371", + "SIT-CHK-000426", + "SIT-CHK-000567", + "SIT-CHK-000641" + ], + "diagnostic_id": "SIT-M012", + "execution_state": "completed", + "field_key": "reported_capacity_disclosures", + "id": "SIT-RES-000048", + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula.", + "population_refs": [ + "SIT-POP-000018" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000007", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000049: corrective_independence_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000049", + "SIT-CHK-000127", + "SIT-CHK-000253", + "SIT-CHK-000341", + "SIT-CHK-000372", + "SIT-CHK-000427", + "SIT-CHK-000457", + "SIT-CHK-000463", + "SIT-CHK-000568", + "SIT-CHK-000642" + ], + "diagnostic_id": "SIT-M013", + "execution_state": "completed", + "field_key": "corrective_independence_disclosures", + "id": "SIT-RES-000049", + "interpretation_limit": "Attributed supplied review and exact process assessment only. A human title, employer, endpoint or recorded contribution establishes neither independence nor renewable human judgment. A qualified procedure does not establish institutional execution. Unexamined dimensions and protected or unresolved dependencies remain unestablished; formal checks and execution retain their own constraint kinds. No total independent-human capacity or judgment score follows.", + "population_refs": [ + "SIT-POP-000031" + ], + "reason_refs": [ + "SIT-RSN-000026" + ], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000018", + "value": { + "records": [ + { + "fields": { + "native_record": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "boundary": { + "criterion": "Only the supplied finite record identities and typed bindings.", + "description": "One fictional acquisition and its supplied contribution.", + "system_refs": [] + }, + "coverage_assertion_refs": [ + "P4-COVER" + ], + "dependency_dimensions": [ + "acquisition" + ], + "id": "P4-I001", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + } + }, + "qualifications": [ + "Actual owner selection/source reference slot; this record does not establish an applicable review or independent process." + ], + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + } + ] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000049" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "The supplied review/process record retains this exact qualification limit. Visible contribution does not resolve missing process evidence or dependencies.", + "id": "SIT-RSN-000026", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000018" + } +] +``` + +### SIT-RES-000050: human_contribution_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000050", + "SIT-CHK-000128", + "SIT-CHK-000254", + "SIT-CHK-000342", + "SIT-CHK-000373", + "SIT-CHK-000428", + "SIT-CHK-000458", + "SIT-CHK-000464", + "SIT-CHK-000569", + "SIT-CHK-000643" + ], + "diagnostic_id": "SIT-M013", + "execution_state": "completed", + "field_key": "human_contribution_disclosures", + "id": "SIT-RES-000050", + "interpretation_limit": "Attributed supplied review and exact process assessment only. A human title, employer, endpoint or recorded contribution establishes neither independence nor renewable human judgment. A qualified procedure does not establish institutional execution. Unexamined dimensions and protected or unresolved dependencies remain unestablished; formal checks and execution retain their own constraint kinds. No total independent-human capacity or judgment score follows.", + "population_refs": [ + "SIT-POP-000031" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000018", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000051: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000051", + "SIT-CHK-000129", + "SIT-CHK-000255", + "SIT-CHK-000374", + "SIT-CHK-000429", + "SIT-CHK-000474", + "SIT-CHK-000505", + "SIT-CHK-000536", + "SIT-CHK-000570", + "SIT-CHK-000644" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000051", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000004" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000002", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000052: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000052", + "SIT-CHK-000130", + "SIT-CHK-000256", + "SIT-CHK-000375", + "SIT-CHK-000430", + "SIT-CHK-000475", + "SIT-CHK-000506", + "SIT-CHK-000537", + "SIT-CHK-000571", + "SIT-CHK-000645" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000052", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000021" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000010", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000053: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000053", + "SIT-CHK-000131", + "SIT-CHK-000257", + "SIT-CHK-000376", + "SIT-CHK-000431", + "SIT-CHK-000476", + "SIT-CHK-000507", + "SIT-CHK-000538", + "SIT-CHK-000572", + "SIT-CHK-000646" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000053", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000022" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000011", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000054: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000054", + "SIT-CHK-000132", + "SIT-CHK-000258", + "SIT-CHK-000377", + "SIT-CHK-000432", + "SIT-CHK-000477", + "SIT-CHK-000508", + "SIT-CHK-000539", + "SIT-CHK-000573", + "SIT-CHK-000647" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000054", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000023" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000012", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000055: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000055", + "SIT-CHK-000133", + "SIT-CHK-000259", + "SIT-CHK-000378", + "SIT-CHK-000433", + "SIT-CHK-000478", + "SIT-CHK-000509", + "SIT-CHK-000540", + "SIT-CHK-000574", + "SIT-CHK-000648" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000055", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000024" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000013", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000056: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000056", + "SIT-CHK-000134", + "SIT-CHK-000260", + "SIT-CHK-000379", + "SIT-CHK-000434", + "SIT-CHK-000479", + "SIT-CHK-000510", + "SIT-CHK-000541", + "SIT-CHK-000575", + "SIT-CHK-000649" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000056", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000025" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000014", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000057: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000057", + "SIT-CHK-000135", + "SIT-CHK-000261", + "SIT-CHK-000380", + "SIT-CHK-000435", + "SIT-CHK-000480", + "SIT-CHK-000511", + "SIT-CHK-000542", + "SIT-CHK-000576", + "SIT-CHK-000650" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000057", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000026" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000015", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000058: anomaly_context_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000058", + "SIT-CHK-000136", + "SIT-CHK-000262", + "SIT-CHK-000381", + "SIT-CHK-000436", + "SIT-CHK-000481", + "SIT-CHK-000512", + "SIT-CHK-000543", + "SIT-CHK-000577", + "SIT-CHK-000651" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "anomaly_context_disclosures", + "id": "SIT-RES-000058", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000027" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000016", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000059: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000059", + "SIT-CHK-000137", + "SIT-CHK-000263", + "SIT-CHK-000382", + "SIT-CHK-000437", + "SIT-CHK-000482", + "SIT-CHK-000513", + "SIT-CHK-000544", + "SIT-CHK-000578", + "SIT-CHK-000652" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000059", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000004" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000002", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000060: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000060", + "SIT-CHK-000138", + "SIT-CHK-000264", + "SIT-CHK-000383", + "SIT-CHK-000438", + "SIT-CHK-000483", + "SIT-CHK-000514", + "SIT-CHK-000545", + "SIT-CHK-000579", + "SIT-CHK-000653" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000060", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000021" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000010", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000061: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000061", + "SIT-CHK-000139", + "SIT-CHK-000265", + "SIT-CHK-000384", + "SIT-CHK-000439", + "SIT-CHK-000484", + "SIT-CHK-000515", + "SIT-CHK-000546", + "SIT-CHK-000580", + "SIT-CHK-000654" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000061", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000022" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000011", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000062: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000062", + "SIT-CHK-000140", + "SIT-CHK-000266", + "SIT-CHK-000385", + "SIT-CHK-000440", + "SIT-CHK-000485", + "SIT-CHK-000516", + "SIT-CHK-000547", + "SIT-CHK-000581", + "SIT-CHK-000655" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000062", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000023" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000012", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000063: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000063", + "SIT-CHK-000141", + "SIT-CHK-000267", + "SIT-CHK-000386", + "SIT-CHK-000441", + "SIT-CHK-000486", + "SIT-CHK-000517", + "SIT-CHK-000548", + "SIT-CHK-000582", + "SIT-CHK-000656" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000063", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000024" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000013", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000064: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000064", + "SIT-CHK-000142", + "SIT-CHK-000268", + "SIT-CHK-000387", + "SIT-CHK-000442", + "SIT-CHK-000487", + "SIT-CHK-000518", + "SIT-CHK-000549", + "SIT-CHK-000583", + "SIT-CHK-000657" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000064", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000025" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000014", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000065: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000065", + "SIT-CHK-000143", + "SIT-CHK-000269", + "SIT-CHK-000388", + "SIT-CHK-000443", + "SIT-CHK-000488", + "SIT-CHK-000519", + "SIT-CHK-000550", + "SIT-CHK-000584", + "SIT-CHK-000658" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000065", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000026" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000015", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000066: contestation_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000066", + "SIT-CHK-000144", + "SIT-CHK-000270", + "SIT-CHK-000389", + "SIT-CHK-000444", + "SIT-CHK-000489", + "SIT-CHK-000520", + "SIT-CHK-000551", + "SIT-CHK-000585", + "SIT-CHK-000659" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "contestation_disclosures", + "id": "SIT-RES-000066", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000027" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000016", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000067: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000067", + "SIT-CHK-000145", + "SIT-CHK-000271", + "SIT-CHK-000390", + "SIT-CHK-000445", + "SIT-CHK-000490", + "SIT-CHK-000521", + "SIT-CHK-000552", + "SIT-CHK-000586", + "SIT-CHK-000660" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000067", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000004" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000002", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000068: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000068", + "SIT-CHK-000146", + "SIT-CHK-000272", + "SIT-CHK-000391", + "SIT-CHK-000446", + "SIT-CHK-000491", + "SIT-CHK-000522", + "SIT-CHK-000553", + "SIT-CHK-000587", + "SIT-CHK-000661" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000068", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000021" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000010", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000069: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000069", + "SIT-CHK-000147", + "SIT-CHK-000273", + "SIT-CHK-000392", + "SIT-CHK-000447", + "SIT-CHK-000492", + "SIT-CHK-000523", + "SIT-CHK-000554", + "SIT-CHK-000588", + "SIT-CHK-000662" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000069", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000022" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000011", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000070: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000070", + "SIT-CHK-000148", + "SIT-CHK-000274", + "SIT-CHK-000393", + "SIT-CHK-000448", + "SIT-CHK-000493", + "SIT-CHK-000524", + "SIT-CHK-000555", + "SIT-CHK-000589", + "SIT-CHK-000663" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000070", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000023" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000012", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000071: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000071", + "SIT-CHK-000149", + "SIT-CHK-000275", + "SIT-CHK-000394", + "SIT-CHK-000449", + "SIT-CHK-000494", + "SIT-CHK-000525", + "SIT-CHK-000556", + "SIT-CHK-000590", + "SIT-CHK-000664" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000071", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000024" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000013", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000072: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000072", + "SIT-CHK-000150", + "SIT-CHK-000276", + "SIT-CHK-000395", + "SIT-CHK-000450", + "SIT-CHK-000495", + "SIT-CHK-000526", + "SIT-CHK-000557", + "SIT-CHK-000591", + "SIT-CHK-000665" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000072", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000025" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000014", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000073: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000073", + "SIT-CHK-000151", + "SIT-CHK-000277", + "SIT-CHK-000396", + "SIT-CHK-000451", + "SIT-CHK-000496", + "SIT-CHK-000527", + "SIT-CHK-000558", + "SIT-CHK-000592", + "SIT-CHK-000666" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000073", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000026" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000015", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000074: tail_stage_result_links + +```json +{ + "basis_refs": [ + "SIT-BAS-000005" + ], + "check_refs": [ + "SIT-CHK-000074", + "SIT-CHK-000152", + "SIT-CHK-000278", + "SIT-CHK-000397", + "SIT-CHK-000452", + "SIT-CHK-000497", + "SIT-CHK-000528", + "SIT-CHK-000559", + "SIT-CHK-000593", + "SIT-CHK-000667" + ], + "diagnostic_id": "SIT-M014", + "execution_state": "completed", + "field_key": "tail_stage_result_links", + "id": "SIT-RES-000074", + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed.", + "population_refs": [ + "SIT-POP-000027" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000016", + "value": { + "records": [] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000075: coverage_disclosures + +````json +{ + "basis_refs": [ + "SIT-BAS-000002" + ], + "check_refs": [ + "SIT-CHK-000075", + "SIT-CHK-000153", + "SIT-CHK-000189", + "SIT-CHK-000220", + "SIT-CHK-000668" + ], + "diagnostic_id": "SIT-M015", + "execution_state": "completed", + "field_key": "coverage_disclosures", + "id": "SIT-RES-000075", + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.", + "population_refs": [ + "SIT-POP-000009" + ], + "reason_refs": [], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000006", + "value": { + "records": [ + { + "fields": { + "native_record": { + "asserted_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "assertion_kind": "assessment", + "data": { + "assessment_kind": "coverage", + "details": { + "coverage_kind": "upstream_history", + "dimensions": [ + "acquisition" + ], + "member_refs": [ + "P4-E1", + "P4-O1" + ], + "omitted_refs": [], + "relation_types": [ + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on" + ], + "scope_note": "Exactly these two records and all their permitted acquisition-parent predicates.", + "state": "complete_for_scope", + "universe_enumerated": true + }, + "subject_refs": [ + "P4-I001" + ] + }, + "id": "P4-COVER", + "lifecycle_basis_ref_ids": [], + "lifecycle_state": "active", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "scope": { + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + }, + "inquiry_refs": [ + "P4-I001" + ] + } + }, + "qualification_state": "met", + "reason_codes": [] + }, + "qualifications": [ + "Completeness is attributed only to the exact supplied kind, subjects, predicates, dimension and finite member area." + ], + "source": { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + } + ] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +```` + +Reason details + +```json +[] +``` + +### SIT-RES-000076: declared_basis_inventory + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000076", + "SIT-CHK-000154", + "SIT-CHK-000190", + "SIT-CHK-000221", + "SIT-CHK-000669" + ], + "diagnostic_id": "SIT-M015", + "execution_state": "completed", + "field_key": "declared_basis_inventory", + "id": "SIT-RES-000076", + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.", + "population_refs": [ + "SIT-POP-000010" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000006", + "value": { + "categories": [ + { + "count": 4, + "label": "declaration", + "member_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ] + }, + { + "count": 5, + "label": "documented_record", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + }, + { + "count": 0, + "label": "upstream_inference", + "member_refs": [] + }, + { + "count": 0, + "label": "protected_attestation", + "member_refs": [] + }, + { + "count": 0, + "label": "unspecified", + "member_refs": [] + } + ], + "population_ref": "SIT-POP-000010", + "total": 9 + }, + "value_kind": "partition", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +### SIT-RES-000077: documentary_basis_gap_disclosures + +```json +{ + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005", + "SIT-BAS-000010", + "SIT-BAS-000011", + "SIT-BAS-000012", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "check_refs": [ + "SIT-CHK-000077", + "SIT-CHK-000155", + "SIT-CHK-000191", + "SIT-CHK-000222", + "SIT-CHK-000670" + ], + "diagnostic_id": "SIT-M015", + "execution_state": "completed", + "field_key": "documentary_basis_gap_disclosures", + "id": "SIT-RES-000077", + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.", + "population_refs": [ + "SIT-POP-000010" + ], + "reason_refs": [ + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ], + "result_origin": "attributed_record", + "result_state": "available", + "scope_ref": "SIT-SCP-000006", + "value": { + "records": [ + { + "fields": { + "native_record": { + "data": { + "actor_kind": "human", + "identity_disclosure": "pseudonymous" + }, + "id": "P4-ACTOR", + "kind": "actor", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ], + "source": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + }, + { + "fields": { + "native_record": { + "data": { + "artifact_kind": "document", + "content_evidence_refs": [], + "published_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "retrieved_at": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "version_label": "v1" + }, + "id": "P4-ART", + "kind": "artifact", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ], + "source": { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + }, + { + "fields": { + "native_record": { + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "context": "Only the supplied finite example.", + "version_label": "v1" + }, + "id": "P4-CLAIM", + "kind": "claim", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ], + "source": { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + }, + { + "fields": { + "native_record": { + "as_of": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "boundary": { + "criterion": "Only the supplied finite record identities and typed bindings.", + "description": "One fictional acquisition and its supplied contribution.", + "system_refs": [] + }, + "coverage_assertion_refs": [ + "P4-COVER" + ], + "dependency_dimensions": [ + "acquisition" + ], + "id": "P4-I001", + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "time_window": { + "end": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + }, + "start": { + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case.", + "state": "unknown", + "value": null + } + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ], + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + } + ] + }, + "value_kind": "record_disclosures", + "witness_refs": [] +} +``` + +Reason details + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000016", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000017", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000018", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000019", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000034", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000035", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000036", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000037", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + } +] +``` + +### SIT-RES-000078: reference_availability_inventory + +```json +{ + "basis_refs": [], + "check_refs": [ + "SIT-CHK-000078", + "SIT-CHK-000156", + "SIT-CHK-000192", + "SIT-CHK-000223", + "SIT-CHK-000671" + ], + "diagnostic_id": "SIT-M015", + "execution_state": "completed", + "field_key": "reference_availability_inventory", + "id": "SIT-RES-000078", + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked.", + "population_refs": [ + "SIT-POP-000008" + ], + "reason_refs": [], + "result_origin": "inventory", + "result_state": "available", + "scope_ref": "SIT-SCP-000006", + "value": { + "categories": [ + { + "count": 1, + "label": "supplied", + "member_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ] + }, + { + "count": 0, + "label": "locator_only", + "member_refs": [] + }, + { + "count": 0, + "label": "withheld", + "member_refs": [] + }, + { + "count": 0, + "label": "unavailable", + "member_refs": [] + } + ], + "population_ref": "SIT-POP-000008", + "total": 1 + }, + "value_kind": "partition", + "witness_refs": [] +} +``` + +Reason details + +```json +[] +``` + +## findings + +```json +[ + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M009" + ], + "id": "SIT-FND-000001", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000007" + ], + "reason_refs": [ + "SIT-RSN-000020" + ], + "scope_ref": "SIT-SCP-000004", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M009" + ], + "id": "SIT-FND-000002", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000007" + ], + "reason_refs": [ + "SIT-RSN-000021" + ], + "scope_ref": "SIT-SCP-000004", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000003", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000001" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000004", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000002" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000005", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000003" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000006", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000004" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000007", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000008" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000008", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000009" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000009", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000010" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000010", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000019" + ], + "reason_refs": [ + "SIT-RSN-000011" + ], + "scope_ref": "SIT-SCP-000008", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000011", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000005" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000012", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000006" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000013", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000007" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000014", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000012" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000015", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000013" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000016", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000014" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000005" + ], + "condition_code": "externality_stage_limitation", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M010" + ], + "id": "SIT-FND-000017", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition.", + "observation_kind": "qualification_gap", + "population_refs": [ + "SIT-POP-000020" + ], + "reason_refs": [ + "SIT-RSN-000038" + ], + "scope_ref": "SIT-SCP-000009", + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "threat_family_refs": [ + "SIT-TH012" + ], + "witness": { + "components": [ + { + "member_count": 1, + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "type": "selected_members" + } + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000004" + ], + "condition_code": "scoped_no_witness", + "contrary_input_refs": [], + "diagnostic_refs": [], + "id": "SIT-FND-000018", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. No outside-world independence or passed threat check follows.", + "observation_kind": "no_witness_in_examined_view", + "population_refs": [], + "reason_refs": [], + "scope_ref": "SIT-SCP-000021", + "statement": "The completed typed search found no eligible witness between these endpoints in this examined supplied view.", + "threat_family_refs": [], + "witness": { + "components": [ + { + "edges": [], + "examined_edges": [], + "examined_nodes": [ + { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + } + ], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "no_witness_in_examined_view", + "member_count": 5, + "members": [], + "nodes": [], + "observations": [ + { + "eligible": false, + "predicate": null, + "reason_codes": [ + "scope_unestablished" + ], + "source": { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + "target": { + "kind": "evidence_reference", + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + } + } + ], + "starts": [ + { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + } + ], + "target": { + "kind": "evidence_reference", + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + }, + "terminals": [ + { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + } + ], + "type": "graph_witness" + } + ], + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000003", + "SIT-BAS-000004" + ], + "condition_code": "scoped_no_witness", + "contrary_input_refs": [], + "diagnostic_refs": [], + "id": "SIT-FND-000019", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. No outside-world independence or passed threat check follows.", + "observation_kind": "no_witness_in_examined_view", + "population_refs": [], + "reason_refs": [], + "scope_ref": "SIT-SCP-000022", + "statement": "The completed typed search found no eligible witness between these endpoints in this examined supplied view.", + "threat_family_refs": [], + "witness": { + "components": [ + { + "edges": [], + "examined_edges": [], + "examined_nodes": [ + { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + } + ], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "no_witness_in_examined_view", + "member_count": 5, + "members": [], + "nodes": [], + "observations": [ + { + "eligible": false, + "predicate": null, + "reason_codes": [ + "scope_unestablished" + ], + "source": { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + "target": { + "kind": "evidence_reference", + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + } + } + ], + "starts": [ + { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + } + ], + "target": { + "kind": "evidence_reference", + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + }, + "terminals": [ + { + "kind": "assertion", + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + } + ], + "type": "graph_witness" + } + ], + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000004", + "SIT-BAS-000005", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "condition_code": "transformation_path_witness", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M002", + "SIT-M004", + "SIT-M005", + "SIT-M007" + ], + "id": "SIT-FND-000020", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation.", + "observation_kind": "positive_witness", + "population_refs": [], + "reason_refs": [], + "scope_ref": "SIT-SCP-000019", + "statement": "An eligible explicit path connects these exact endpoints in the named typed view.", + "threat_family_refs": [ + "SIT-TH002" + ], + "witness": { + "components": [ + { + "edges": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "examined_edges": [], + "examined_nodes": [], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "path", + "member_count": 3, + "members": [], + "nodes": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "observations": [], + "starts": [], + "target": null, + "terminals": [], + "type": "graph_witness" + }, + { + "edges": [], + "examined_edges": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "examined_nodes": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "complete_trace", + "member_count": 6, + "members": [], + "nodes": [], + "observations": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "starts": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + } + ], + "target": null, + "terminals": [ + { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "type": "graph_witness" + } + ], + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000004", + "SIT-BAS-000005", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "condition_code": "transformation_path_witness", + "contrary_input_refs": [], + "diagnostic_refs": [ + "SIT-M006" + ], + "id": "SIT-FND-000021", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation.", + "observation_kind": "positive_witness", + "population_refs": [], + "reason_refs": [], + "scope_ref": "SIT-SCP-000020", + "statement": "An eligible explicit path connects these exact endpoints in the named typed view.", + "threat_family_refs": [ + "SIT-TH002" + ], + "witness": { + "components": [ + { + "edges": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "examined_edges": [], + "examined_nodes": [], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "path", + "member_count": 3, + "members": [], + "nodes": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "observations": [], + "starts": [], + "target": null, + "terminals": [], + "type": "graph_witness" + }, + { + "edges": [], + "examined_edges": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "examined_nodes": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "complete_trace", + "member_count": 5, + "members": [], + "nodes": [], + "observations": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "starts": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + } + ], + "target": null, + "terminals": [], + "type": "graph_witness" + } + ], + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + }, + { + "basis_refs": [ + "SIT-BAS-000003", + "SIT-BAS-000004", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "condition_code": "transformation_path_witness", + "contrary_input_refs": [], + "diagnostic_refs": [], + "id": "SIT-FND-000022", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation.", + "observation_kind": "positive_witness", + "population_refs": [], + "reason_refs": [], + "scope_ref": "SIT-SCP-000023", + "statement": "An eligible explicit path connects these exact endpoints in the named typed view.", + "threat_family_refs": [ + "SIT-TH002" + ], + "witness": { + "components": [ + { + "edges": [ + { + "eligible": true, + "predicate": "originates_from", + "reason_codes": [], + "source": { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "target": { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + } + ], + "examined_edges": [], + "examined_nodes": [], + "exit_edges": [], + "frontiers": [], + "internal_edges": [], + "kind": "path", + "member_count": 3, + "members": [], + "nodes": [ + { + "kind": "evidence_item", + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + }, + { + "kind": "origin_event", + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + } + ], + "observations": [], + "starts": [], + "target": null, + "terminals": [], + "type": "graph_witness" + } + ], + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + } +] +``` + +## reasons + +```json +[ + { + "affected_result_refs": [ + "SIT-RES-000034" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000001", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000035" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000002", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000036" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000003", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000037" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000004", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000031" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000005", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000032" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000006", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000033" + ], + "classification": "evidence_gap", + "code": "cohort_anchor_missing", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000007", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000034" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000008", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000035" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000009", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000036" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000010", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000037" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000011", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000008" + }, + { + "affected_result_refs": [ + "SIT-RES-000031" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000012", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000032" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000013", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000033" + ], + "classification": "evidence_gap", + "code": "cohort_universe_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000014", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + }, + { + "affected_result_refs": [ + "SIT-RES-000019" + ], + "classification": "structural_inapplicability", + "code": "completion_interval_not_needed", + "detail": "Exact scoped contribution limitation; positive records and the full denominator remain visible.", + "id": "SIT-RSN-000015", + "input_refs": [], + "scope_ref": "SIT-SCP-000020" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000016", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000017", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000018", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "documentary_basis_incomplete", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000019", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000029" + ], + "classification": "evidence_gap", + "code": "externality_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000020", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000004" + }, + { + "affected_result_refs": [ + "SIT-RES-000030" + ], + "classification": "evidence_gap", + "code": "externality_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000021", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000004" + }, + { + "affected_result_refs": [ + "SIT-RES-000009" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000022", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + }, + { + "affected_result_refs": [ + "SIT-RES-000010" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000023", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + }, + { + "affected_result_refs": [ + "SIT-RES-000011" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000024", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + }, + { + "affected_result_refs": [ + "SIT-RES-000012" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "id": "SIT-RSN-000025", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000017" + }, + { + "affected_result_refs": [ + "SIT-RES-000049" + ], + "classification": "evidence_gap", + "code": "missing_comparison_assessment", + "detail": "The supplied review/process record retains this exact qualification limit. Visible contribution does not resolve missing process evidence or dependencies.", + "id": "SIT-RSN-000026", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000018" + }, + { + "affected_result_refs": [ + "SIT-RES-000025" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000027", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000026" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000028", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000027" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000029", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000028" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000030", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000038" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000031", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000039" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000032", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000040" + ], + "classification": "structural_inapplicability", + "code": "no_applicable_subject", + "detail": "No eligible subject tuple was supplied for this finite operation.", + "id": "SIT-RSN-000033", + "input_refs": [], + "scope_ref": "SIT-SCP-000005" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000034", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000035", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000036", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000077" + ], + "classification": "evidence_gap", + "code": "support_uninspectable", + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "id": "SIT-RSN-000037", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000006" + }, + { + "affected_result_refs": [ + "SIT-RES-000032" + ], + "classification": "evidence_gap", + "code": "transition_baseline_unestablished", + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "id": "SIT-RSN-000038", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "scope_ref": "SIT-SCP-000009" + } +] +``` + +## release_limits + +```json +[ + "Offline analysis of caller-supplied records only.", + "Source identity, authenticity and external events are not independently authenticated.", + "No live monitoring or active content-level poisoning, injection or authorship detection was performed.", + "No universal truth, integrity, independence or safety score is produced.", + "No automatic intervention, source contact or changes to the audited system are performed.", + "Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence." +] +``` diff --git a/tests/golden/phase4_report_expectations.json b/tests/golden/phase4_report_expectations.json new file mode 100644 index 0000000..2531594 --- /dev/null +++ b/tests/golden/phase4_report_expectations.json @@ -0,0 +1,18151 @@ +{ + "case_id": "P4-REFERENCE-ONE-ORIGIN", + "authorship": "Independently authored from the accepted specifications, the finite N15 dossier, and static reading of accepted private owner contracts. No product execution or serializer output was used as source data to generate or rerecord this oracle. Frozen private execution only cross-checked already-authored expectations; source-resolved corrections are recorded separately. Same assistant lineage; no independent external human audit is claimed.", + "sources": { + "logical_contract": "OBSERVABILITY_AND_REPORTING.md sections12-19", + "meaning": "DEFINITIONS_AND_UNITS.md sections20-28", + "identity_and_bytes": "REPOSITORY_ARCHITECTURE.md sections17-19; GOVERNANCE_AND_HANDOFF.md section22.5", + "privacy": "PRIVACY_AND_DATA_HANDLING.md section4" + }, + "expected_core_facts": { + "seed_members": [ + "P4-E1" + ], + "artifact_members": [ + "P4-ART" + ], + "origin_members": [ + "P4-O1" + ], + "per_seed_origins": { + "P4-E1": [ + "P4-O1" + ] + }, + "incidence_counts": { + "P4-O1": 1 + }, + "documentary_resolution_fraction": { + "numerator": 1, + "denominator": 1 + }, + "single_origin_contribution_hhi": { + "numerator": 1, + "denominator": 1 + }, + "immediate_dispositions": { + "inherited_only": [], + "origin_only": [ + "P4-E1" + ], + "mixed": [], + "unresolved": [] + }, + "inherited_only_seed_fraction": { + "numerator": 0, + "denominator": 1 + } + }, + "scope_counts": { + "planned_jobs": 22, + "results": 78, + "distinct_field_keys": 57, + "observability_domains": 5, + "capabilities": 15 + }, + "mapping_decisions": [ + { + "source": "OBS16.1-16.8; Architecture18.1; Governance22.5", + "decision": "All sixteen root meanings are retained. InputRefs preserve collection, identifier and selector in their separate namespace. Private scope operation anchors determine identity but are not added as public Scope members. Same anchors with different complete bodies retain distinct scopes/populations. Check identity includes its actual Result; Reason identity includes affected-result anchor links, so no cross-result reason union invents equivalent findings." + }, + { + "source": "runtime/boundary.py:_plan_analysis; analysis/context.py:_context_results", + "decision": "The finite case has22 planned jobs and78 atomic Results covering57 leaf names. M014 has eight independently anchored scopes: five canonical assurance queries, one PARENT graph query, one exact-Claim context and one Inquiry context. All24 context Results remain; an empty native inventory never erases its operation scope." + }, + { + "source": "OBS12.3,16.7; runtime/boundary.py:_planned_nonresults", + "decision": "M008 and M011 have no actual represented role/route tuple. Their seven cells preserve the accepted structural no_applicable_subject explanation, null value and completed/not_applicable state. No grant is invented and no outside-world absence or independence follows. This fixed finite-job representation does not make every missing record structurally inapplicable." + }, + { + "source": "OBS17; Definitions21.3,26; process_comparison.py:_comparison_results; presence.py:_presence_results", + "decision": "Missing comparison membership stays unavailable, not a zero independent count. M009 missing externality assessment is unavailable while the explicitly examined stage-link inventory is available empty. M010 absent cohorts remain unestablished with null fractions/intervals; no empty numerical denominator or fabricated endpoint is introduced. Existing field-specific Reasons and checks are retained exactly." + }, + { + "source": "analysis/inventory.py:_inventory_result,_inventory_profile; OBS16.3", + "decision": "M001 inventory witness members equal the complete corresponding Count Population.member_refs. That Population is the public home for every such member; no artificial Finding condition or second metric is created." + }, + { + "source": "analysis/process_comparison.py:_selected_witness,_checks; analysis/inventory.py:_comparison_inventory_facts", + "decision": "M003 comparison witness members are preserved by the four selected Populations. Its absent assessment is explicit in the Scope and missing-comparison Reason. Examined-assessment and selection source material is retained in actual PC03 InputRefs; this empty finite case has no hidden comparison witness to replace with a positive Finding." + }, + { + "source": "analysis/presence.py:_presence_facts,_presence_results; analysis/context.py:_context_facts,_context_results", + "decision": "Presence selected-members material is the union of its actual basis and transition basis; the three corresponding Scope/Population/Basis selections preserve Inquiry membership, and the existing qualification Findings retain selected_members components. Empty context owner material is preserved by the anomaly/contestation Basis union plus the exact context Population. Tail links retain their original M010 populations rather than donating a second stage cohort." + }, + { + "source": "analysis/correction_outcomes.py:_correction_outcome_facts; analysis/human_review.py:_human_review_facts", + "decision": "The empty correction-case witness preserves Inquiry and the four actual inquiry selection selectors through Basis and PC03 inputs. The empty human-review witness preserves its actual Inquiry and target_object_refs selection as one native-only corrective_independence_disclosures row retaining the exact InputRef selector and SelectedInquiry.target_object_refs. All original disclosure rows, including original support rows, precede examined-assessment rows in their original order, then actual source-reference slots in their original order; duplicate rows/slots are preserved. Scan rows carry the exact qualification Examined assessment only; this scan does not establish applicability or qualification for the selected review scope. Source rows carry Actual owner selection/source reference slot; this record does not establish an applicable review or independent process. No extra Basis entry, Check outcome, qualification or condition is invented. Its explicit empty Population remains separate and missing-comparison qualification. Their finite inventories are not findings of global non-change or no human judgment." + }, + { + "source": "analysis/origins.py:_trace_witness,_witness_refs; contribution_profile.py:_immediate_witness; graph/witnesses.py; OBS18.1-18.2", + "decision": "Existing supplied E1-to-O1 path proof is shown with the existing positive_witness/transformation_path_witness condition at each original origin/immediate owner Scope. Both ordered nodes and the exact PARENT edge are retained. Origin complete_trace has6 material slots and retains terminal O1; immediate complete_trace has5 and makes no terminal claim. Every trace array/observation remains in the same owner-scope Finding. No report-layer graph search, inferred new path or generic carrier condition is introduced. The narrower M014 query Finding remains independent." + }, + { + "source": "OBS16.6; Privacy4.2; W02 closed-schema mapping", + "decision": "Basis metadata comes from the source object original Provenance even when source.selector points to a binding field. Assertion scope/time/lifecycle and native Record/Inquiry time fields retain their names and unknown states. EvidenceReference availability/provider/attestor and scope_note remain attributable; excerpt and locator are not automatically copied. Basis check_refs link only actual PC05-PC10 checks of Results that use that precise BasisRef and whose input refers to the same source object; no global met check grants documentary qualification." + }, + { + "source": "OBS17; Privacy4.2; W02 SelectedNative mapping", + "decision": "The origin-boundary, coverage and documentary-basis-gap disclosures explicitly normalize original selected source fields under fields.native_record; qualification_state and reason_codes remain separate derived fields. Actor display_name, Artifact work_key/locators and Claim text are not automatically exported. Method, native context, coverage state, source qualification and the supplied Unicode/backticks are retained. Original native ordered arrays keep their order." + }, + { + "source": "Architecture18.3; OBS16.8", + "decision": "The exact metadata qualifications and Capability scope_note in reference_document are fixed W02 engineering strings. Run timestamps are unknown with not_recorded_by_SIT-RP-0.1. In-process raw_file_digest is null; no canonical object hash is invented. Six fixed release-limit sentences are versioned tool statements." + }, + { + "source": "Architecture17.3,18.3; Governance22.5", + "decision": "JSON is compact J plus one LF. Markdown uses root-table order, complete pretty-J blocks, minimal safe backtick fences, each Result and its full Reason details, and the three unreduced available-fraction decimal lines. Reference bytes were authored from this independent logical document, never captured from a product renderer." + } + ], + "oracle_corrections": [ + { + "finding": "Initial static PC04 expectation for four M015 leaves was met; frozen-core differential exposed a discrepancy.", + "source_resolution": "Static reread of boundary._execute_job, projections._record_scope and semantics._analysis_scope confirms assurance context dimension=None excludes acquisition-specific BOUND/PARENT support observations. PC04 is therefore unmet while the four finite metadata inventories remain available. Original failed expectation and differential evidence were preserved; no product output was used to generate expected bytes." + }, + { + "finding": "An initial M003 explanatory record grouped four affected Result refs.", + "source_resolution": "Governance22.5 full semantic-body identity and the frozen per-field _reasons constructor require four independent single-affected Result Reasons. The corrected oracle preserves all four and does not synthesize a union before deduplication." + } + ], + "constructed_mapping_oracles": { + "human_review_scan": { + "status": "Constructed mapping-definition example only; no product projection or audit execution is claimed.", + "members": [ + { + "collection": "records", + "identifier": "P4-ORACLE-EVALUATION", + "selector": null + } + ], + "examined_assessments": [ + { + "collection": "assertions", + "identifier": "P4-SCAN-COMPARISON-B", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-SCAN-COMPARISON-A", + "selector": null + } + ], + "source_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "owner_member_count": 5, + "primary_rows": [], + "projected_rows": [ + { + "source": { + "collection": "assertions", + "identifier": "P4-SCAN-COMPARISON-B", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-SCAN-COMPARISON-B", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "independence", + "subject_refs": [ + "P4-ACTOR", + "P4-O1" + ], + "details": { + "comparison_form": "pairwise", + "dimension": "organizational_control", + "conclusion": "unknown", + "examined_dependency_refs": [], + "unexamined_dimensions": [ + "acquisition" + ], + "coverage_ref": null, + "scope_note": "Constructed scan context only; not an applicable assessment for the selected acquisition review." + } + } + } + }, + "qualifications": [ + "Examined assessment only; this scan does not establish applicability or qualification for the selected review scope." + ] + }, + { + "source": { + "collection": "assertions", + "identifier": "P4-SCAN-COMPARISON-A", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-SCAN-COMPARISON-A", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "independence", + "subject_refs": [ + "P4-ACTOR", + "P4-O1" + ], + "details": { + "comparison_form": "pairwise", + "dimension": "organizational_control", + "conclusion": "unknown", + "examined_dependency_refs": [], + "unexamined_dimensions": [ + "acquisition" + ], + "coverage_ref": null, + "scope_note": "Constructed scan context only; not an applicable assessment for the selected acquisition review." + } + } + } + }, + "qualifications": [ + "Examined assessment only; this scan does not establish applicability or qualification for the selected review scope." + ] + }, + { + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + }, + "fields": { + "native_record": { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + }, + "qualifications": [ + "Actual owner selection/source reference slot; this record does not establish an applicable review or independent process." + ] + }, + { + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + }, + "fields": { + "native_record": { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + }, + "qualifications": [ + "Actual owner selection/source reference slot; this record does not establish an applicable review or independent process." + ] + } + ], + "scan_qualification": "Examined assessment only; this scan does not establish applicability or qualification for the selected review scope.", + "source_qualification": "Actual owner selection/source reference slot; this record does not establish an applicable review or independent process." + } + }, + "reference_document": { + "contract_version": "sit-report/0.1", + "report_kind": "audit_report", + "report_id": "SIT-RPT-000001", + "run": { + "processing_state": "completed", + "tool_name": "Source Integrity Toolkit", + "tool_version": "0.1.0.dev0", + "input_contract_version": "sit-bundle/0.1", + "requested_diagnostic_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "completed_diagnostic_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "started_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "not_recorded_by_SIT-RP-0.1" + }, + "finished_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "not_recorded_by_SIT-RP-0.1" + }, + "diagnostics": [], + "qualifications": [ + "SIT-RP-0.1", + "Wall-clock start and finish times are not recorded by SIT-RP-0.1." + ] + }, + "input_identity": { + "source_mode": "in_process", + "input_contract_version": "sit-bundle/0.1", + "bundle_id": "P4-BUNDLE-REFERENCE", + "snapshot_id": "P4-SNAPSHOT-REFERENCE-01", + "declared_predecessor": null, + "raw_file_digest": null, + "qualifications": [ + "In-process input has no raw file digest; no canonical object fingerprint is invented." + ] + }, + "input_validation": { + "state": "accepted", + "diagnostics": [] + }, + "scopes": [ + { + "id": "SIT-SCP-000001", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [], + "target_refs": [], + "dependency_dimension": null, + "graph_view": null, + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Explicit supplied seed positions only; no dimension, graph eligibility, historical reconstruction or complete outside-world source inventory is asserted." + ] + }, + { + "id": "SIT-SCP-000002", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000003", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": null, + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Explicit supplied seed positions only; no dimension, graph eligibility, historical reconstruction or complete outside-world source inventory is asserted." + ] + }, + { + "id": "SIT-SCP-000004", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": null, + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence." + ] + }, + { + "id": "SIT-SCP-000005", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": null, + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "The structural job key identifies the exact planned operation; no outside-world absence is inferred." + ] + }, + { + "id": "SIT-SCP-000006", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "assertion_assurance", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Explicit named metadata population only; omitted dimensions/views are not generalized." + ] + }, + { + "id": "SIT-SCP-000007", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "correction_outcomes", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Exact relevant selected submissions and their case_ref-linked events. Whole-case counts remain separate from an explicitly selected declared-target display subset." + ] + }, + { + "id": "SIT-SCP-000008", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "pipeline_stages", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence." + ] + }, + { + "id": "SIT-SCP-000009", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "pipeline_stages", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Native exact subject/key and declared finite coverage only; no implicit stage sequence or temporal persistence." + ] + }, + { + "id": "SIT-SCP-000010", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000011", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000012", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000013", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000014", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000015", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000016", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": null, + "graph_view": "stance_contestation", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Supplied Inquiry/Claim context; null-Claim anomalies keep their structural null. Every linked stage retains its separate original cohort scope." + ] + }, + { + "id": "SIT-SCP-000017", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": "acquisition", + "graph_view": null, + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "One supplied assessment, or an explicitly absent requested comparison. Selected exact Claims are a scoped query; the unchanged native assessment retains its full original scope. Snapshot structure does not reconstruct unknown lifecycle history." + ] + }, + { + "id": "SIT-SCP-000018", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": "acquisition", + "graph_view": null, + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Selected actual review/process subjects only; the comparison owner retains each complete native comparison set and scope." + ] + }, + { + "id": "SIT-SCP-000019", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": "acquisition", + "graph_view": "claim_origin", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "qualifications": [ + "Complete finite supplied view only; current snapshot does not reconstruct lifecycle history or hidden roots." + ] + }, + { + "id": "SIT-SCP-000020", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [], + "dependency_dimension": "acquisition", + "graph_view": "claim_origin", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "qualifications": [ + "Immediate EvidenceItem layer only; distant ancestry and semantic novelty are outside this result." + ] + }, + { + "id": "SIT-SCP-000021", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "dependency_dimension": null, + "graph_view": "assertion_assurance", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation." + ] + }, + { + "id": "SIT-SCP-000022", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "dependency_dimension": null, + "graph_view": "assertion_assurance", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation." + ] + }, + { + "id": "SIT-SCP-000023", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "target_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "dependency_dimension": "acquisition", + "graph_view": "claim_origin", + "temporal_basis": "snapshot_structural", + "requested_time": null, + "coverage_refs": [], + "qualifications": [ + "Finite supplied input selection; omitted dimensions and unexamined histories remain outside this observation." + ] + } + ], + "populations": [ + { + "id": "SIT-POP-000001", + "scope_ref": "SIT-SCP-000001", + "unit": "artifact_record", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "selection_rule": "A(I): resolved explicit seed Artifacts union resolved Artifact bindings of every Inquiry seed EvidenceItem.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ] + }, + { + "id": "SIT-POP-000002", + "scope_ref": "SIT-SCP-000001", + "unit": "artifact_record", + "member_refs": [], + "selection_rule": "Resolved explicit Artifact seeds lacking any seed EvidenceItem binding in this entire Inquiry.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ] + }, + { + "id": "SIT-POP-000003", + "scope_ref": "SIT-SCP-000001", + "unit": "unresolved_reference", + "member_refs": [], + "selection_rule": "U_A(I): unique unresolved Artifact reference IDs at the same explicit Inquiry seed source positions.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ] + }, + { + "id": "SIT-POP-000004", + "scope_ref": "SIT-SCP-000002", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000005", + "scope_ref": "SIT-SCP-000003", + "unit": "artifact_record", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "selection_rule": "A(I,C): unique resolved Artifact IDs bound by E(I,C); unresolved endpoints are excluded.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ] + }, + { + "id": "SIT-POP-000006", + "scope_ref": "SIT-SCP-000003", + "unit": "evidence_item", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "selection_rule": "E(I,C): explicitly listed resolved seed EvidenceItem IDs whose exact Claim binding is C.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Complete finite ID set at these supplied positions; an empty set is a record inventory zero, never zero actual or independent sources." + ] + }, + { + "id": "SIT-POP-000007", + "scope_ref": "SIT-SCP-000004", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Unestablished native membership is retained as a declaration; it supplies no numerical denominator." + ] + }, + { + "id": "SIT-POP-000008", + "scope_ref": "SIT-SCP-000006", + "unit": "evidence_reference", + "member_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "selection_rule": "Explicit named EvidenceReference IDs, deduplicated within this snapshot.", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000009", + "scope_ref": "SIT-SCP-000006", + "unit": "record", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "selection_rule": "Explicit named coverage Assertion IDs, deduplicated within this snapshot.", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000010", + "scope_ref": "SIT-SCP-000006", + "unit": "record", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "selection_rule": "Explicit named record IDs, deduplicated within this snapshot.", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000011", + "scope_ref": "SIT-SCP-000007", + "unit": "case_target", + "member_refs": [], + "selection_rule": "Exact whole-case documentary_linked_change_target_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000012", + "scope_ref": "SIT-SCP-000007", + "unit": "correction_case", + "member_refs": [], + "selection_rule": "Exact whole-case cases_with_documentary_linked_change_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000013", + "scope_ref": "SIT-SCP-000007", + "unit": "correction_case", + "member_refs": [], + "selection_rule": "Exact whole-case correction_case_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000014", + "scope_ref": "SIT-SCP-000007", + "unit": "correction_change_record", + "member_refs": [], + "selection_rule": "Exact whole-case linked_change_event_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000015", + "scope_ref": "SIT-SCP-000007", + "unit": "handling_event", + "member_refs": [], + "selection_rule": "Exact whole-case handling_event_record_count; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000016", + "scope_ref": "SIT-SCP-000007", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact whole-case correction_case_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000017", + "scope_ref": "SIT-SCP-000007", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact whole-case correction_target_change_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000018", + "scope_ref": "SIT-SCP-000007", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact whole-case reported_capacity_disclosures; finite supplied membership under Definitions 20.2/27.2. A downstream display subset neither replaces this unit nor changes its count.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world or all-downstream completeness." + ] + }, + { + "id": "SIT-POP-000019", + "scope_ref": "SIT-SCP-000008", + "unit": "pipeline_member", + "member_refs": [], + "selection_rule": "Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "unestablished", + "qualifications": [ + "Unestablished native membership is retained as a declaration; it supplies no numerical denominator." + ] + }, + { + "id": "SIT-POP-000020", + "scope_ref": "SIT-SCP-000009", + "unit": "pipeline_member", + "member_refs": [], + "selection_rule": "Exact native assessment subjects or the unchanged full member_refs of the selected finite coverage.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "unestablished", + "qualifications": [ + "Unestablished native membership is retained as a declaration; it supplies no numerical denominator." + ] + }, + { + "id": "SIT-POP-000021", + "scope_ref": "SIT-SCP-000010", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000022", + "scope_ref": "SIT-SCP-000011", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000023", + "scope_ref": "SIT-SCP-000012", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000024", + "scope_ref": "SIT-SCP-000013", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000025", + "scope_ref": "SIT-SCP-000014", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000026", + "scope_ref": "SIT-SCP-000015", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000027", + "scope_ref": "SIT-SCP-000016", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact finite supplied context records; stage references retain M010 populations separately.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "No outside-world consensus or anomaly denominator." + ] + }, + { + "id": "SIT-POP-000028", + "scope_ref": "SIT-SCP-000017", + "unit": "comparison_member", + "member_refs": [], + "selection_rule": "Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders." + ] + }, + { + "id": "SIT-POP-000029", + "scope_ref": "SIT-SCP-000017", + "unit": "comparison_member", + "member_refs": [], + "selection_rule": "Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "membership_state": "unestablished", + "qualifications": [ + "An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders." + ] + }, + { + "id": "SIT-POP-000030", + "scope_ref": "SIT-SCP-000017", + "unit": "origin_event", + "member_refs": [], + "selection_rule": "Exactly the subject_refs of this identified supplied independence assessment; no seed, pair union or inferred set.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "membership_state": "unestablished", + "qualifications": [ + "An absent assessment does not establish an empty comparison population. Compatible unresolved members remain placeholders." + ] + }, + { + "id": "SIT-POP-000031", + "scope_ref": "SIT-SCP-000018", + "unit": "record", + "member_refs": [], + "selection_rule": "Exactly the requested actual subjects, or the explicit Evaluation targets of this Inquiry; no all-record cohort or hidden human-judgment population.", + "coverage_refs": [], + "basis_refs": [ + "SIT-BAS-000005" + ], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "This finite supplied selection confers no outside-world completeness." + ] + }, + { + "id": "SIT-POP-000032", + "scope_ref": "SIT-SCP-000019", + "unit": "evidence_item", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "selection_rule": "The complete explicit Claim-bound E(I,C), without dropping unresolved or multiple-origin rows.", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000033", + "scope_ref": "SIT-SCP-000019", + "unit": "evidence_item", + "member_refs": [], + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: seed_items_with_unresolved_ancestry_count", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000034", + "scope_ref": "SIT-SCP-000019", + "unit": "origin_event", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: documentary_origin_boundary_record_count", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000035", + "scope_ref": "SIT-SCP-000019", + "unit": "origin_event", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: reached_origin_record_count", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000036", + "scope_ref": "SIT-SCP-000019", + "unit": "record", + "member_refs": [], + "selection_rule": "Exact source records with completed owner-local disclosures: ancestry_gap_disclosures", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000037", + "scope_ref": "SIT-SCP-000019", + "unit": "record", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + } + ], + "selection_rule": "Exact source records with completed owner-local disclosures: origin_boundary_disclosures", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000038", + "scope_ref": "SIT-SCP-000019", + "unit": "record", + "member_refs": [], + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: unqualified_terminal_record_count", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000039", + "scope_ref": "SIT-SCP-000019", + "unit": "unresolved_reference", + "member_refs": [], + "selection_rule": "Unique exact supplied IDs after every explicit seed and relevant branch was examined: unresolved_frontier_reference_count", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + }, + { + "id": "SIT-POP-000040", + "scope_ref": "SIT-SCP-000020", + "unit": "evidence_item", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "selection_rule": "The complete explicit Claim-bound E(I,C), without dropping unresolved or multiple-origin rows.", + "coverage_refs": [], + "basis_refs": [], + "membership_state": "enumerated_for_scope", + "qualifications": [ + "Each explicit source ID is counted once; this is not a claim that the external universe is complete." + ] + } + ], + "basis_index": [ + { + "id": "SIT-BAS-000001", + "source": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": { + "inquiry_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "time": { + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "lifecycle": { + "state": "active", + "basis_refs": [] + }, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [ + "SIT-CHK-000224", + "SIT-CHK-000225", + "SIT-CHK-000226", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000235", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000298", + "SIT-CHK-000299", + "SIT-CHK-000300", + "SIT-CHK-000305", + "SIT-CHK-000306", + "SIT-CHK-000307", + "SIT-CHK-000308", + "SIT-CHK-000309", + "SIT-CHK-000310", + "SIT-CHK-000311", + "SIT-CHK-000312", + "SIT-CHK-000313", + "SIT-CHK-000343", + "SIT-CHK-000344", + "SIT-CHK-000345", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000354", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000398", + "SIT-CHK-000399", + "SIT-CHK-000400", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000409", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416" + ] + }, + { + "id": "SIT-BAS-000002", + "source": { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": { + "inquiry_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "time": { + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "lifecycle": { + "state": "active", + "basis_refs": [] + }, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [ + "SIT-CHK-000224", + "SIT-CHK-000225", + "SIT-CHK-000226", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000235", + "SIT-CHK-000236", + "SIT-CHK-000237", + "SIT-CHK-000238", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000279", + "SIT-CHK-000280", + "SIT-CHK-000281", + "SIT-CHK-000286", + "SIT-CHK-000287", + "SIT-CHK-000288", + "SIT-CHK-000289", + "SIT-CHK-000290", + "SIT-CHK-000291", + "SIT-CHK-000292", + "SIT-CHK-000293", + "SIT-CHK-000294", + "SIT-CHK-000295", + "SIT-CHK-000296", + "SIT-CHK-000297", + "SIT-CHK-000343", + "SIT-CHK-000344", + "SIT-CHK-000345", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000354", + "SIT-CHK-000355", + "SIT-CHK-000356", + "SIT-CHK-000357", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000398", + "SIT-CHK-000399", + "SIT-CHK-000400", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000409", + "SIT-CHK-000410", + "SIT-CHK-000411", + "SIT-CHK-000412", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416" + ] + }, + { + "id": "SIT-BAS-000003", + "source": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": { + "inquiry_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "claim_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "time": { + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "lifecycle": { + "state": "active", + "basis_refs": [] + }, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [ + "SIT-CHK-000226", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000235", + "SIT-CHK-000236", + "SIT-CHK-000237", + "SIT-CHK-000238", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000345", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000354", + "SIT-CHK-000355", + "SIT-CHK-000356", + "SIT-CHK-000357", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000400", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000409", + "SIT-CHK-000410", + "SIT-CHK-000411", + "SIT-CHK-000412", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416" + ] + }, + { + "id": "SIT-BAS-000004", + "source": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + "basis_kind": null, + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": null, + "support_refs": [], + "availability": "supplied", + "scope": null, + "time": {}, + "lifecycle": null, + "qualifications": [ + "Supplied fictional material; external authenticity is not examined." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000005", + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": { + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000006", + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": { + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [ + "SIT-CHK-000227", + "SIT-CHK-000228", + "SIT-CHK-000229", + "SIT-CHK-000230", + "SIT-CHK-000317", + "SIT-CHK-000318", + "SIT-CHK-000319", + "SIT-CHK-000320", + "SIT-CHK-000346", + "SIT-CHK-000347", + "SIT-CHK-000348", + "SIT-CHK-000349", + "SIT-CHK-000401", + "SIT-CHK-000402", + "SIT-CHK-000403", + "SIT-CHK-000404" + ] + }, + { + "id": "SIT-BAS-000007", + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": { + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000008", + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": { + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000009", + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": { + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [ + "SIT-CHK-000227", + "SIT-CHK-000228", + "SIT-CHK-000229", + "SIT-CHK-000230", + "SIT-CHK-000317", + "SIT-CHK-000318", + "SIT-CHK-000319", + "SIT-CHK-000320", + "SIT-CHK-000346", + "SIT-CHK-000347", + "SIT-CHK-000348", + "SIT-CHK-000349", + "SIT-CHK-000401", + "SIT-CHK-000402", + "SIT-CHK-000403", + "SIT-CHK-000404" + ] + }, + { + "id": "SIT-BAS-000010", + "source": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": {}, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000011", + "source": { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": { + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000012", + "source": { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + }, + "basis_kind": "declaration", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Independently authored finite Phase 4 reference case.", + "support_refs": [], + "availability": null, + "scope": null, + "time": {}, + "lifecycle": null, + "qualifications": [ + "Supplied declaration; no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000013", + "source": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": null, + "time": {}, + "lifecycle": null, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000014", + "source": { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": null, + "time": {}, + "lifecycle": null, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000015", + "source": { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": null, + "time": {}, + "lifecycle": null, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [] + }, + { + "id": "SIT-BAS-000016", + "source": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "basis_kind": "documented_record", + "asserter_ref": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "attestor_ref": null, + "method": "Inspect supplied acquisition record; literal ``` is data.", + "support_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "availability": null, + "scope": null, + "time": { + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "lifecycle": null, + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ], + "check_refs": [] + } + ], + "capabilities": [ + { + "id": "SIT-CAP-000001", + "diagnostic_id": "SIT-M001", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000001", + "SIT-SCP-000003" + ], + "check_refs": [ + "SIT-CHK-000001", + "SIT-CHK-000002", + "SIT-CHK-000003", + "SIT-CHK-000004", + "SIT-CHK-000005", + "SIT-CHK-000079", + "SIT-CHK-000080", + "SIT-CHK-000081", + "SIT-CHK-000082", + "SIT-CHK-000083", + "SIT-CHK-000157", + "SIT-CHK-000158", + "SIT-CHK-000159", + "SIT-CHK-000160", + "SIT-CHK-000161", + "SIT-CHK-000594", + "SIT-CHK-000595", + "SIT-CHK-000596", + "SIT-CHK-000597", + "SIT-CHK-000598" + ], + "result_refs": [ + "SIT-RES-000001", + "SIT-RES-000002", + "SIT-RES-000003", + "SIT-RES-000004", + "SIT-RES-000005" + ], + "available_result_refs": [ + "SIT-RES-000001", + "SIT-RES-000002", + "SIT-RES-000003", + "SIT-RES-000004", + "SIT-RES-000005" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000002", + "diagnostic_id": "SIT-M002", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000019" + ], + "check_refs": [ + "SIT-CHK-000006", + "SIT-CHK-000007", + "SIT-CHK-000008", + "SIT-CHK-000084", + "SIT-CHK-000085", + "SIT-CHK-000086", + "SIT-CHK-000162", + "SIT-CHK-000163", + "SIT-CHK-000164", + "SIT-CHK-000193", + "SIT-CHK-000194", + "SIT-CHK-000195", + "SIT-CHK-000224", + "SIT-CHK-000225", + "SIT-CHK-000226", + "SIT-CHK-000279", + "SIT-CHK-000280", + "SIT-CHK-000281", + "SIT-CHK-000298", + "SIT-CHK-000299", + "SIT-CHK-000300", + "SIT-CHK-000314", + "SIT-CHK-000315", + "SIT-CHK-000316", + "SIT-CHK-000343", + "SIT-CHK-000344", + "SIT-CHK-000345", + "SIT-CHK-000398", + "SIT-CHK-000399", + "SIT-CHK-000400", + "SIT-CHK-000599", + "SIT-CHK-000600", + "SIT-CHK-000601" + ], + "result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008" + ], + "available_result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000003", + "diagnostic_id": "SIT-M003", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000017" + ], + "check_refs": [ + "SIT-CHK-000009", + "SIT-CHK-000010", + "SIT-CHK-000011", + "SIT-CHK-000012", + "SIT-CHK-000087", + "SIT-CHK-000088", + "SIT-CHK-000089", + "SIT-CHK-000090", + "SIT-CHK-000165", + "SIT-CHK-000166", + "SIT-CHK-000167", + "SIT-CHK-000168", + "SIT-CHK-000196", + "SIT-CHK-000197", + "SIT-CHK-000198", + "SIT-CHK-000199", + "SIT-CHK-000227", + "SIT-CHK-000228", + "SIT-CHK-000229", + "SIT-CHK-000230", + "SIT-CHK-000282", + "SIT-CHK-000283", + "SIT-CHK-000284", + "SIT-CHK-000285", + "SIT-CHK-000301", + "SIT-CHK-000302", + "SIT-CHK-000303", + "SIT-CHK-000304", + "SIT-CHK-000317", + "SIT-CHK-000318", + "SIT-CHK-000319", + "SIT-CHK-000320", + "SIT-CHK-000346", + "SIT-CHK-000347", + "SIT-CHK-000348", + "SIT-CHK-000349", + "SIT-CHK-000401", + "SIT-CHK-000402", + "SIT-CHK-000403", + "SIT-CHK-000404", + "SIT-CHK-000453", + "SIT-CHK-000454", + "SIT-CHK-000455", + "SIT-CHK-000456", + "SIT-CHK-000602", + "SIT-CHK-000603", + "SIT-CHK-000604", + "SIT-CHK-000605" + ], + "result_refs": [ + "SIT-RES-000009", + "SIT-RES-000010", + "SIT-RES-000011", + "SIT-RES-000012" + ], + "available_result_refs": [ + "SIT-RES-000009" + ], + "unavailable_result_refs": [ + "SIT-RES-000010", + "SIT-RES-000011", + "SIT-RES-000012" + ], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000022", + "SIT-RSN-000023", + "SIT-RSN-000024", + "SIT-RSN-000025" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000004", + "diagnostic_id": "SIT-M004", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000019" + ], + "check_refs": [ + "SIT-CHK-000013", + "SIT-CHK-000014", + "SIT-CHK-000015", + "SIT-CHK-000016", + "SIT-CHK-000091", + "SIT-CHK-000092", + "SIT-CHK-000093", + "SIT-CHK-000094", + "SIT-CHK-000169", + "SIT-CHK-000170", + "SIT-CHK-000171", + "SIT-CHK-000172", + "SIT-CHK-000200", + "SIT-CHK-000201", + "SIT-CHK-000202", + "SIT-CHK-000203", + "SIT-CHK-000231", + "SIT-CHK-000232", + "SIT-CHK-000233", + "SIT-CHK-000234", + "SIT-CHK-000286", + "SIT-CHK-000287", + "SIT-CHK-000288", + "SIT-CHK-000289", + "SIT-CHK-000305", + "SIT-CHK-000306", + "SIT-CHK-000307", + "SIT-CHK-000308", + "SIT-CHK-000321", + "SIT-CHK-000322", + "SIT-CHK-000323", + "SIT-CHK-000324", + "SIT-CHK-000350", + "SIT-CHK-000351", + "SIT-CHK-000352", + "SIT-CHK-000353", + "SIT-CHK-000405", + "SIT-CHK-000406", + "SIT-CHK-000407", + "SIT-CHK-000408", + "SIT-CHK-000606", + "SIT-CHK-000607", + "SIT-CHK-000608", + "SIT-CHK-000609" + ], + "result_refs": [ + "SIT-RES-000013", + "SIT-RES-000014", + "SIT-RES-000015", + "SIT-RES-000016" + ], + "available_result_refs": [ + "SIT-RES-000013", + "SIT-RES-000014", + "SIT-RES-000015", + "SIT-RES-000016" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000005", + "diagnostic_id": "SIT-M005", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000019" + ], + "check_refs": [ + "SIT-CHK-000017", + "SIT-CHK-000095", + "SIT-CHK-000173", + "SIT-CHK-000204", + "SIT-CHK-000235", + "SIT-CHK-000290", + "SIT-CHK-000309", + "SIT-CHK-000325", + "SIT-CHK-000354", + "SIT-CHK-000409", + "SIT-CHK-000459", + "SIT-CHK-000610" + ], + "result_refs": [ + "SIT-RES-000017" + ], + "available_result_refs": [ + "SIT-RES-000017" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000006", + "diagnostic_id": "SIT-M006", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000020" + ], + "check_refs": [ + "SIT-CHK-000018", + "SIT-CHK-000019", + "SIT-CHK-000020", + "SIT-CHK-000096", + "SIT-CHK-000097", + "SIT-CHK-000098", + "SIT-CHK-000174", + "SIT-CHK-000175", + "SIT-CHK-000176", + "SIT-CHK-000205", + "SIT-CHK-000206", + "SIT-CHK-000207", + "SIT-CHK-000236", + "SIT-CHK-000237", + "SIT-CHK-000238", + "SIT-CHK-000291", + "SIT-CHK-000292", + "SIT-CHK-000293", + "SIT-CHK-000326", + "SIT-CHK-000327", + "SIT-CHK-000328", + "SIT-CHK-000355", + "SIT-CHK-000356", + "SIT-CHK-000357", + "SIT-CHK-000410", + "SIT-CHK-000411", + "SIT-CHK-000412", + "SIT-CHK-000460", + "SIT-CHK-000461", + "SIT-CHK-000462", + "SIT-CHK-000611", + "SIT-CHK-000612", + "SIT-CHK-000613" + ], + "result_refs": [ + "SIT-RES-000018", + "SIT-RES-000019", + "SIT-RES-000020" + ], + "available_result_refs": [ + "SIT-RES-000018", + "SIT-RES-000020" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [ + "SIT-RES-000019" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000015" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000007", + "diagnostic_id": "SIT-M007", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000019" + ], + "check_refs": [ + "SIT-CHK-000021", + "SIT-CHK-000022", + "SIT-CHK-000023", + "SIT-CHK-000024", + "SIT-CHK-000099", + "SIT-CHK-000100", + "SIT-CHK-000101", + "SIT-CHK-000102", + "SIT-CHK-000177", + "SIT-CHK-000178", + "SIT-CHK-000179", + "SIT-CHK-000180", + "SIT-CHK-000208", + "SIT-CHK-000209", + "SIT-CHK-000210", + "SIT-CHK-000211", + "SIT-CHK-000239", + "SIT-CHK-000240", + "SIT-CHK-000241", + "SIT-CHK-000242", + "SIT-CHK-000294", + "SIT-CHK-000295", + "SIT-CHK-000296", + "SIT-CHK-000297", + "SIT-CHK-000310", + "SIT-CHK-000311", + "SIT-CHK-000312", + "SIT-CHK-000313", + "SIT-CHK-000329", + "SIT-CHK-000330", + "SIT-CHK-000331", + "SIT-CHK-000332", + "SIT-CHK-000358", + "SIT-CHK-000359", + "SIT-CHK-000360", + "SIT-CHK-000361", + "SIT-CHK-000413", + "SIT-CHK-000414", + "SIT-CHK-000415", + "SIT-CHK-000416", + "SIT-CHK-000614", + "SIT-CHK-000615", + "SIT-CHK-000616", + "SIT-CHK-000617" + ], + "result_refs": [ + "SIT-RES-000021", + "SIT-RES-000022", + "SIT-RES-000023", + "SIT-RES-000024" + ], + "available_result_refs": [ + "SIT-RES-000021", + "SIT-RES-000022", + "SIT-RES-000023", + "SIT-RES-000024" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000008", + "diagnostic_id": "SIT-M008", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000005" + ], + "check_refs": [ + "SIT-CHK-000025", + "SIT-CHK-000026", + "SIT-CHK-000027", + "SIT-CHK-000028", + "SIT-CHK-000103", + "SIT-CHK-000104", + "SIT-CHK-000105", + "SIT-CHK-000106", + "SIT-CHK-000618", + "SIT-CHK-000619", + "SIT-CHK-000620", + "SIT-CHK-000621" + ], + "result_refs": [ + "SIT-RES-000025", + "SIT-RES-000026", + "SIT-RES-000027", + "SIT-RES-000028" + ], + "available_result_refs": [], + "unavailable_result_refs": [], + "not_applicable_result_refs": [ + "SIT-RES-000025", + "SIT-RES-000026", + "SIT-RES-000027", + "SIT-RES-000028" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000027", + "SIT-RSN-000028", + "SIT-RSN-000029", + "SIT-RSN-000030" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000009", + "diagnostic_id": "SIT-M009", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000004" + ], + "check_refs": [ + "SIT-CHK-000029", + "SIT-CHK-000030", + "SIT-CHK-000107", + "SIT-CHK-000108", + "SIT-CHK-000243", + "SIT-CHK-000244", + "SIT-CHK-000362", + "SIT-CHK-000363", + "SIT-CHK-000417", + "SIT-CHK-000418", + "SIT-CHK-000465", + "SIT-CHK-000466", + "SIT-CHK-000622", + "SIT-CHK-000623" + ], + "result_refs": [ + "SIT-RES-000029", + "SIT-RES-000030" + ], + "available_result_refs": [ + "SIT-RES-000030" + ], + "unavailable_result_refs": [ + "SIT-RES-000029" + ], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000020", + "SIT-RSN-000021" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000010", + "diagnostic_id": "SIT-M010", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000008", + "SIT-SCP-000009" + ], + "check_refs": [ + "SIT-CHK-000031", + "SIT-CHK-000032", + "SIT-CHK-000033", + "SIT-CHK-000034", + "SIT-CHK-000035", + "SIT-CHK-000036", + "SIT-CHK-000037", + "SIT-CHK-000109", + "SIT-CHK-000110", + "SIT-CHK-000111", + "SIT-CHK-000112", + "SIT-CHK-000113", + "SIT-CHK-000114", + "SIT-CHK-000115", + "SIT-CHK-000467", + "SIT-CHK-000468", + "SIT-CHK-000469", + "SIT-CHK-000470", + "SIT-CHK-000471", + "SIT-CHK-000472", + "SIT-CHK-000473", + "SIT-CHK-000498", + "SIT-CHK-000499", + "SIT-CHK-000500", + "SIT-CHK-000501", + "SIT-CHK-000502", + "SIT-CHK-000503", + "SIT-CHK-000504", + "SIT-CHK-000529", + "SIT-CHK-000530", + "SIT-CHK-000531", + "SIT-CHK-000532", + "SIT-CHK-000533", + "SIT-CHK-000534", + "SIT-CHK-000535", + "SIT-CHK-000624", + "SIT-CHK-000625", + "SIT-CHK-000626", + "SIT-CHK-000627", + "SIT-CHK-000628", + "SIT-CHK-000629", + "SIT-CHK-000630" + ], + "result_refs": [ + "SIT-RES-000031", + "SIT-RES-000032", + "SIT-RES-000033", + "SIT-RES-000034", + "SIT-RES-000035", + "SIT-RES-000036", + "SIT-RES-000037" + ], + "available_result_refs": [ + "SIT-RES-000032", + "SIT-RES-000034" + ], + "unavailable_result_refs": [ + "SIT-RES-000031", + "SIT-RES-000033", + "SIT-RES-000035", + "SIT-RES-000036", + "SIT-RES-000037" + ], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000001", + "SIT-RSN-000002", + "SIT-RSN-000003", + "SIT-RSN-000004", + "SIT-RSN-000005", + "SIT-RSN-000006", + "SIT-RSN-000007", + "SIT-RSN-000008", + "SIT-RSN-000009", + "SIT-RSN-000010", + "SIT-RSN-000011", + "SIT-RSN-000012", + "SIT-RSN-000013", + "SIT-RSN-000014", + "SIT-RSN-000038" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000011", + "diagnostic_id": "SIT-M011", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000005" + ], + "check_refs": [ + "SIT-CHK-000038", + "SIT-CHK-000039", + "SIT-CHK-000040", + "SIT-CHK-000116", + "SIT-CHK-000117", + "SIT-CHK-000118", + "SIT-CHK-000631", + "SIT-CHK-000632", + "SIT-CHK-000633" + ], + "result_refs": [ + "SIT-RES-000038", + "SIT-RES-000039", + "SIT-RES-000040" + ], + "available_result_refs": [], + "unavailable_result_refs": [], + "not_applicable_result_refs": [ + "SIT-RES-000038", + "SIT-RES-000039", + "SIT-RES-000040" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000031", + "SIT-RSN-000032", + "SIT-RSN-000033" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000012", + "diagnostic_id": "SIT-M012", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000007" + ], + "check_refs": [ + "SIT-CHK-000041", + "SIT-CHK-000042", + "SIT-CHK-000043", + "SIT-CHK-000044", + "SIT-CHK-000045", + "SIT-CHK-000046", + "SIT-CHK-000047", + "SIT-CHK-000048", + "SIT-CHK-000119", + "SIT-CHK-000120", + "SIT-CHK-000121", + "SIT-CHK-000122", + "SIT-CHK-000123", + "SIT-CHK-000124", + "SIT-CHK-000125", + "SIT-CHK-000126", + "SIT-CHK-000181", + "SIT-CHK-000182", + "SIT-CHK-000183", + "SIT-CHK-000184", + "SIT-CHK-000185", + "SIT-CHK-000186", + "SIT-CHK-000187", + "SIT-CHK-000188", + "SIT-CHK-000212", + "SIT-CHK-000213", + "SIT-CHK-000214", + "SIT-CHK-000215", + "SIT-CHK-000216", + "SIT-CHK-000217", + "SIT-CHK-000218", + "SIT-CHK-000219", + "SIT-CHK-000245", + "SIT-CHK-000246", + "SIT-CHK-000247", + "SIT-CHK-000248", + "SIT-CHK-000249", + "SIT-CHK-000250", + "SIT-CHK-000251", + "SIT-CHK-000252", + "SIT-CHK-000333", + "SIT-CHK-000334", + "SIT-CHK-000335", + "SIT-CHK-000336", + "SIT-CHK-000337", + "SIT-CHK-000338", + "SIT-CHK-000339", + "SIT-CHK-000340", + "SIT-CHK-000364", + "SIT-CHK-000365", + "SIT-CHK-000366", + "SIT-CHK-000367", + "SIT-CHK-000368", + "SIT-CHK-000369", + "SIT-CHK-000370", + "SIT-CHK-000371", + "SIT-CHK-000419", + "SIT-CHK-000420", + "SIT-CHK-000421", + "SIT-CHK-000422", + "SIT-CHK-000423", + "SIT-CHK-000424", + "SIT-CHK-000425", + "SIT-CHK-000426", + "SIT-CHK-000560", + "SIT-CHK-000561", + "SIT-CHK-000562", + "SIT-CHK-000563", + "SIT-CHK-000564", + "SIT-CHK-000565", + "SIT-CHK-000566", + "SIT-CHK-000567", + "SIT-CHK-000634", + "SIT-CHK-000635", + "SIT-CHK-000636", + "SIT-CHK-000637", + "SIT-CHK-000638", + "SIT-CHK-000639", + "SIT-CHK-000640", + "SIT-CHK-000641" + ], + "result_refs": [ + "SIT-RES-000041", + "SIT-RES-000042", + "SIT-RES-000043", + "SIT-RES-000044", + "SIT-RES-000045", + "SIT-RES-000046", + "SIT-RES-000047", + "SIT-RES-000048" + ], + "available_result_refs": [ + "SIT-RES-000041", + "SIT-RES-000042", + "SIT-RES-000043", + "SIT-RES-000044", + "SIT-RES-000045", + "SIT-RES-000046", + "SIT-RES-000047", + "SIT-RES-000048" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000013", + "diagnostic_id": "SIT-M013", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000018" + ], + "check_refs": [ + "SIT-CHK-000049", + "SIT-CHK-000050", + "SIT-CHK-000127", + "SIT-CHK-000128", + "SIT-CHK-000253", + "SIT-CHK-000254", + "SIT-CHK-000341", + "SIT-CHK-000342", + "SIT-CHK-000372", + "SIT-CHK-000373", + "SIT-CHK-000427", + "SIT-CHK-000428", + "SIT-CHK-000457", + "SIT-CHK-000458", + "SIT-CHK-000463", + "SIT-CHK-000464", + "SIT-CHK-000568", + "SIT-CHK-000569", + "SIT-CHK-000642", + "SIT-CHK-000643" + ], + "result_refs": [ + "SIT-RES-000049", + "SIT-RES-000050" + ], + "available_result_refs": [ + "SIT-RES-000049", + "SIT-RES-000050" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000026" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000014", + "diagnostic_id": "SIT-M014", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000002", + "SIT-SCP-000010", + "SIT-SCP-000011", + "SIT-SCP-000012", + "SIT-SCP-000013", + "SIT-SCP-000014", + "SIT-SCP-000015", + "SIT-SCP-000016" + ], + "check_refs": [ + "SIT-CHK-000051", + "SIT-CHK-000052", + "SIT-CHK-000053", + "SIT-CHK-000054", + "SIT-CHK-000055", + "SIT-CHK-000056", + "SIT-CHK-000057", + "SIT-CHK-000058", + "SIT-CHK-000059", + "SIT-CHK-000060", + "SIT-CHK-000061", + "SIT-CHK-000062", + "SIT-CHK-000063", + "SIT-CHK-000064", + "SIT-CHK-000065", + "SIT-CHK-000066", + "SIT-CHK-000067", + "SIT-CHK-000068", + "SIT-CHK-000069", + "SIT-CHK-000070", + "SIT-CHK-000071", + "SIT-CHK-000072", + "SIT-CHK-000073", + "SIT-CHK-000074", + "SIT-CHK-000129", + "SIT-CHK-000130", + "SIT-CHK-000131", + "SIT-CHK-000132", + "SIT-CHK-000133", + "SIT-CHK-000134", + "SIT-CHK-000135", + "SIT-CHK-000136", + "SIT-CHK-000137", + "SIT-CHK-000138", + "SIT-CHK-000139", + "SIT-CHK-000140", + "SIT-CHK-000141", + "SIT-CHK-000142", + "SIT-CHK-000143", + "SIT-CHK-000144", + "SIT-CHK-000145", + "SIT-CHK-000146", + "SIT-CHK-000147", + "SIT-CHK-000148", + "SIT-CHK-000149", + "SIT-CHK-000150", + "SIT-CHK-000151", + "SIT-CHK-000152", + "SIT-CHK-000255", + "SIT-CHK-000256", + "SIT-CHK-000257", + "SIT-CHK-000258", + "SIT-CHK-000259", + "SIT-CHK-000260", + "SIT-CHK-000261", + "SIT-CHK-000262", + "SIT-CHK-000263", + "SIT-CHK-000264", + "SIT-CHK-000265", + "SIT-CHK-000266", + "SIT-CHK-000267", + "SIT-CHK-000268", + "SIT-CHK-000269", + "SIT-CHK-000270", + "SIT-CHK-000271", + "SIT-CHK-000272", + "SIT-CHK-000273", + "SIT-CHK-000274", + "SIT-CHK-000275", + "SIT-CHK-000276", + "SIT-CHK-000277", + "SIT-CHK-000278", + "SIT-CHK-000374", + "SIT-CHK-000375", + "SIT-CHK-000376", + "SIT-CHK-000377", + "SIT-CHK-000378", + "SIT-CHK-000379", + "SIT-CHK-000380", + "SIT-CHK-000381", + "SIT-CHK-000382", + "SIT-CHK-000383", + "SIT-CHK-000384", + "SIT-CHK-000385", + "SIT-CHK-000386", + "SIT-CHK-000387", + "SIT-CHK-000388", + "SIT-CHK-000389", + "SIT-CHK-000390", + "SIT-CHK-000391", + "SIT-CHK-000392", + "SIT-CHK-000393", + "SIT-CHK-000394", + "SIT-CHK-000395", + "SIT-CHK-000396", + "SIT-CHK-000397", + "SIT-CHK-000429", + "SIT-CHK-000430", + "SIT-CHK-000431", + "SIT-CHK-000432", + "SIT-CHK-000433", + "SIT-CHK-000434", + "SIT-CHK-000435", + "SIT-CHK-000436", + "SIT-CHK-000437", + "SIT-CHK-000438", + "SIT-CHK-000439", + "SIT-CHK-000440", + "SIT-CHK-000441", + "SIT-CHK-000442", + "SIT-CHK-000443", + "SIT-CHK-000444", + "SIT-CHK-000445", + "SIT-CHK-000446", + "SIT-CHK-000447", + "SIT-CHK-000448", + "SIT-CHK-000449", + "SIT-CHK-000450", + "SIT-CHK-000451", + "SIT-CHK-000452", + "SIT-CHK-000474", + "SIT-CHK-000475", + "SIT-CHK-000476", + "SIT-CHK-000477", + "SIT-CHK-000478", + "SIT-CHK-000479", + "SIT-CHK-000480", + "SIT-CHK-000481", + "SIT-CHK-000482", + "SIT-CHK-000483", + "SIT-CHK-000484", + "SIT-CHK-000485", + "SIT-CHK-000486", + "SIT-CHK-000487", + "SIT-CHK-000488", + "SIT-CHK-000489", + "SIT-CHK-000490", + "SIT-CHK-000491", + "SIT-CHK-000492", + "SIT-CHK-000493", + "SIT-CHK-000494", + "SIT-CHK-000495", + "SIT-CHK-000496", + "SIT-CHK-000497", + "SIT-CHK-000505", + "SIT-CHK-000506", + "SIT-CHK-000507", + "SIT-CHK-000508", + "SIT-CHK-000509", + "SIT-CHK-000510", + "SIT-CHK-000511", + "SIT-CHK-000512", + "SIT-CHK-000513", + "SIT-CHK-000514", + "SIT-CHK-000515", + "SIT-CHK-000516", + "SIT-CHK-000517", + "SIT-CHK-000518", + "SIT-CHK-000519", + "SIT-CHK-000520", + "SIT-CHK-000521", + "SIT-CHK-000522", + "SIT-CHK-000523", + "SIT-CHK-000524", + "SIT-CHK-000525", + "SIT-CHK-000526", + "SIT-CHK-000527", + "SIT-CHK-000528", + "SIT-CHK-000536", + "SIT-CHK-000537", + "SIT-CHK-000538", + "SIT-CHK-000539", + "SIT-CHK-000540", + "SIT-CHK-000541", + "SIT-CHK-000542", + "SIT-CHK-000543", + "SIT-CHK-000544", + "SIT-CHK-000545", + "SIT-CHK-000546", + "SIT-CHK-000547", + "SIT-CHK-000548", + "SIT-CHK-000549", + "SIT-CHK-000550", + "SIT-CHK-000551", + "SIT-CHK-000552", + "SIT-CHK-000553", + "SIT-CHK-000554", + "SIT-CHK-000555", + "SIT-CHK-000556", + "SIT-CHK-000557", + "SIT-CHK-000558", + "SIT-CHK-000559", + "SIT-CHK-000570", + "SIT-CHK-000571", + "SIT-CHK-000572", + "SIT-CHK-000573", + "SIT-CHK-000574", + "SIT-CHK-000575", + "SIT-CHK-000576", + "SIT-CHK-000577", + "SIT-CHK-000578", + "SIT-CHK-000579", + "SIT-CHK-000580", + "SIT-CHK-000581", + "SIT-CHK-000582", + "SIT-CHK-000583", + "SIT-CHK-000584", + "SIT-CHK-000585", + "SIT-CHK-000586", + "SIT-CHK-000587", + "SIT-CHK-000588", + "SIT-CHK-000589", + "SIT-CHK-000590", + "SIT-CHK-000591", + "SIT-CHK-000592", + "SIT-CHK-000593", + "SIT-CHK-000644", + "SIT-CHK-000645", + "SIT-CHK-000646", + "SIT-CHK-000647", + "SIT-CHK-000648", + "SIT-CHK-000649", + "SIT-CHK-000650", + "SIT-CHK-000651", + "SIT-CHK-000652", + "SIT-CHK-000653", + "SIT-CHK-000654", + "SIT-CHK-000655", + "SIT-CHK-000656", + "SIT-CHK-000657", + "SIT-CHK-000658", + "SIT-CHK-000659", + "SIT-CHK-000660", + "SIT-CHK-000661", + "SIT-CHK-000662", + "SIT-CHK-000663", + "SIT-CHK-000664", + "SIT-CHK-000665", + "SIT-CHK-000666", + "SIT-CHK-000667" + ], + "result_refs": [ + "SIT-RES-000051", + "SIT-RES-000052", + "SIT-RES-000053", + "SIT-RES-000054", + "SIT-RES-000055", + "SIT-RES-000056", + "SIT-RES-000057", + "SIT-RES-000058", + "SIT-RES-000059", + "SIT-RES-000060", + "SIT-RES-000061", + "SIT-RES-000062", + "SIT-RES-000063", + "SIT-RES-000064", + "SIT-RES-000065", + "SIT-RES-000066", + "SIT-RES-000067", + "SIT-RES-000068", + "SIT-RES-000069", + "SIT-RES-000070", + "SIT-RES-000071", + "SIT-RES-000072", + "SIT-RES-000073", + "SIT-RES-000074" + ], + "available_result_refs": [ + "SIT-RES-000051", + "SIT-RES-000052", + "SIT-RES-000053", + "SIT-RES-000054", + "SIT-RES-000055", + "SIT-RES-000056", + "SIT-RES-000057", + "SIT-RES-000058", + "SIT-RES-000059", + "SIT-RES-000060", + "SIT-RES-000061", + "SIT-RES-000062", + "SIT-RES-000063", + "SIT-RES-000064", + "SIT-RES-000065", + "SIT-RES-000066", + "SIT-RES-000067", + "SIT-RES-000068", + "SIT-RES-000069", + "SIT-RES-000070", + "SIT-RES-000071", + "SIT-RES-000072", + "SIT-RES-000073", + "SIT-RES-000074" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + }, + { + "id": "SIT-CAP-000015", + "diagnostic_id": "SIT-M015", + "inquiry_ref": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "scope_refs": [ + "SIT-SCP-000006" + ], + "check_refs": [ + "SIT-CHK-000075", + "SIT-CHK-000076", + "SIT-CHK-000077", + "SIT-CHK-000078", + "SIT-CHK-000153", + "SIT-CHK-000154", + "SIT-CHK-000155", + "SIT-CHK-000156", + "SIT-CHK-000189", + "SIT-CHK-000190", + "SIT-CHK-000191", + "SIT-CHK-000192", + "SIT-CHK-000220", + "SIT-CHK-000221", + "SIT-CHK-000222", + "SIT-CHK-000223", + "SIT-CHK-000668", + "SIT-CHK-000669", + "SIT-CHK-000670", + "SIT-CHK-000671" + ], + "result_refs": [ + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "available_result_refs": [ + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "unavailable_result_refs": [], + "not_applicable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ], + "scope_note": "Every planned field and exact represented scope for this Inquiry remains separately linked; no strongest-result summary or outside-world completeness is inferred." + } + ], + "checks": [ + { + "id": "SIT-CHK-000001", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The owner received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000002", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The owner received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000003", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The owner received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000004", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The owner received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000005", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The owner received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000006", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000007", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000008", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000009", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The component received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000010", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The component received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000011", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The component received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000012", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The component received the complete admitted immutable snapshot." + }, + { + "id": "SIT-CHK-000013", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000014", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000015", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000016", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000017", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000018", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000019", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000020", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle." + }, + { + "id": "SIT-CHK-000021", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000022", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000023", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000024", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "This private owner received the admitted immutable PreparedBundle; it does not re-execute admission." + }, + { + "id": "SIT-CHK-000025", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000026", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000027", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000028", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000029", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000030", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000031", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000032", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000033", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000034", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000035", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000036", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000037", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000038", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000039", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000040", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "The same invocation completed admission before this scheduled structural scope explanation." + }, + { + "id": "SIT-CHK-000041", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000042", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000043", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000044", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000045", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000046", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000047", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000048", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000049", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000050", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000051", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000052", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000053", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000054", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000055", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000056", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000057", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000058", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000059", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000060", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000061", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000062", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000063", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000064", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000065", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000066", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000067", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000068", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000069", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000070", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000071", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000072", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000073", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000074", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000075", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance." + }, + { + "id": "SIT-CHK-000076", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance." + }, + { + "id": "SIT-CHK-000077", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance." + }, + { + "id": "SIT-CHK-000078", + "check_id": "PC01", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "The same invocation completed structural admission and its full analytical plan before acceptance." + }, + { + "id": "SIT-CHK-000079", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000080", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000081", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000082", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000083", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000084", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000085", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000086", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000087", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000088", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000089", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000090", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000091", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000092", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000093", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000094", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000095", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000096", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000097", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000098", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000099", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000100", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000101", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000102", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000103", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000104", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000105", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000106", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000107", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000108", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000109", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000110", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000111", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000112", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000113", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000114", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000115", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000116", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000117", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000118", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000119", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000120", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000121", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000122", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000123", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000124", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000125", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000126", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000127", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000128", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000129", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000130", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000131", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000132", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000133", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000134", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000135", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000136", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000137", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000138", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000139", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000140", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000141", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000142", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000143", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000144", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000145", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000146", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000147", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000148", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000149", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000150", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000151", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000152", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000153", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000154", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000155", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000156", + "check_id": "PC02", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Exact operation scope comparison; supplied evidence is not authenticated." + }, + { + "id": "SIT-CHK-000157", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated." + }, + { + "id": "SIT-CHK-000158", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated." + }, + { + "id": "SIT-CHK-000159", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated." + }, + { + "id": "SIT-CHK-000160", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated." + }, + { + "id": "SIT-CHK-000161", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "The Inquiry seed positions and exact Claim bindings were completely enumerated." + }, + { + "id": "SIT-CHK-000162", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000163", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000164", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000165", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000166", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000167", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000168", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000169", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000170", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000171", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000172", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000173", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000174", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000175", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000176", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000177", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000178", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000179", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000180", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000181", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000182", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000183", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000184", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000185", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000186", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000187", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000188", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + } + ], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000189", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000190", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000191", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000192", + "check_id": "PC03", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_artifact_refs" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "seed_evidence_refs" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.artifact_ref" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "data.claim_ref" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from SOURCE_INVENTORY; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000193", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000194", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000195", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000196", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000197", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000198", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000199", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000200", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000201", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000202", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000203", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000204", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000205", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000206", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000207", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite population selection or local typed-edge eligibility." + }, + { + "id": "SIT-CHK-000208", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000209", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000210", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000211", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed owner-local finite selection/edge eligibility; documentary and ancestry limitations remain separate." + }, + { + "id": "SIT-CHK-000212", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000213", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000214", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000215", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000216", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000217", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000218", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000219", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "This owner uses admitted native case_ref/before/after identities without relying on a RelationAssertion as a current affirmative premise." + }, + { + "id": "SIT-CHK-000220", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000006", + "state": "unmet", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000221", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000006", + "state": "unmet", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000222", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000006", + "state": "unmet", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000223", + "check_id": "PC04", + "scope_ref": "SIT-SCP-000006", + "state": "unmet", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": "provenance.evidence_ref_ids" + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": "provenance.evidence_ref_ids" + } + ], + "reason_refs": [], + "note": "Explicit trusted component fact from GRAPH_VIEW_CONTRACT; this component does not execute that provider." + }, + { + "id": "SIT-CHK-000224", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000225", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000226", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000227", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000228", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000229", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000230", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000231", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000232", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000233", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000234", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000235", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000236", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000237", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000238", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000239", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000240", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000241", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000242", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000243", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000004", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000244", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000004", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000245", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000246", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000247", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000248", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000249", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000250", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000251", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000252", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000253", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000254", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000255", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000256", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000257", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000258", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000259", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000260", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000261", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000262", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000263", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000264", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000265", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000266", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000267", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000268", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000269", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000270", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000271", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000272", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000273", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000274", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000275", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000276", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000277", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000278", + "check_id": "PC05", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000279", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000280", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000281", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000282", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000283", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000284", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000285", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000286", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000287", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000288", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000289", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000290", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000291", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000292", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000293", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000294", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000295", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000296", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000297", + "check_id": "PC06", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000298", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000299", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000300", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000301", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000302", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000303", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000304", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000017", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000305", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000306", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000307", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000308", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000309", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000310", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000311", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000312", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000313", + "check_id": "PC07", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000314", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000315", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000316", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000317", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000318", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000319", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000320", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000321", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000322", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000323", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000324", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000325", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000326", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000327", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000328", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000329", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000330", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000331", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000332", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000333", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000334", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000335", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000336", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000337", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000338", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000339", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000340", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000341", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000342", + "check_id": "PC08", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000343", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000344", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000345", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000346", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000347", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000348", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000349", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000350", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000351", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000352", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000353", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000354", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000355", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000356", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000357", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000358", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000359", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000360", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000361", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000362", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000004", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000363", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000004", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000364", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000365", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000366", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000367", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000368", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000369", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000370", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000371", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000372", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000373", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000374", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000375", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000376", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000377", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000378", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000379", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000380", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000381", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000382", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000383", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000384", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000385", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000386", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000387", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000388", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000389", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000390", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000391", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000392", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000393", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000394", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000395", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000396", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000397", + "check_id": "PC09", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000398", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000399", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000400", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000401", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000402", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000403", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000404", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000405", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000406", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000407", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000408", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000409", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000410", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000411", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000412", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual scoped premise qualifications; individual source-bound facts are retained." + }, + { + "id": "SIT-CHK-000413", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000414", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000415", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000416", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + } + ], + "reason_refs": [], + "note": "Actual finite candidate checks, with individual source-bound facts retained. Failed candidates remain excluded or disclosed; they do not invalidate the completed inventory count or become actual-world roots." + }, + { + "id": "SIT-CHK-000417", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000418", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000419", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000420", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000421", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000422", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000423", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000424", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000425", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000426", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000427", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000428", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000429", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000430", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000431", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000432", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000433", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000434", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000435", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000436", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000437", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000438", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000439", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000440", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000441", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000442", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000443", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000444", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000445", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000446", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000447", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000448", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000449", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000450", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000451", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000452", + "check_id": "PC10", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000453", + "check_id": "PC11", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000454", + "check_id": "PC11", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000455", + "check_id": "PC11", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000456", + "check_id": "PC11", + "scope_ref": "SIT-SCP-000017", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "dependency_dimensions" + }, + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_claim_refs" + } + ], + "reason_refs": [], + "note": "Executed exact comparison prerequisite; native declarations, supporting material and limitations remain separate." + }, + { + "id": "SIT-CHK-000457", + "check_id": "PC11", + "scope_ref": "SIT-SCP-000018", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000458", + "check_id": "PC11", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000459", + "check_id": "PC12", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Whole supplied seed population; no resolved-subset fallback." + }, + { + "id": "SIT-CHK-000460", + "check_id": "PC13", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Whole supplied seed population; no resolved-subset fallback." + }, + { + "id": "SIT-CHK-000461", + "check_id": "PC13", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Whole supplied seed population; no resolved-subset fallback." + }, + { + "id": "SIT-CHK-000462", + "check_id": "PC13", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "reason_refs": [], + "note": "Whole supplied seed population; no resolved-subset fallback." + }, + { + "id": "SIT-CHK-000463", + "check_id": "PC14", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000464", + "check_id": "PC14", + "scope_ref": "SIT-SCP-000018", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000465", + "check_id": "PC15", + "scope_ref": "SIT-SCP-000004", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000466", + "check_id": "PC15", + "scope_ref": "SIT-SCP-000004", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000467", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000468", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000469", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000470", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000471", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000472", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000473", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000474", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000475", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000476", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000477", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000478", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000479", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000480", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000481", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000482", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000483", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000484", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000485", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000486", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000487", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000488", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000489", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000490", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000491", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000492", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000493", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000494", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000495", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000496", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000497", + "check_id": "PC16", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000498", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000499", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000500", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000501", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000502", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000503", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000504", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000008", + "state": "unknown", + "input_refs": [], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000505", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000506", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000507", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000508", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000509", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000510", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000511", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000512", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000513", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000514", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000515", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000516", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000517", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000518", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000519", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000520", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000521", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000522", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000523", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000524", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000525", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000526", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000527", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000528", + "check_id": "PC17", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000529", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000530", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000531", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000009", + "state": "unknown", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000532", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000533", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000534", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000535", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000008", + "state": "not_applicable", + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "reason_refs": [], + "note": "Executed field-specific source, boundary, finite membership or baseline check. Individual native disclosures survive unmet stronger prerequisites." + }, + { + "id": "SIT-CHK-000536", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000537", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000538", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000539", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000540", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000541", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000542", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000543", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000544", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000545", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000546", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000547", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000548", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000549", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000550", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000551", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000552", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000002", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000553", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000010", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000554", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000011", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000555", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000012", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000556", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000013", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000557", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000014", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000558", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000015", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000559", + "check_id": "PC18", + "scope_ref": "SIT-SCP-000016", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000560", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000561", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000562", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000563", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000564", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000565", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000566", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000567", + "check_id": "PC21", + "scope_ref": "SIT-SCP-000007", + "state": "not_applicable", + "input_refs": [], + "reason_refs": [], + "note": "Executed case relevance and exact case_ref enumeration, including the explicitly empty finite inventory. PC21 concerns documentary endpoints/linkage only; no authority or substantive-success inference." + }, + { + "id": "SIT-CHK-000568", + "check_id": "PC22", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000569", + "check_id": "PC22", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Executed review/process prerequisite. PC22 records disclosure of native contribution, identity and dependency limits, including the absence of an applicable comparison." + }, + { + "id": "SIT-CHK-000570", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000571", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000572", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000573", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000574", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000575", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000576", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000577", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000578", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000579", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000580", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000581", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000582", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000583", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000584", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000585", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000586", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000587", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000588", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000589", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000590", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000591", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000592", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000593", + "check_id": "PC23", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Context retention is executed independently of native truth or documentary qualification. PC16-PC18 are supplied only by the original requested M010 execution." + }, + { + "id": "SIT-CHK-000594", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000595", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000596", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000597", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000003", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000598", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000001", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000599", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000600", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000601", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000602", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000603", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000604", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000605", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000017", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000606", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000607", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000608", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000609", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000610", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000611", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000612", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000613", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000020", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000614", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000615", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000616", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000617", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000019", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000618", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000619", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000620", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000621", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000622", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000623", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000004", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000624", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000625", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000626", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000009", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000627", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000628", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000629", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000630", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000008", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000631", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000632", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000633", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000005", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000634", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000635", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000636", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000637", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000638", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000639", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000640", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000641", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000007", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000642", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000643", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000018", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000644", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000645", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000646", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000647", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000648", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000649", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000650", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000651", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000652", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000653", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000654", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000655", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000656", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000657", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000658", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000659", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000660", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000002", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000661", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000010", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000662", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000011", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000663", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000012", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000664", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000013", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000665", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000014", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000666", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000015", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000667", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000016", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000668", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000669", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000670", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + }, + { + "id": "SIT-CHK-000671", + "check_id": "PC24", + "scope_ref": "SIT-SCP-000006", + "state": "met", + "input_refs": [], + "reason_refs": [], + "note": "Owner-recorded finite processing is complete." + } + ], + "observability_domains": [ + { + "level_index": 0, + "label": "Artifact and contribution inventory", + "available_result_refs": [ + "SIT-RES-000001", + "SIT-RES-000002", + "SIT-RES-000003", + "SIT-RES-000004", + "SIT-RES-000005" + ], + "unavailable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [] + }, + { + "level_index": 1, + "label": "Declared provenance and process metadata", + "available_result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008", + "SIT-RES-000018", + "SIT-RES-000020", + "SIT-RES-000021", + "SIT-RES-000022", + "SIT-RES-000023", + "SIT-RES-000024", + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "unavailable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000015", + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ] + }, + { + "level_index": 2, + "label": "Origin-resolution and scoped process-assessment evidence", + "available_result_refs": [ + "SIT-RES-000006", + "SIT-RES-000007", + "SIT-RES-000008", + "SIT-RES-000009", + "SIT-RES-000013", + "SIT-RES-000014", + "SIT-RES-000015", + "SIT-RES-000016", + "SIT-RES-000017", + "SIT-RES-000018", + "SIT-RES-000020" + ], + "unavailable_result_refs": [ + "SIT-RES-000010", + "SIT-RES-000011", + "SIT-RES-000012" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000015", + "SIT-RSN-000022", + "SIT-RSN-000023", + "SIT-RSN-000024", + "SIT-RSN-000025" + ] + }, + { + "level_index": 3, + "label": "Evaluator, correction-route and authority evidence", + "available_result_refs": [ + "SIT-RES-000049", + "SIT-RES-000050", + "SIT-RES-000075", + "SIT-RES-000076", + "SIT-RES-000077", + "SIT-RES-000078" + ], + "unavailable_result_refs": [], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000026", + "SIT-RSN-000027", + "SIT-RSN-000028", + "SIT-RSN-000029", + "SIT-RSN-000030", + "SIT-RSN-000031", + "SIT-RSN-000032", + "SIT-RSN-000033", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ] + }, + { + "level_index": 4, + "label": "Boundary-qualified external input, stage histories and documented correction outcomes", + "available_result_refs": [ + "SIT-RES-000030", + "SIT-RES-000032", + "SIT-RES-000034", + "SIT-RES-000041", + "SIT-RES-000042", + "SIT-RES-000043", + "SIT-RES-000044", + "SIT-RES-000045", + "SIT-RES-000046", + "SIT-RES-000047", + "SIT-RES-000048", + "SIT-RES-000051", + "SIT-RES-000052", + "SIT-RES-000053", + "SIT-RES-000054", + "SIT-RES-000055", + "SIT-RES-000056", + "SIT-RES-000057", + "SIT-RES-000058", + "SIT-RES-000059", + "SIT-RES-000060", + "SIT-RES-000061", + "SIT-RES-000062", + "SIT-RES-000063", + "SIT-RES-000064", + "SIT-RES-000065", + "SIT-RES-000066", + "SIT-RES-000067", + "SIT-RES-000068", + "SIT-RES-000069", + "SIT-RES-000070", + "SIT-RES-000071", + "SIT-RES-000072", + "SIT-RES-000073", + "SIT-RES-000074" + ], + "unavailable_result_refs": [ + "SIT-RES-000029", + "SIT-RES-000031", + "SIT-RES-000033", + "SIT-RES-000035", + "SIT-RES-000036", + "SIT-RES-000037" + ], + "not_evaluated_result_refs": [], + "reason_refs": [ + "SIT-RSN-000001", + "SIT-RSN-000002", + "SIT-RSN-000003", + "SIT-RSN-000004", + "SIT-RSN-000005", + "SIT-RSN-000006", + "SIT-RSN-000007", + "SIT-RSN-000008", + "SIT-RSN-000009", + "SIT-RSN-000010", + "SIT-RSN-000011", + "SIT-RSN-000012", + "SIT-RSN-000013", + "SIT-RSN-000014", + "SIT-RSN-000020", + "SIT-RSN-000021", + "SIT-RSN-000038" + ] + } + ], + "results": [ + { + "id": "SIT-RES-000001", + "diagnostic_id": "SIT-M001", + "field_key": "claim_artifact_record_count", + "scope_ref": "SIT-SCP-000003", + "population_refs": [ + "SIT-POP-000005" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 1, + "check_refs": [ + "SIT-CHK-000001", + "SIT-CHK-000079", + "SIT-CHK-000157", + "SIT-CHK-000594" + ], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run." + }, + { + "id": "SIT-RES-000002", + "diagnostic_id": "SIT-M001", + "field_key": "claim_unassigned_seed_artifact_record_count", + "scope_ref": "SIT-SCP-000001", + "population_refs": [ + "SIT-POP-000002" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000002", + "SIT-CHK-000080", + "SIT-CHK-000158", + "SIT-CHK-000595" + ], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run." + }, + { + "id": "SIT-RES-000003", + "diagnostic_id": "SIT-M001", + "field_key": "nominal_seed_artifact_record_count", + "scope_ref": "SIT-SCP-000001", + "population_refs": [ + "SIT-POP-000001" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 1, + "check_refs": [ + "SIT-CHK-000003", + "SIT-CHK-000081", + "SIT-CHK-000159", + "SIT-CHK-000596" + ], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run." + }, + { + "id": "SIT-RES-000004", + "diagnostic_id": "SIT-M001", + "field_key": "seed_evidence_item_count", + "scope_ref": "SIT-SCP-000003", + "population_refs": [ + "SIT-POP-000006" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 1, + "check_refs": [ + "SIT-CHK-000004", + "SIT-CHK-000082", + "SIT-CHK-000160", + "SIT-CHK-000597" + ], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run." + }, + { + "id": "SIT-RES-000005", + "diagnostic_id": "SIT-M001", + "field_key": "unresolved_seed_artifact_reference_count", + "scope_ref": "SIT-SCP-000001", + "population_refs": [ + "SIT-POP-000003" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000005", + "SIT-CHK-000083", + "SIT-CHK-000161", + "SIT-CHK-000598" + ], + "basis_refs": [ + "SIT-BAS-000007", + "SIT-BAS-000008", + "SIT-BAS-000014", + "SIT-BAS-000015" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied record inventory only. Contributions remain distinct by ID; unresolved references remain unresolved. Counts do not establish actual sources, truth, authenticity, independence, historical applicability or an end-to-end analytical run." + }, + { + "id": "SIT-RES-000006", + "diagnostic_id": "SIT-M002", + "field_key": "documentary_origin_boundary_record_count", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000034" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "qualification_check", + "value_kind": "count", + "value": 1, + "check_refs": [ + "SIT-CHK-000006", + "SIT-CHK-000084", + "SIT-CHK-000162", + "SIT-CHK-000193", + "SIT-CHK-000224", + "SIT-CHK-000279", + "SIT-CHK-000298", + "SIT-CHK-000314", + "SIT-CHK-000343", + "SIT-CHK-000398", + "SIT-CHK-000599" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000007", + "diagnostic_id": "SIT-M002", + "field_key": "origin_boundary_disclosures", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000037" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [ + { + "source": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-BOUND", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "origin_boundary", + "subject_refs": [ + "P4-O1" + ], + "details": { + "dimension": "acquisition", + "boundary_role": "documented_origin", + "coverage_ref": "P4-COVER", + "termination_reason": "This supplied finite acquisition record terminates here." + } + } + }, + "qualification_state": "met", + "reason_codes": [] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Lifecycle and relation polarity are retained; documentary qualification does not make a current positive premise.", + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + ] + }, + "check_refs": [ + "SIT-CHK-000007", + "SIT-CHK-000085", + "SIT-CHK-000163", + "SIT-CHK-000194", + "SIT-CHK-000225", + "SIT-CHK-000280", + "SIT-CHK-000299", + "SIT-CHK-000315", + "SIT-CHK-000344", + "SIT-CHK-000399", + "SIT-CHK-000600" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000008", + "diagnostic_id": "SIT-M002", + "field_key": "reached_origin_record_count", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000035" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "count", + "value": 1, + "check_refs": [ + "SIT-CHK-000008", + "SIT-CHK-000086", + "SIT-CHK-000164", + "SIT-CHK-000195", + "SIT-CHK-000226", + "SIT-CHK-000281", + "SIT-CHK-000300", + "SIT-CHK-000316", + "SIT-CHK-000345", + "SIT-CHK-000400", + "SIT-CHK-000601" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000009", + "diagnostic_id": "SIT-M003", + "field_key": "independence_assessment_disclosures", + "scope_ref": "SIT-SCP-000017", + "population_refs": [ + "SIT-POP-000028" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000009", + "SIT-CHK-000087", + "SIT-CHK-000165", + "SIT-CHK-000196", + "SIT-CHK-000227", + "SIT-CHK-000282", + "SIT-CHK-000301", + "SIT-CHK-000317", + "SIT-CHK-000346", + "SIT-CHK-000401", + "SIT-CHK-000453", + "SIT-CHK-000602" + ], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000022" + ], + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension." + }, + { + "id": "SIT-RES-000010", + "diagnostic_id": "SIT-M003", + "field_key": "qualified_origin_set_member_count", + "scope_ref": "SIT-SCP-000017", + "population_refs": [ + "SIT-POP-000030" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "count", + "value": null, + "check_refs": [ + "SIT-CHK-000010", + "SIT-CHK-000088", + "SIT-CHK-000166", + "SIT-CHK-000197", + "SIT-CHK-000228", + "SIT-CHK-000283", + "SIT-CHK-000302", + "SIT-CHK-000318", + "SIT-CHK-000347", + "SIT-CHK-000402", + "SIT-CHK-000454", + "SIT-CHK-000603" + ], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000023" + ], + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension." + }, + { + "id": "SIT-RES-000011", + "diagnostic_id": "SIT-M003", + "field_key": "qualified_process_set_member_count", + "scope_ref": "SIT-SCP-000017", + "population_refs": [ + "SIT-POP-000029" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "count", + "value": null, + "check_refs": [ + "SIT-CHK-000011", + "SIT-CHK-000089", + "SIT-CHK-000167", + "SIT-CHK-000198", + "SIT-CHK-000229", + "SIT-CHK-000284", + "SIT-CHK-000303", + "SIT-CHK-000319", + "SIT-CHK-000348", + "SIT-CHK-000403", + "SIT-CHK-000455", + "SIT-CHK-000604" + ], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000024" + ], + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension." + }, + { + "id": "SIT-RES-000012", + "diagnostic_id": "SIT-M003", + "field_key": "submitted_comparison_member_count", + "scope_ref": "SIT-SCP-000017", + "population_refs": [ + "SIT-POP-000029" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "inventory", + "value_kind": "count", + "value": null, + "check_refs": [ + "SIT-CHK-000012", + "SIT-CHK-000090", + "SIT-CHK-000168", + "SIT-CHK-000199", + "SIT-CHK-000230", + "SIT-CHK-000285", + "SIT-CHK-000304", + "SIT-CHK-000320", + "SIT-CHK-000349", + "SIT-CHK-000404", + "SIT-CHK-000456", + "SIT-CHK-000605" + ], + "basis_refs": [ + "SIT-BAS-000006", + "SIT-BAS-000009" + ], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000025" + ], + "interpretation_limit": "Members of this exact supplied comparison only; qualification is reported separately. Native conclusions and basis remain attributed, not toolkit verification. No statistical independence, transitivity, union or sum across comparisons, global independent-source count, or qualification of unexamined dimensions follows. Origin qualification additionally requires every listed OriginEvent boundary under every selected exact Claim and dimension." + }, + { + "id": "SIT-RES-000013", + "diagnostic_id": "SIT-M004", + "field_key": "documentary_origin_resolution_fraction", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000032" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "fraction", + "value": { + "numerator": 1, + "denominator": 1 + }, + "check_refs": [ + "SIT-CHK-000013", + "SIT-CHK-000091", + "SIT-CHK-000169", + "SIT-CHK-000200", + "SIT-CHK-000231", + "SIT-CHK-000286", + "SIT-CHK-000305", + "SIT-CHK-000321", + "SIT-CHK-000350", + "SIT-CHK-000405", + "SIT-CHK-000606" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000014", + "diagnostic_id": "SIT-M004", + "field_key": "origin_incidence_counts", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000032" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "incidence", + "value": { + "population_ref": "SIT-POP-000032", + "memberships": [ + { + "member_ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "origin_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + ], + "origin_counts": [ + { + "origin_ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "count": 1 + } + ], + "total": 1, + "nonexclusive": true + }, + "check_refs": [ + "SIT-CHK-000014", + "SIT-CHK-000092", + "SIT-CHK-000170", + "SIT-CHK-000201", + "SIT-CHK-000232", + "SIT-CHK-000287", + "SIT-CHK-000306", + "SIT-CHK-000322", + "SIT-CHK-000351", + "SIT-CHK-000406", + "SIT-CHK-000607" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000015", + "diagnostic_id": "SIT-M004", + "field_key": "per_seed_origin_memberships", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000032" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "incidence", + "value": { + "population_ref": "SIT-POP-000032", + "memberships": [ + { + "member_ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "origin_refs": [ + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ] + } + ], + "origin_counts": [ + { + "origin_ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "count": 1 + } + ], + "total": 1, + "nonexclusive": true + }, + "check_refs": [ + "SIT-CHK-000015", + "SIT-CHK-000093", + "SIT-CHK-000171", + "SIT-CHK-000202", + "SIT-CHK-000233", + "SIT-CHK-000288", + "SIT-CHK-000307", + "SIT-CHK-000323", + "SIT-CHK-000352", + "SIT-CHK-000407", + "SIT-CHK-000608" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000016", + "diagnostic_id": "SIT-M004", + "field_key": "seed_origin_dispositions", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000032" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "partition", + "value": { + "population_ref": "SIT-POP-000032", + "categories": [ + { + "label": "unresolved_or_conflicted", + "member_refs": [], + "count": 0 + }, + { + "label": "contains_baseline_or_scope_cut", + "member_refs": [], + "count": 0 + }, + { + "label": "contains_declared_origin", + "member_refs": [], + "count": 0 + }, + { + "label": "multiple_documented_origins", + "member_refs": [], + "count": 0 + }, + { + "label": "single_documented_origin", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "count": 1 + } + ], + "total": 1 + }, + "check_refs": [ + "SIT-CHK-000016", + "SIT-CHK-000094", + "SIT-CHK-000172", + "SIT-CHK-000203", + "SIT-CHK-000234", + "SIT-CHK-000289", + "SIT-CHK-000308", + "SIT-CHK-000324", + "SIT-CHK-000353", + "SIT-CHK-000408", + "SIT-CHK-000609" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000017", + "diagnostic_id": "SIT-M005", + "field_key": "single_origin_contribution_hhi", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000032" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "fraction", + "value": { + "numerator": 1, + "denominator": 1 + }, + "check_refs": [ + "SIT-CHK-000017", + "SIT-CHK-000095", + "SIT-CHK-000173", + "SIT-CHK-000204", + "SIT-CHK-000235", + "SIT-CHK-000290", + "SIT-CHK-000309", + "SIT-CHK-000325", + "SIT-CHK-000354", + "SIT-CHK-000409", + "SIT-CHK-000459", + "SIT-CHK-000610" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000018", + "diagnostic_id": "SIT-M006", + "field_key": "immediate_evidence_layer_dispositions", + "scope_ref": "SIT-SCP-000020", + "population_refs": [ + "SIT-POP-000040" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "partition", + "value": { + "population_ref": "SIT-POP-000040", + "categories": [ + { + "label": "inherited_only_at_evidence_layer", + "member_refs": [], + "count": 0 + }, + { + "label": "direct_origin_link_only", + "member_refs": [ + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + } + ], + "count": 1 + }, + { + "label": "mixed_direct_and_inherited", + "member_refs": [], + "count": 0 + }, + { + "label": "unresolved_at_evidence_layer", + "member_refs": [], + "count": 0 + } + ], + "total": 1 + }, + "check_refs": [ + "SIT-CHK-000018", + "SIT-CHK-000096", + "SIT-CHK-000174", + "SIT-CHK-000205", + "SIT-CHK-000236", + "SIT-CHK-000291", + "SIT-CHK-000326", + "SIT-CHK-000355", + "SIT-CHK-000410", + "SIT-CHK-000460", + "SIT-CHK-000611" + ], + "basis_refs": [ + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000021" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000019", + "diagnostic_id": "SIT-M006", + "field_key": "inherited_only_completion_interval", + "scope_ref": "SIT-SCP-000020", + "population_refs": [ + "SIT-POP-000040" + ], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "graph_derivation", + "value_kind": "completion_interval", + "value": null, + "check_refs": [ + "SIT-CHK-000019", + "SIT-CHK-000097", + "SIT-CHK-000175", + "SIT-CHK-000206", + "SIT-CHK-000237", + "SIT-CHK-000292", + "SIT-CHK-000327", + "SIT-CHK-000356", + "SIT-CHK-000411", + "SIT-CHK-000461", + "SIT-CHK-000612" + ], + "basis_refs": [ + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000021" + ], + "reason_refs": [ + "SIT-RSN-000015" + ], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000020", + "diagnostic_id": "SIT-M006", + "field_key": "inherited_only_seed_fraction", + "scope_ref": "SIT-SCP-000020", + "population_refs": [ + "SIT-POP-000040" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "fraction", + "value": { + "numerator": 0, + "denominator": 1 + }, + "check_refs": [ + "SIT-CHK-000020", + "SIT-CHK-000098", + "SIT-CHK-000176", + "SIT-CHK-000207", + "SIT-CHK-000238", + "SIT-CHK-000293", + "SIT-CHK-000328", + "SIT-CHK-000357", + "SIT-CHK-000412", + "SIT-CHK-000462", + "SIT-CHK-000613" + ], + "basis_refs": [ + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000021" + ], + "reason_refs": [], + "interpretation_limit": "Full supplied EvidenceItem population and caller-selected granularity in the explicit snapshot/time scope. Origin incidences are nonexclusive, never allocation weights. HHI measures represented contribution frequency, not reliability, truth or process independence. Immediate inheritance concerns only the represented evidence layer, not semantic novelty. Completion intervals are finite-record classification intervals, not statistical confidence intervals or bounds on hidden origins." + }, + { + "id": "SIT-RES-000021", + "diagnostic_id": "SIT-M007", + "field_key": "ancestry_gap_disclosures", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000036" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000021", + "SIT-CHK-000099", + "SIT-CHK-000177", + "SIT-CHK-000208", + "SIT-CHK-000239", + "SIT-CHK-000294", + "SIT-CHK-000310", + "SIT-CHK-000329", + "SIT-CHK-000358", + "SIT-CHK-000413", + "SIT-CHK-000614" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000022", + "diagnostic_id": "SIT-M007", + "field_key": "seed_items_with_unresolved_ancestry_count", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000033" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000022", + "SIT-CHK-000100", + "SIT-CHK-000178", + "SIT-CHK-000209", + "SIT-CHK-000240", + "SIT-CHK-000295", + "SIT-CHK-000311", + "SIT-CHK-000330", + "SIT-CHK-000359", + "SIT-CHK-000414", + "SIT-CHK-000615" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000023", + "diagnostic_id": "SIT-M007", + "field_key": "unqualified_terminal_record_count", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000038" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000023", + "SIT-CHK-000101", + "SIT-CHK-000179", + "SIT-CHK-000210", + "SIT-CHK-000241", + "SIT-CHK-000296", + "SIT-CHK-000312", + "SIT-CHK-000331", + "SIT-CHK-000360", + "SIT-CHK-000415", + "SIT-CHK-000616" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000024", + "diagnostic_id": "SIT-M007", + "field_key": "unresolved_frontier_reference_count", + "scope_ref": "SIT-SCP-000019", + "population_refs": [ + "SIT-POP-000039" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "graph_derivation", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000024", + "SIT-CHK-000102", + "SIT-CHK-000180", + "SIT-CHK-000211", + "SIT-CHK-000242", + "SIT-CHK-000297", + "SIT-CHK-000313", + "SIT-CHK-000332", + "SIT-CHK-000361", + "SIT-CHK-000416", + "SIT-CHK-000617" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000020" + ], + "reason_refs": [], + "interpretation_limit": "Exact supplied record inventory after complete finite examination. A zero is not zero actual roots; a documentary boundary is not process independence or complete history for every reaching seed. Snapshot evidence, native labels, opaque identity, gaps and all relevant branches remain attributable." + }, + { + "id": "SIT-RES-000025", + "diagnostic_id": "SIT-M008", + "field_key": "evaluator_overlap_disclosures", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "record_disclosures", + "value": null, + "check_refs": [ + "SIT-CHK-000025", + "SIT-CHK-000103", + "SIT-CHK-000618" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000027" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000026", + "diagnostic_id": "SIT-M008", + "field_key": "evaluator_overlap_witnesses", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "witness_collection", + "value": null, + "check_refs": [ + "SIT-CHK-000026", + "SIT-CHK-000104", + "SIT-CHK-000619" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000028" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000027", + "diagnostic_id": "SIT-M008", + "field_key": "matching_family_label_count", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "count", + "value": null, + "check_refs": [ + "SIT-CHK-000027", + "SIT-CHK-000105", + "SIT-CHK-000620" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000029" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000028", + "diagnostic_id": "SIT-M008", + "field_key": "shared_recorded_ancestor_count", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "count", + "value": null, + "check_refs": [ + "SIT-CHK-000028", + "SIT-CHK-000106", + "SIT-CHK-000621" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000030" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000029", + "diagnostic_id": "SIT-M009", + "field_key": "externality_assessment_disclosures", + "scope_ref": "SIT-SCP-000004", + "population_refs": [ + "SIT-POP-000007" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": null, + "check_refs": [ + "SIT-CHK-000029", + "SIT-CHK-000107", + "SIT-CHK-000243", + "SIT-CHK-000362", + "SIT-CHK-000417", + "SIT-CHK-000465", + "SIT-CHK-000622" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000001" + ], + "reason_refs": [ + "SIT-RSN-000020" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000030", + "diagnostic_id": "SIT-M009", + "field_key": "externality_stage_links", + "scope_ref": "SIT-SCP-000004", + "population_refs": [ + "SIT-POP-000007" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000030", + "SIT-CHK-000108", + "SIT-CHK-000244", + "SIT-CHK-000363", + "SIT-CHK-000418", + "SIT-CHK-000466", + "SIT-CHK-000623" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000002" + ], + "reason_refs": [ + "SIT-RSN-000021" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000031", + "diagnostic_id": "SIT-M010", + "field_key": "cohort_transition_completion_interval", + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "completion_interval", + "value": null, + "check_refs": [ + "SIT-CHK-000031", + "SIT-CHK-000109", + "SIT-CHK-000467", + "SIT-CHK-000498", + "SIT-CHK-000529", + "SIT-CHK-000624" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000011", + "SIT-FND-000014" + ], + "reason_refs": [ + "SIT-RSN-000005", + "SIT-RSN-000012" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000032", + "diagnostic_id": "SIT-M010", + "field_key": "cohort_transition_disclosures", + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000032", + "SIT-CHK-000110", + "SIT-CHK-000468", + "SIT-CHK-000499", + "SIT-CHK-000530", + "SIT-CHK-000625" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000012", + "SIT-FND-000015", + "SIT-FND-000017" + ], + "reason_refs": [ + "SIT-RSN-000006", + "SIT-RSN-000013", + "SIT-RSN-000038" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000033", + "diagnostic_id": "SIT-M010", + "field_key": "cohort_transition_fraction", + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "fraction", + "value": null, + "check_refs": [ + "SIT-CHK-000033", + "SIT-CHK-000111", + "SIT-CHK-000469", + "SIT-CHK-000500", + "SIT-CHK-000531", + "SIT-CHK-000626" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000013", + "SIT-FND-000016" + ], + "reason_refs": [ + "SIT-RSN-000007", + "SIT-RSN-000014" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000034", + "diagnostic_id": "SIT-M010", + "field_key": "pipeline_stage_disclosures", + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000034", + "SIT-CHK-000112", + "SIT-CHK-000470", + "SIT-CHK-000501", + "SIT-CHK-000532", + "SIT-CHK-000627" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000003", + "SIT-FND-000007" + ], + "reason_refs": [ + "SIT-RSN-000001", + "SIT-RSN-000008" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000035", + "diagnostic_id": "SIT-M010", + "field_key": "stage_member_partition", + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "partition", + "value": null, + "check_refs": [ + "SIT-CHK-000035", + "SIT-CHK-000113", + "SIT-CHK-000471", + "SIT-CHK-000502", + "SIT-CHK-000533", + "SIT-CHK-000628" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000004", + "SIT-FND-000008" + ], + "reason_refs": [ + "SIT-RSN-000002", + "SIT-RSN-000009" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000036", + "diagnostic_id": "SIT-M010", + "field_key": "stage_occurrence_completion_interval", + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "completion_interval", + "value": null, + "check_refs": [ + "SIT-CHK-000036", + "SIT-CHK-000114", + "SIT-CHK-000472", + "SIT-CHK-000503", + "SIT-CHK-000534", + "SIT-CHK-000629" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000005", + "SIT-FND-000009" + ], + "reason_refs": [ + "SIT-RSN-000003", + "SIT-RSN-000010" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000037", + "diagnostic_id": "SIT-M010", + "field_key": "stage_occurrence_fraction", + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "execution_state": "completed", + "result_state": "unavailable", + "result_origin": "qualification_check", + "value_kind": "fraction", + "value": null, + "check_refs": [ + "SIT-CHK-000037", + "SIT-CHK-000115", + "SIT-CHK-000473", + "SIT-CHK-000504", + "SIT-CHK-000535", + "SIT-CHK-000630" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [ + "SIT-FND-000006", + "SIT-FND-000010" + ], + "reason_refs": [ + "SIT-RSN-000004", + "SIT-RSN-000011" + ], + "interpretation_limit": "Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-RES-000038", + "diagnostic_id": "SIT-M011", + "field_key": "applicable_authorized_route_witnesses", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "witness_collection", + "value": null, + "check_refs": [ + "SIT-CHK-000038", + "SIT-CHK-000116", + "SIT-CHK-000631" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000031" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000039", + "diagnostic_id": "SIT-M011", + "field_key": "correction_route_disclosures", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "record_disclosures", + "value": null, + "check_refs": [ + "SIT-CHK-000039", + "SIT-CHK-000117", + "SIT-CHK-000632" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000032" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000040", + "diagnostic_id": "SIT-M011", + "field_key": "declared_correction_route_witnesses", + "scope_ref": "SIT-SCP-000005", + "population_refs": [], + "execution_state": "completed", + "result_state": "not_applicable", + "result_origin": "qualification_check", + "value_kind": "witness_collection", + "value": null, + "check_refs": [ + "SIT-CHK-000040", + "SIT-CHK-000118", + "SIT-CHK-000633" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000033" + ], + "interpretation_limit": "No eligible subject tuple was supplied for this finite operation." + }, + { + "id": "SIT-RES-000041", + "diagnostic_id": "SIT-M012", + "field_key": "cases_with_documentary_linked_change_count", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000012" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "qualification_check", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000041", + "SIT-CHK-000119", + "SIT-CHK-000181", + "SIT-CHK-000212", + "SIT-CHK-000245", + "SIT-CHK-000333", + "SIT-CHK-000364", + "SIT-CHK-000419", + "SIT-CHK-000560", + "SIT-CHK-000634" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000042", + "diagnostic_id": "SIT-M012", + "field_key": "correction_case_disclosures", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000016" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000042", + "SIT-CHK-000120", + "SIT-CHK-000182", + "SIT-CHK-000213", + "SIT-CHK-000246", + "SIT-CHK-000334", + "SIT-CHK-000365", + "SIT-CHK-000420", + "SIT-CHK-000561", + "SIT-CHK-000635" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000043", + "diagnostic_id": "SIT-M012", + "field_key": "correction_case_record_count", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000013" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000043", + "SIT-CHK-000121", + "SIT-CHK-000183", + "SIT-CHK-000214", + "SIT-CHK-000247", + "SIT-CHK-000335", + "SIT-CHK-000366", + "SIT-CHK-000421", + "SIT-CHK-000562", + "SIT-CHK-000636" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000044", + "diagnostic_id": "SIT-M012", + "field_key": "correction_target_change_disclosures", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000017" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000044", + "SIT-CHK-000122", + "SIT-CHK-000184", + "SIT-CHK-000215", + "SIT-CHK-000248", + "SIT-CHK-000336", + "SIT-CHK-000367", + "SIT-CHK-000422", + "SIT-CHK-000563", + "SIT-CHK-000637" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000045", + "diagnostic_id": "SIT-M012", + "field_key": "documentary_linked_change_target_count", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000011" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "qualification_check", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000045", + "SIT-CHK-000123", + "SIT-CHK-000185", + "SIT-CHK-000216", + "SIT-CHK-000249", + "SIT-CHK-000337", + "SIT-CHK-000368", + "SIT-CHK-000423", + "SIT-CHK-000564", + "SIT-CHK-000638" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000046", + "diagnostic_id": "SIT-M012", + "field_key": "handling_event_record_count", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000015" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000046", + "SIT-CHK-000124", + "SIT-CHK-000186", + "SIT-CHK-000217", + "SIT-CHK-000250", + "SIT-CHK-000338", + "SIT-CHK-000369", + "SIT-CHK-000424", + "SIT-CHK-000565", + "SIT-CHK-000639" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000047", + "diagnostic_id": "SIT-M012", + "field_key": "linked_change_event_record_count", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000014" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "count", + "value": 0, + "check_refs": [ + "SIT-CHK-000047", + "SIT-CHK-000125", + "SIT-CHK-000187", + "SIT-CHK-000218", + "SIT-CHK-000251", + "SIT-CHK-000339", + "SIT-CHK-000370", + "SIT-CHK-000425", + "SIT-CHK-000566", + "SIT-CHK-000640" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000048", + "diagnostic_id": "SIT-M012", + "field_key": "reported_capacity_disclosures", + "scope_ref": "SIT-SCP-000007", + "population_refs": [ + "SIT-POP-000018" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000048", + "SIT-CHK-000126", + "SIT-CHK-000188", + "SIT-CHK-000219", + "SIT-CHK-000252", + "SIT-CHK-000340", + "SIT-CHK-000371", + "SIT-CHK-000426", + "SIT-CHK-000567", + "SIT-CHK-000641" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Finite supplied case and process-evidence inventory only. Native handling outcomes are nonexclusive records. Documentary linkage establishes neither substantive correctness nor authority, causal success, complete downstream propagation or sustained capacity. Missing change evidence leaves the requested effect unavailable. Reported capacity, load, unit and horizon remain supplied statements without normalization or an adequacy formula." + }, + { + "id": "SIT-RES-000049", + "diagnostic_id": "SIT-M013", + "field_key": "corrective_independence_disclosures", + "scope_ref": "SIT-SCP-000018", + "population_refs": [ + "SIT-POP-000031" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [ + { + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": "target_object_refs" + }, + "fields": { + "native_record": { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + }, + "qualifications": [ + "Actual owner selection/source reference slot; this record does not establish an applicable review or independent process." + ] + } + ] + }, + "check_refs": [ + "SIT-CHK-000049", + "SIT-CHK-000127", + "SIT-CHK-000253", + "SIT-CHK-000341", + "SIT-CHK-000372", + "SIT-CHK-000427", + "SIT-CHK-000457", + "SIT-CHK-000463", + "SIT-CHK-000568", + "SIT-CHK-000642" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000026" + ], + "interpretation_limit": "Attributed supplied review and exact process assessment only. A human title, employer, endpoint or recorded contribution establishes neither independence nor renewable human judgment. A qualified procedure does not establish institutional execution. Unexamined dimensions and protected or unresolved dependencies remain unestablished; formal checks and execution retain their own constraint kinds. No total independent-human capacity or judgment score follows." + }, + { + "id": "SIT-RES-000050", + "diagnostic_id": "SIT-M013", + "field_key": "human_contribution_disclosures", + "scope_ref": "SIT-SCP-000018", + "population_refs": [ + "SIT-POP-000031" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000050", + "SIT-CHK-000128", + "SIT-CHK-000254", + "SIT-CHK-000342", + "SIT-CHK-000373", + "SIT-CHK-000428", + "SIT-CHK-000458", + "SIT-CHK-000464", + "SIT-CHK-000569", + "SIT-CHK-000643" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Attributed supplied review and exact process assessment only. A human title, employer, endpoint or recorded contribution establishes neither independence nor renewable human judgment. A qualified procedure does not establish institutional execution. Unexamined dimensions and protected or unresolved dependencies remain unestablished; formal checks and execution retain their own constraint kinds. No total independent-human capacity or judgment score follows." + }, + { + "id": "SIT-RES-000051", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000002", + "population_refs": [ + "SIT-POP-000004" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000051", + "SIT-CHK-000129", + "SIT-CHK-000255", + "SIT-CHK-000374", + "SIT-CHK-000429", + "SIT-CHK-000474", + "SIT-CHK-000505", + "SIT-CHK-000536", + "SIT-CHK-000570", + "SIT-CHK-000644" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000052", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000010", + "population_refs": [ + "SIT-POP-000021" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000052", + "SIT-CHK-000130", + "SIT-CHK-000256", + "SIT-CHK-000375", + "SIT-CHK-000430", + "SIT-CHK-000475", + "SIT-CHK-000506", + "SIT-CHK-000537", + "SIT-CHK-000571", + "SIT-CHK-000645" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000053", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000011", + "population_refs": [ + "SIT-POP-000022" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000053", + "SIT-CHK-000131", + "SIT-CHK-000257", + "SIT-CHK-000376", + "SIT-CHK-000431", + "SIT-CHK-000476", + "SIT-CHK-000507", + "SIT-CHK-000538", + "SIT-CHK-000572", + "SIT-CHK-000646" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000054", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000012", + "population_refs": [ + "SIT-POP-000023" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000054", + "SIT-CHK-000132", + "SIT-CHK-000258", + "SIT-CHK-000377", + "SIT-CHK-000432", + "SIT-CHK-000477", + "SIT-CHK-000508", + "SIT-CHK-000539", + "SIT-CHK-000573", + "SIT-CHK-000647" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000055", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000013", + "population_refs": [ + "SIT-POP-000024" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000055", + "SIT-CHK-000133", + "SIT-CHK-000259", + "SIT-CHK-000378", + "SIT-CHK-000433", + "SIT-CHK-000478", + "SIT-CHK-000509", + "SIT-CHK-000540", + "SIT-CHK-000574", + "SIT-CHK-000648" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000056", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000014", + "population_refs": [ + "SIT-POP-000025" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000056", + "SIT-CHK-000134", + "SIT-CHK-000260", + "SIT-CHK-000379", + "SIT-CHK-000434", + "SIT-CHK-000479", + "SIT-CHK-000510", + "SIT-CHK-000541", + "SIT-CHK-000575", + "SIT-CHK-000649" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000057", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000015", + "population_refs": [ + "SIT-POP-000026" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000057", + "SIT-CHK-000135", + "SIT-CHK-000261", + "SIT-CHK-000380", + "SIT-CHK-000435", + "SIT-CHK-000480", + "SIT-CHK-000511", + "SIT-CHK-000542", + "SIT-CHK-000576", + "SIT-CHK-000650" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000058", + "diagnostic_id": "SIT-M014", + "field_key": "anomaly_context_disclosures", + "scope_ref": "SIT-SCP-000016", + "population_refs": [ + "SIT-POP-000027" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000058", + "SIT-CHK-000136", + "SIT-CHK-000262", + "SIT-CHK-000381", + "SIT-CHK-000436", + "SIT-CHK-000481", + "SIT-CHK-000512", + "SIT-CHK-000543", + "SIT-CHK-000577", + "SIT-CHK-000651" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000059", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000002", + "population_refs": [ + "SIT-POP-000004" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000059", + "SIT-CHK-000137", + "SIT-CHK-000263", + "SIT-CHK-000382", + "SIT-CHK-000437", + "SIT-CHK-000482", + "SIT-CHK-000513", + "SIT-CHK-000544", + "SIT-CHK-000578", + "SIT-CHK-000652" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000060", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000010", + "population_refs": [ + "SIT-POP-000021" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000060", + "SIT-CHK-000138", + "SIT-CHK-000264", + "SIT-CHK-000383", + "SIT-CHK-000438", + "SIT-CHK-000483", + "SIT-CHK-000514", + "SIT-CHK-000545", + "SIT-CHK-000579", + "SIT-CHK-000653" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000061", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000011", + "population_refs": [ + "SIT-POP-000022" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000061", + "SIT-CHK-000139", + "SIT-CHK-000265", + "SIT-CHK-000384", + "SIT-CHK-000439", + "SIT-CHK-000484", + "SIT-CHK-000515", + "SIT-CHK-000546", + "SIT-CHK-000580", + "SIT-CHK-000654" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000062", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000012", + "population_refs": [ + "SIT-POP-000023" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000062", + "SIT-CHK-000140", + "SIT-CHK-000266", + "SIT-CHK-000385", + "SIT-CHK-000440", + "SIT-CHK-000485", + "SIT-CHK-000516", + "SIT-CHK-000547", + "SIT-CHK-000581", + "SIT-CHK-000655" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000063", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000013", + "population_refs": [ + "SIT-POP-000024" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000063", + "SIT-CHK-000141", + "SIT-CHK-000267", + "SIT-CHK-000386", + "SIT-CHK-000441", + "SIT-CHK-000486", + "SIT-CHK-000517", + "SIT-CHK-000548", + "SIT-CHK-000582", + "SIT-CHK-000656" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000064", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000014", + "population_refs": [ + "SIT-POP-000025" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000064", + "SIT-CHK-000142", + "SIT-CHK-000268", + "SIT-CHK-000387", + "SIT-CHK-000442", + "SIT-CHK-000487", + "SIT-CHK-000518", + "SIT-CHK-000549", + "SIT-CHK-000583", + "SIT-CHK-000657" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000065", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000015", + "population_refs": [ + "SIT-POP-000026" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000065", + "SIT-CHK-000143", + "SIT-CHK-000269", + "SIT-CHK-000388", + "SIT-CHK-000443", + "SIT-CHK-000488", + "SIT-CHK-000519", + "SIT-CHK-000550", + "SIT-CHK-000584", + "SIT-CHK-000658" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000066", + "diagnostic_id": "SIT-M014", + "field_key": "contestation_disclosures", + "scope_ref": "SIT-SCP-000016", + "population_refs": [ + "SIT-POP-000027" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000066", + "SIT-CHK-000144", + "SIT-CHK-000270", + "SIT-CHK-000389", + "SIT-CHK-000444", + "SIT-CHK-000489", + "SIT-CHK-000520", + "SIT-CHK-000551", + "SIT-CHK-000585", + "SIT-CHK-000659" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000067", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000002", + "population_refs": [ + "SIT-POP-000004" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000067", + "SIT-CHK-000145", + "SIT-CHK-000271", + "SIT-CHK-000390", + "SIT-CHK-000445", + "SIT-CHK-000490", + "SIT-CHK-000521", + "SIT-CHK-000552", + "SIT-CHK-000586", + "SIT-CHK-000660" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000068", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000010", + "population_refs": [ + "SIT-POP-000021" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000068", + "SIT-CHK-000146", + "SIT-CHK-000272", + "SIT-CHK-000391", + "SIT-CHK-000446", + "SIT-CHK-000491", + "SIT-CHK-000522", + "SIT-CHK-000553", + "SIT-CHK-000587", + "SIT-CHK-000661" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000069", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000011", + "population_refs": [ + "SIT-POP-000022" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000069", + "SIT-CHK-000147", + "SIT-CHK-000273", + "SIT-CHK-000392", + "SIT-CHK-000447", + "SIT-CHK-000492", + "SIT-CHK-000523", + "SIT-CHK-000554", + "SIT-CHK-000588", + "SIT-CHK-000662" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000070", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000012", + "population_refs": [ + "SIT-POP-000023" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000070", + "SIT-CHK-000148", + "SIT-CHK-000274", + "SIT-CHK-000393", + "SIT-CHK-000448", + "SIT-CHK-000493", + "SIT-CHK-000524", + "SIT-CHK-000555", + "SIT-CHK-000589", + "SIT-CHK-000663" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000071", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000013", + "population_refs": [ + "SIT-POP-000024" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000071", + "SIT-CHK-000149", + "SIT-CHK-000275", + "SIT-CHK-000394", + "SIT-CHK-000449", + "SIT-CHK-000494", + "SIT-CHK-000525", + "SIT-CHK-000556", + "SIT-CHK-000590", + "SIT-CHK-000664" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000072", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000014", + "population_refs": [ + "SIT-POP-000025" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000072", + "SIT-CHK-000150", + "SIT-CHK-000276", + "SIT-CHK-000395", + "SIT-CHK-000450", + "SIT-CHK-000495", + "SIT-CHK-000526", + "SIT-CHK-000557", + "SIT-CHK-000591", + "SIT-CHK-000665" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000073", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000015", + "population_refs": [ + "SIT-POP-000026" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000073", + "SIT-CHK-000151", + "SIT-CHK-000277", + "SIT-CHK-000396", + "SIT-CHK-000451", + "SIT-CHK-000496", + "SIT-CHK-000527", + "SIT-CHK-000558", + "SIT-CHK-000592", + "SIT-CHK-000666" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000074", + "diagnostic_id": "SIT-M014", + "field_key": "tail_stage_result_links", + "scope_ref": "SIT-SCP-000016", + "population_refs": [ + "SIT-POP-000027" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [] + }, + "check_refs": [ + "SIT-CHK-000074", + "SIT-CHK-000152", + "SIT-CHK-000278", + "SIT-CHK-000397", + "SIT-CHK-000452", + "SIT-CHK-000497", + "SIT-CHK-000528", + "SIT-CHK-000559", + "SIT-CHK-000593", + "SIT-CHK-000667" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Exact supplied context and attributed statements only. Unclassified anomalies may lack a Claim. No automatic rarity, demographic, ideological, truth, motive, suppression or equal-weight vote inference. Protected content remains withheld. Stance does not alter source membership or provenance qualification. Stage links retain the original M010 cohort and scope; no second retention metric or final-only suppression percentage is computed." + }, + { + "id": "SIT-RES-000075", + "diagnostic_id": "SIT-M015", + "field_key": "coverage_disclosures", + "scope_ref": "SIT-SCP-000006", + "population_refs": [ + "SIT-POP-000009" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [ + { + "source": { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-COVER", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "coverage", + "subject_refs": [ + "P4-I001" + ], + "details": { + "coverage_kind": "upstream_history", + "state": "complete_for_scope", + "relation_types": [ + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on" + ], + "dimensions": [ + "acquisition" + ], + "member_refs": [ + "P4-E1", + "P4-O1" + ], + "omitted_refs": [], + "universe_enumerated": true, + "scope_note": "Exactly these two records and all their permitted acquisition-parent predicates." + } + } + }, + "qualification_state": "met", + "reason_codes": [] + }, + "qualifications": [ + "Completeness is attributed only to the exact supplied kind, subjects, predicates, dimension and finite member area." + ] + } + ] + }, + "check_refs": [ + "SIT-CHK-000075", + "SIT-CHK-000153", + "SIT-CHK-000189", + "SIT-CHK-000220", + "SIT-CHK-000668" + ], + "basis_refs": [ + "SIT-BAS-000002" + ], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked." + }, + { + "id": "SIT-RES-000076", + "diagnostic_id": "SIT-M015", + "field_key": "declared_basis_inventory", + "scope_ref": "SIT-SCP-000006", + "population_refs": [ + "SIT-POP-000010" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "partition", + "value": { + "population_ref": "SIT-POP-000010", + "categories": [ + { + "label": "declaration", + "member_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "count": 4 + }, + { + "label": "documented_record", + "member_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-COVER", + "selector": null + }, + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "count": 5 + }, + { + "label": "upstream_inference", + "member_refs": [], + "count": 0 + }, + { + "label": "protected_attestation", + "member_refs": [], + "count": 0 + }, + { + "label": "unspecified", + "member_refs": [], + "count": 0 + } + ], + "total": 9 + }, + "check_refs": [ + "SIT-CHK-000076", + "SIT-CHK-000154", + "SIT-CHK-000190", + "SIT-CHK-000221", + "SIT-CHK-000669" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked." + }, + { + "id": "SIT-RES-000077", + "diagnostic_id": "SIT-M015", + "field_key": "documentary_basis_gap_disclosures", + "scope_ref": "SIT-SCP-000006", + "population_refs": [ + "SIT-POP-000010" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "attributed_record", + "value_kind": "record_disclosures", + "value": { + "records": [ + { + "source": { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-ACTOR", + "kind": "actor", + "data": { + "actor_kind": "human", + "identity_disclosure": "pseudonymous" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ] + }, + { + "source": { + "collection": "records", + "identifier": "P4-ART", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-ART", + "kind": "artifact", + "data": { + "artifact_kind": "document", + "version_label": "v1", + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "content_evidence_refs": [] + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ] + }, + { + "source": { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-CLAIM", + "kind": "claim", + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "version_label": "v1", + "context": "Only the supplied finite example." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ] + }, + { + "source": { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + }, + "fields": { + "native_record": { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + "qualification_state": "unmet", + "reason_codes": [ + "documentary_basis_incomplete", + "support_uninspectable" + ] + }, + "qualifications": [ + "Attributed documentary support only; no authentication or positive-edge eligibility.", + "Supplied declaration; no external authentication." + ] + } + ] + }, + "check_refs": [ + "SIT-CHK-000077", + "SIT-CHK-000155", + "SIT-CHK-000191", + "SIT-CHK-000222", + "SIT-CHK-000670" + ], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000005", + "SIT-BAS-000010", + "SIT-BAS-000011", + "SIT-BAS-000012", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "witness_refs": [], + "reason_refs": [ + "SIT-RSN-000016", + "SIT-RSN-000017", + "SIT-RSN-000018", + "SIT-RSN-000019", + "SIT-RSN-000034", + "SIT-RSN-000035", + "SIT-RSN-000036", + "SIT-RSN-000037" + ], + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked." + }, + { + "id": "SIT-RES-000078", + "diagnostic_id": "SIT-M015", + "field_key": "reference_availability_inventory", + "scope_ref": "SIT-SCP-000006", + "population_refs": [ + "SIT-POP-000008" + ], + "execution_state": "completed", + "result_state": "available", + "result_origin": "inventory", + "value_kind": "partition", + "value": { + "population_ref": "SIT-POP-000008", + "categories": [ + { + "label": "supplied", + "member_refs": [ + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "count": 1 + }, + { + "label": "locator_only", + "member_refs": [], + "count": 0 + }, + { + "label": "withheld", + "member_refs": [], + "count": 0 + }, + { + "label": "unavailable", + "member_refs": [], + "count": 0 + } + ], + "total": 1 + }, + "check_refs": [ + "SIT-CHK-000078", + "SIT-CHK-000156", + "SIT-CHK-000192", + "SIT-CHK-000223", + "SIT-CHK-000671" + ], + "basis_refs": [], + "witness_refs": [], + "reason_refs": [], + "interpretation_limit": "Owner-local inventory of explicitly named supplied records only. Native labels and availability are not authentication, graph eligibility, universal completeness, or an end-to-end analytical execution; Actual same-job PC03 and PC04 provider facts are linked." + } + ], + "findings": [ + { + "id": "SIT-FND-000001", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M009" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000004", + "population_refs": [ + "SIT-POP-000007" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000020" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000002", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M009" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000004", + "population_refs": [ + "SIT-POP-000007" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000021" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000003", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000001" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000004", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000002" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000005", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000003" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000006", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000004" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000007", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000008" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000008", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000009" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000009", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000010" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000010", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000008", + "population_refs": [ + "SIT-POP-000019" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000011" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000011", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000005" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000012", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000006" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000013", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000007" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000014", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000012" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000015", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000013" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000016", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000014" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000017", + "observation_kind": "qualification_gap", + "condition_code": "externality_stage_limitation", + "diagnostic_refs": [ + "SIT-M010" + ], + "threat_family_refs": [ + "SIT-TH012" + ], + "scope_ref": "SIT-SCP-000009", + "population_refs": [ + "SIT-POP-000020" + ], + "basis_refs": [ + "SIT-BAS-000005" + ], + "witness": { + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "components": [ + { + "type": "selected_members", + "members": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "member_count": 1 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [ + "SIT-RSN-000038" + ], + "statement": "This exact externality, stage or transition result retains an unresolved qualification; other stage results keep their own state.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Supplied boundary and stage observations only. Unknowns remain in the full declared cohort. Native conclusions, use records and experimental attributions are not toolkit authentication or causal estimates. No date, human label, missing log, multiplied funnel, global Presence score or adequate-renewal claim follows. Transition quantities require the same exact members and one evidenced admission baseline; influence has no such transition." + }, + { + "id": "SIT-FND-000018", + "observation_kind": "no_witness_in_examined_view", + "condition_code": "scoped_no_witness", + "diagnostic_refs": [], + "threat_family_refs": [], + "scope_ref": "SIT-SCP-000021", + "population_refs": [], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000004" + ], + "witness": { + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "components": [ + { + "type": "graph_witness", + "kind": "no_witness_in_examined_view", + "nodes": [], + "members": [], + "starts": [ + { + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "kind": "assertion" + } + ], + "examined_nodes": [ + { + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "kind": "assertion" + } + ], + "frontiers": [], + "terminals": [ + { + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "kind": "assertion" + } + ], + "edges": [], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [], + "observations": [ + { + "source": { + "ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": null + }, + "kind": "assertion" + }, + "target": { + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + "kind": "evidence_reference" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-BOUND", + "selector": "provenance.evidence_ref_ids" + }, + "predicate": null, + "eligible": false, + "reason_codes": [ + "scope_unestablished" + ] + } + ], + "target": { + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + "kind": "evidence_reference" + }, + "member_count": 5 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [], + "statement": "The completed typed search found no eligible witness between these endpoints in this examined supplied view.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. No outside-world independence or passed threat check follows." + }, + { + "id": "SIT-FND-000019", + "observation_kind": "no_witness_in_examined_view", + "condition_code": "scoped_no_witness", + "diagnostic_refs": [], + "threat_family_refs": [], + "scope_ref": "SIT-SCP-000022", + "population_refs": [], + "basis_refs": [ + "SIT-BAS-000003", + "SIT-BAS-000004" + ], + "witness": { + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + } + ], + "components": [ + { + "type": "graph_witness", + "kind": "no_witness_in_examined_view", + "nodes": [], + "members": [], + "starts": [ + { + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "kind": "assertion" + } + ], + "examined_nodes": [ + { + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "kind": "assertion" + } + ], + "frontiers": [], + "terminals": [ + { + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "kind": "assertion" + } + ], + "edges": [], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [], + "observations": [ + { + "source": { + "ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "kind": "assertion" + }, + "target": { + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + "kind": "evidence_reference" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": "provenance.evidence_ref_ids" + }, + "predicate": null, + "eligible": false, + "reason_codes": [ + "scope_unestablished" + ] + } + ], + "target": { + "ref": { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + "kind": "evidence_reference" + }, + "member_count": 5 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [], + "statement": "The completed typed search found no eligible witness between these endpoints in this examined supplied view.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. No outside-world independence or passed threat check follows." + }, + { + "id": "SIT-FND-000020", + "observation_kind": "positive_witness", + "condition_code": "transformation_path_witness", + "diagnostic_refs": [ + "SIT-M002", + "SIT-M004", + "SIT-M005", + "SIT-M007" + ], + "threat_family_refs": [ + "SIT-TH002" + ], + "scope_ref": "SIT-SCP-000019", + "population_refs": [], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000004", + "SIT-BAS-000005", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "witness": { + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "components": [ + { + "type": "graph_witness", + "kind": "path", + "nodes": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + } + ], + "members": [], + "starts": [], + "examined_nodes": [], + "frontiers": [], + "terminals": [], + "edges": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [], + "observations": [], + "target": null, + "member_count": 3 + }, + { + "type": "graph_witness", + "kind": "complete_trace", + "nodes": [], + "members": [], + "starts": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + } + ], + "examined_nodes": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + } + ], + "frontiers": [], + "terminals": [ + { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + } + ], + "edges": [], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "observations": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "target": null, + "member_count": 6 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [], + "statement": "An eligible explicit path connects these exact endpoints in the named typed view.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation." + }, + { + "id": "SIT-FND-000021", + "observation_kind": "positive_witness", + "condition_code": "transformation_path_witness", + "diagnostic_refs": [ + "SIT-M006" + ], + "threat_family_refs": [ + "SIT-TH002" + ], + "scope_ref": "SIT-SCP-000020", + "population_refs": [], + "basis_refs": [ + "SIT-BAS-000001", + "SIT-BAS-000002", + "SIT-BAS-000003", + "SIT-BAS-000004", + "SIT-BAS-000005", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "witness": { + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "components": [ + { + "type": "graph_witness", + "kind": "path", + "nodes": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + } + ], + "members": [], + "starts": [], + "examined_nodes": [], + "frontiers": [], + "terminals": [], + "edges": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [], + "observations": [], + "target": null, + "member_count": 3 + }, + { + "type": "graph_witness", + "kind": "complete_trace", + "nodes": [], + "members": [], + "starts": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + } + ], + "examined_nodes": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + } + ], + "frontiers": [], + "terminals": [], + "edges": [], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "observations": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "target": null, + "member_count": 5 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [], + "statement": "An eligible explicit path connects these exact endpoints in the named typed view.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation." + }, + { + "id": "SIT-FND-000022", + "observation_kind": "positive_witness", + "condition_code": "transformation_path_witness", + "diagnostic_refs": [], + "threat_family_refs": [ + "SIT-TH002" + ], + "scope_ref": "SIT-SCP-000023", + "population_refs": [], + "basis_refs": [ + "SIT-BAS-000003", + "SIT-BAS-000004", + "SIT-BAS-000013", + "SIT-BAS-000016" + ], + "witness": { + "input_refs": [ + { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + { + "collection": "evidence_references", + "identifier": "P4-SUPPORT", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + { + "collection": "records", + "identifier": "P4-O1", + "selector": null + } + ], + "components": [ + { + "type": "graph_witness", + "kind": "path", + "nodes": [ + { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + } + ], + "members": [], + "starts": [], + "examined_nodes": [], + "frontiers": [], + "terminals": [], + "edges": [ + { + "source": { + "ref": { + "collection": "records", + "identifier": "P4-E1", + "selector": null + }, + "kind": "evidence_item" + }, + "target": { + "ref": { + "collection": "records", + "identifier": "P4-O1", + "selector": null + }, + "kind": "origin_event" + }, + "source_ref": { + "collection": "assertions", + "identifier": "P4-PARENT", + "selector": null + }, + "predicate": "originates_from", + "eligible": true, + "reason_codes": [] + } + ], + "internal_edges": [], + "exit_edges": [], + "examined_edges": [], + "observations": [], + "target": null, + "member_count": 3 + } + ] + }, + "contrary_input_refs": [], + "reason_refs": [], + "statement": "An eligible explicit path connects these exact endpoints in the named typed view.", + "interpretation_limit": "Conditional on the exact supplied scope, versions, premises and evidence basis. This finite observation cannot establish motive, censorship, authenticity, substantive truth, independence outside the examined dimension, causal success or a universal threat verdict. Threat associations are nonexclusive explanatory links, with no incident total or severity. No source contact, quarantine, removal, down-weighting, sanction or other intervention follows. Citation and material paths do not create Claim-specific acquisition dependence, independent corroboration or a syndication accusation." + } + ], + "reasons": [ + { + "id": "SIT-RSN-000001", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000034" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000002", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000035" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000003", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000036" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000004", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000037" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000005", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000031" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000006", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000032" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000007", + "code": "cohort_anchor_missing", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000033" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000008", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000034" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000009", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000035" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000010", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000036" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000011", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000008", + "affected_result_refs": [ + "SIT-RES-000037" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000012", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000031" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000013", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000032" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000014", + "code": "cohort_universe_unestablished", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000033" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000015", + "code": "completion_interval_not_needed", + "scope_ref": "SIT-SCP-000020", + "affected_result_refs": [ + "SIT-RES-000019" + ], + "input_refs": [], + "detail": "Exact scoped contribution limitation; positive records and the full denominator remain visible.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000016", + "code": "documentary_basis_incomplete", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000017", + "code": "documentary_basis_incomplete", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000018", + "code": "documentary_basis_incomplete", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000019", + "code": "documentary_basis_incomplete", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000020", + "code": "externality_unestablished", + "scope_ref": "SIT-SCP-000004", + "affected_result_refs": [ + "SIT-RES-000029" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000021", + "code": "externality_unestablished", + "scope_ref": "SIT-SCP-000004", + "affected_result_refs": [ + "SIT-RES-000030" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000022", + "code": "missing_comparison_assessment", + "scope_ref": "SIT-SCP-000017", + "affected_result_refs": [ + "SIT-RES-000009" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000023", + "code": "missing_comparison_assessment", + "scope_ref": "SIT-SCP-000017", + "affected_result_refs": [ + "SIT-RES-000010" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000024", + "code": "missing_comparison_assessment", + "scope_ref": "SIT-SCP-000017", + "affected_result_refs": [ + "SIT-RES-000011" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000025", + "code": "missing_comparison_assessment", + "scope_ref": "SIT-SCP-000017", + "affected_result_refs": [ + "SIT-RES-000012" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact supplied comparison retains the identified prerequisite limitation. A missing qualification is not zero independent members or a conclusion about other comparisons.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000026", + "code": "missing_comparison_assessment", + "scope_ref": "SIT-SCP-000018", + "affected_result_refs": [ + "SIT-RES-000049" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "The supplied review/process record retains this exact qualification limit. Visible contribution does not resolve missing process evidence or dependencies.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000027", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000025" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000028", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000026" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000029", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000027" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000030", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000028" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000031", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000038" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000032", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000039" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000033", + "code": "no_applicable_subject", + "scope_ref": "SIT-SCP-000005", + "affected_result_refs": [ + "SIT-RES-000040" + ], + "input_refs": [], + "detail": "No eligible subject tuple was supplied for this finite operation.", + "classification": "structural_inapplicability" + }, + { + "id": "SIT-RSN-000034", + "code": "support_uninspectable", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000035", + "code": "support_uninspectable", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ACTOR", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000036", + "code": "support_uninspectable", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "records", + "identifier": "P4-ART", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000037", + "code": "support_uninspectable", + "scope_ref": "SIT-SCP-000006", + "affected_result_refs": [ + "SIT-RES-000077" + ], + "input_refs": [ + { + "collection": "records", + "identifier": "P4-CLAIM", + "selector": null + } + ], + "detail": "The attributed named record retains this local qualification; its native inventory label is unchanged.", + "classification": "evidence_gap" + }, + { + "id": "SIT-RSN-000038", + "code": "transition_baseline_unestablished", + "scope_ref": "SIT-SCP-000009", + "affected_result_refs": [ + "SIT-RES-000032" + ], + "input_refs": [ + { + "collection": "inquiries", + "identifier": "P4-I001", + "selector": null + } + ], + "detail": "This exact boundary/stage/cohort question retains the supplied limitation; no missing evidence is converted into a negative observation or a smaller denominator.", + "classification": "evidence_gap" + } + ], + "release_limits": [ + "Offline analysis of caller-supplied records only.", + "Source identity, authenticity and external events are not independently authenticated.", + "No live monitoring or active content-level poisoning, injection or authorship detection was performed.", + "No universal truth, integrity, independence or safety score is produced.", + "No automatic intervention, source contact or changes to the audited system are performed.", + "Scope-specific evidence gaps and qualifications remain as recorded; missing records do not establish outside-world absence." + ] + }, + "exact_bytes": { + "json": { + "size_bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "markdown": { + "size_bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + } + } +} diff --git a/tests/scaffold/test_contract_catalogs.py b/tests/scaffold/test_contract_catalogs.py index 1b25661..7a7647a 100644 --- a/tests/scaffold/test_contract_catalogs.py +++ b/tests/scaffold/test_contract_catalogs.py @@ -242,20 +242,24 @@ def test_control_case_groups_and_exact_future_paths(self): self.assertEqual(set(flat), set(groups[2]["ids"])) def test_schemas_are_documentation_only(self): - # Historical node name retained; bundle delivered, public report schema reserved. + # Historical node name retained; both repository structural schemas delivered. bundle_delivered = True paths = {p.relative_to(ROOT / "schemas").as_posix() for p in (ROOT / "schemas").rglob("*") if p.is_file()} - expected = {"README.md", "bundle/README.md", "report/README.md"} + expected = {"README.md", "bundle/README.md", "report/README.md", + "report/sit-report-0.1.schema.json"} if bundle_delivered: expected.add("bundle/sit-bundle-0.1.schema.json") self.assertEqual(paths, expected) for name, contract in (("bundle", "sit-bundle/0.1"), ("report", "sit-report/0.1")): text = (ROOT / "schemas" / name / "README.md").read_text(encoding="utf-8") self.assertIn(contract, text) - if name == "report" or not bundle_delivered: + if name == "report": + self.assertIn("structural schema delivered", text) + self.assertIn("public audit execution remains unavailable", text) + elif not bundle_delivered: self.assertIn("executable schema not delivered", text) - if bundle_delivered: - schema = json.loads((ROOT / "schemas/bundle/sit-bundle-0.1.schema.json").read_bytes(), object_pairs_hook=pairs_unique) + for name in (("bundle", "report") if bundle_delivered else ("report",)): + schema = json.loads((ROOT / f"schemas/{name}/sit-{name}-0.1.schema.json").read_bytes(), object_pairs_hook=pairs_unique) self.assertEqual(schema["$schema"], "https://json-schema.org/draft/2020-12/schema") stack = [schema] while stack: From d0121946c9a13a9b035d74921a7ac99c3ce0389f Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 20:26:55 -0700 Subject: [PATCH 05/21] Bind current verification probes to validated activation stage SIT-Phase-Unit: P4-W01 --- phase4/implementation_evidence.json | 40 +++++++++++++++++-- tests/contract/test_verification_boundary.py | 41 +++++++++++++------- 2 files changed, 64 insertions(+), 17 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 890ae28..b616530 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,7 +1,7 @@ { "phase": "P4", "current_unit": "P4-W02", - "status": "W02 implementation, independent reference and targeted validation complete; exact published-head hosted checks pending at this record", + "status": "W02 first hosted candidate failed; W01 verification-owner repair and W02 nested-variant coverage completion in progress; no acceptance claimed", "owner_authorization": { "instruction": "启动 P4-W02", "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", @@ -39,7 +39,7 @@ "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output." ], - "changed_scope": "Exactly the fourteen P4-W02 paths listed by PHASE_4_PLAN.md; plan, workflow, dependency pins, budgets, input schema, analysis/graph/validation modules, API, renderers and runtime files remain frozen.", + "changed_scope": "The first W02 candidate changed exactly fourteen W02 paths. This W01-owned repair changes only tests/contract/test_verification_boundary.py and this shared evidence record under plan sections 7.2 and 9; prior W02 activation remains stage 2.", "guarantee_migrations": [ { "path": "tests/contract/test_input_schema_mapping.py", @@ -48,6 +48,11 @@ { "path": "tests/scaffold/test_contract_catalogs.py", "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { @@ -247,6 +252,17 @@ "status_at_record": "pending", "record_location": "PR #36 exact-head checks and raw workflow artifacts", "note": "Actual later hosted outcome is recorded externally without a self-referential evidence-only successor. No documentation-only exemption is used for W02." + }, + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "Both Ubuntu profiles failed with 27 tests; both Windows profiles still in progress", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "Failure artifacts retained separately. No all-zero receipt set or full installed-witness completion is claimed." } }, "failures_and_repairs": [ @@ -301,6 +317,22 @@ "p4w02-oracle-final-review.json", "tests/contract/test_report_test_oracles.py" ] + }, + { + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Patch and independent read-only review completed; clean W01-owner checkout testing pending at this commit.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ] + }, + { + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Coverage completion in progress; no W03 or W04 implementation authorized." } ], "remaining": { @@ -547,6 +579,6 @@ } ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T02:44:05.675016+00:00", - "publication_note": "Targeted tests were run against the final W02 code/schema/tests before this evidence record was written. Exact source hashes are retained externally. Hosted final-head facts belong to the actual PR/run receipts, not this pre-publication record." + "validated_at_utc": "2026-10-15T03:17:04.556793+00:00", + "publication_note": "This is a W01-owner verification repair checkpoint, with W02 activation preserved. Source review is complete but isolated repair tests and later corrected W02 hosted matrix are pending. Original failed run remains evidence; this record is not acceptance." } diff --git a/tests/contract/test_verification_boundary.py b/tests/contract/test_verification_boundary.py index 433629b..e624957 100644 --- a/tests/contract/test_verification_boundary.py +++ b/tests/contract/test_verification_boundary.py @@ -276,11 +276,20 @@ def module_sources(): return {p.relative_to(package).as_posix(): p.read_bytes() for p in package.rglob("*.py")} +@pytest.fixture(scope="module") +def current_stage(): + # Resolve actual checkout provenance only during test execution. Collection + # remains Git-free, and an earlier-owner repair cannot lower activation. + state = guard.current_local_state(ROOT) + return state["activation_stage"] + + @pytest.mark.parametrize("case", ["without_git", "git_blocked", "poisoned_git_output"]) def test_current_test_loading_has_no_historical_blob_execution(tmp_path, case): paths = ["tests/scaffold/" + name + ".py" for name in ( "test_imports", "test_module_manifest", "test_no_runtime_implementation", "test_layer_boundaries", "test_contract_catalogs", "test_ci_contract")] + paths.append("tests/contract/test_verification_boundary.py") root = ROOT if case == "without_git": root = tmp_path / "source-only" @@ -374,20 +383,26 @@ def test_current_package_probe_cannot_substitute_for_checkout_authorization(repo guard.current_checkout(repo, ENTRY) -def test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls(): +def test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls(current_stage): sources = module_sources() - assert {p: hashlib.sha256(raw).hexdigest() for p, raw in sources.items()} == SOURCE_SHA256 - assert guard.current_module_issues(sources, stage=1) == [] - for path in SOURCE_SHA256: + frozen = {path for path in SOURCE_SHA256 + if path not in ACTIVATION or current_stage < ACTIVATION[path]} + assert set(sources) == set(SOURCE_SHA256) + assert {p: hashlib.sha256(sources[p]).hexdigest() for p in frozen} == { + p: SOURCE_SHA256[p] for p in frozen} + # The anchor test still checks all 48 original hashes. Current bytes remain + # pinned only until their independently transcribed activation boundary. + assert guard.current_module_issues(sources, stage=current_stage) == [] + for path in frozen: changed = dict(sources) changed[path] += b'\n# unauthorized byte change\n' - assert (path, 'accepted_blob_changed') in guard.current_module_issues(changed, stage=1) + assert (path, 'accepted_blob_changed') in guard.current_module_issues(changed, stage=current_stage) for path in set(SOURCE_SHA256) - set(ACTIVATION): changed = dict(sources) changed[path] += b'\n# permanently frozen byte change\n' assert (path, 'accepted_blob_changed') in guard.current_module_issues(changed, stage=10) assert len(set(SOURCE_SHA256) - set(ACTIVATION)) == 36 - assert guard.current_module_issues(sources, stage=1) == [] + assert guard.current_module_issues(sources, stage=current_stage) == [] @pytest.mark.parametrize("case,code", [ @@ -396,11 +411,11 @@ def test_current_package_frozen_preparation_bytes_have_positive_and_negative_con ("public_report", "non_scaffold_body"), ("encoding", "invalid_utf8"), ("active_size", "oversize_module"), ("inert_size", "oversize_module"), ]) -def test_current_module_ceiling_and_protected_slots(case, code): +def test_current_module_ceiling_and_protected_slots(case, code, current_stage): sources = module_sources() assert len(sources) == 48 assert len(ACTIVATION) == 12 and len(set(sources) - set(ACTIVATION)) == 36 - assert guard.current_module_issues(sources) == [] + assert guard.current_module_issues(sources, stage=current_stage) == [] path = "graph/cycles.py" if case == "extra": path = "analysis/future.py"; sources[path] = b"" elif case == "missing": del sources[path] @@ -414,10 +429,10 @@ def test_current_module_ceiling_and_protected_slots(case, code): limit = 262144 if case == "active_size" else 16384 if case == "inert_size": path = "reporting/json_report.py" sources[path] = b"#" * limit - assert (path, "oversize_module") not in guard.current_module_issues(sources) + assert (path, "oversize_module") not in guard.current_module_issues(sources, stage=current_stage) sources[path] += b"#" - assert (path, code) in guard.current_module_issues(sources) - assert guard.current_module_issues(module_sources()) == [] + assert (path, code) in guard.current_module_issues(sources, stage=current_stage) + assert guard.current_module_issues(module_sources(), stage=current_stage) == [] @pytest.mark.parametrize("path,reason", [ @@ -588,9 +603,9 @@ def test_current_checkout_rejects_out_of_scope_states(repo, case, reason): ("graph/cycles.py", b"from ..... import x\n", "relative_import_escape"), ("graph/cycles.py", b"from typing import *\n", "wildcard_import"), ]) -def test_current_live_effects_and_dependencies(path, payload, code): +def test_current_live_effects_and_dependencies(path, payload, code, current_stage): sources = module_sources() - assert guard.current_module_issues(sources) == [] + assert guard.current_module_issues(sources, stage=current_stage) == [] sources[path] = payload assert code in guard.current_live_issues(path, payload.decode(), stage=1) From 3b9d8a9ea5fc8c795859f74072f061efdea471e7 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 20:36:15 -0700 Subject: [PATCH 06/21] Complete independent nested report contract controls Preserve first CI failures, verify the W01 stage repair, and cover every closed object and member without activating later work units. SIT-Phase-Unit: P4-W02 --- phase4/implementation_evidence.json | 310 +++++- phase4/report_contract_coverage.json | 61 +- tests/contract/test_report_contract.py | 1240 +++++++++++++++++++++++- 3 files changed, 1570 insertions(+), 41 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index b616530..5a623bc 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,7 +1,7 @@ { "phase": "P4", "current_unit": "P4-W02", - "status": "W02 first hosted candidate failed; W01 verification-owner repair and W02 nested-variant coverage completion in progress; no acceptance claimed", + "status": "W02 contracts, independent reference, complete nested controls and targeted validation verified; W01 verification-owner repair verified; final corrected published-head hosted matrix pending at this record", "owner_authorization": { "instruction": "启动 P4-W02", "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", @@ -37,9 +37,10 @@ "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output." + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], - "changed_scope": "The first W02 candidate changed exactly fourteen W02 paths. This W01-owned repair changes only tests/contract/test_verification_boundary.py and this shared evidence record under plan sections 7.2 and 9; prior W02 activation remains stage 2.", + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen.", "guarantee_migrations": [ { "path": "tests/contract/test_input_schema_mapping.py", @@ -57,24 +58,24 @@ ], "validation": { "targeted_final": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, "successful_subtests": 12, - "pytest_seconds": 28.53, + "pytest_seconds": 83.33, "junit": { "name": "pytest", "errors": "0", "failures": "0", "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", "hostname": "502c238e1080" }, "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, + "tests.contract.test_report_contract": 5725, "tests.contract.test_report_test_oracles": 89, "tests.contract.test_input_schema_mapping": 75, "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, @@ -83,18 +84,31 @@ "tests.contract.test_prerequisite_contract": 110, "tests.security.test_input_diagnostics": 32 }, + "same_ordered_test_identities_as_combined_02": true, "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" } }, "legacy_private_definitions": { @@ -248,21 +262,228 @@ }, "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": { - "status_at_record": "pending", - "record_location": "PR #36 exact-head checks and raw workflow artifacts", - "note": "Actual later hosted outcome is recorded externally without a self-referential evidence-only successor. No documentation-only exemption is used for W02." - }, + "hosted_four_profiles": "Corrected final-head matrix pending at this record; first candidate run 38672908042 failed and is separately retained.", "first_hosted_candidate": { "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", "run_id": 38672908042, "attempt": 1, - "state_at_record": "Both Ubuntu profiles failed with 27 tests; both Windows profiles still in progress", + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", "passed_tests_per_completed_profile": 4789, "failed_tests_per_completed_profile": 27, "successful_subtests_per_completed_profile": 533, - "note": "Failure artifacts retained separately. No all-zero receipt set or full installed-witness completion is claimed." + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } + }, + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + }, + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." + }, + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + }, + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" + } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" + }, + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." + }, + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 + }, + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." } }, "failures_and_repairs": [ @@ -322,17 +543,40 @@ "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", "owner_unit": "P4-W01", "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Patch and independent read-only review completed; clean W01-owner checkout testing pending at this commit.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", "evidence": [ "p4w02-ci-38672908042", "tests/contract/test_verification_boundary.py" - ] + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." }, { "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", "owner_unit": "P4-W02", "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Coverage completion in progress; no W03 or W04 implementation authorized." + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." + }, + { + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] } ], "remaining": { @@ -579,6 +823,6 @@ } ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T03:17:04.556793+00:00", - "publication_note": "This is a W01-owner verification repair checkpoint, with W02 activation preserved. Source review is complete but isolated repair tests and later corrected W02 hosted matrix are pending. Original failed run remains evidence; this record is not acceptance." + "validated_at_utc": "2026-10-15T03:35:18.984279+00:00", + "publication_note": "This pre-publication record describes actual local focused verification and preserved first-run failures. The two repair commits retain their own W01/W02 path ownership and stage 2. Final exact-head history checks and hosted receipts are recorded externally in the PR/evidence package after publication, without a self-referential result commit." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index ed84e55..4289120 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -11734,7 +11734,9 @@ ], "execution_evidence": [ "p4w02-targeted-combined-01.log", - "p4w02-targeted-combined-01.xml" + "p4w02-targeted-combined-01.xml", + "p4w02-targeted-combined-03.log", + "p4w02-targeted-combined-03.xml" ] }, { @@ -11750,7 +11752,9 @@ ], "execution_evidence": [ "p4w02-targeted-combined-01.log", - "p4w02-targeted-combined-01.xml" + "p4w02-targeted-combined-01.xml", + "p4w02-targeted-combined-03.log", + "p4w02-targeted-combined-03.xml" ] }, { @@ -14735,6 +14739,56 @@ } ], "w02_verification": { + "tests": 6217, + "successful_subtests": 12, + "seconds": 83.33, + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "new_contract_test_count": 5725, + "new_oracle_test_count": 89, + "schema_test_claim": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification", + "reference": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "pending": "All 228 field obligations retain their existing pending public-pipeline/rendering state; representation tests do not close assembly, execution, privacy or release acceptance.", + "nested_contract_coverage": { + "closed_object_locations": 160, + "member_locations": 627, + "source_annotated_additional_examples": 294, + "disclosure_closed_branches": 29, + "all_members_have_positive_type_and_missing_or_optional_controls": true, + "all_objects_have_extra_member_controls": true, + "array_item_controls": true, + "audit_file": "p4w02-contract-closed-object-coverage.json", + "audit_sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "N01_sha256": "06327f21524b93248bfde00a4b0dafbd08886e3988cf2948f1e4cf6eb60b23fa" + }, + "same_6217_test_identities_before_and_after_schema_decode_reuse": true, + "raw": [ + "p4w02-targeted-combined-03.log", + "p4w02-targeted-combined-03.xml", + "p4w02-targeted-combined-03-exit.json" + ] + }, + "w02_initial_targeted_verification": { "tests": 1445, "successful_subtests": 12, "seconds": 28.53, @@ -14764,6 +14818,7 @@ "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" } }, - "pending": "All 228 field obligations retain their existing pending public-pipeline/rendering state; representation tests do not close assembly, execution, privacy or release acceptance." + "pending": "All 228 field obligations retain their existing pending public-pipeline/rendering state; representation tests do not close assembly, execution, privacy or release acceptance.", + "qualification": "Initial local pass is retained, but independent review found omitted nested variant controls; superseded for coverage completeness by the final 6217-test targeted run." } } diff --git a/tests/contract/test_report_contract.py b/tests/contract/test_report_contract.py index dd8614f..9fbb997 100644 --- a/tests/contract/test_report_contract.py +++ b/tests/contract/test_report_contract.py @@ -61,6 +61,34 @@ def unique(pairs): return json.loads(path.read_bytes(), object_pairs_hook=unique) +_REPORT_SCHEMA = None + + +def report_schema(): + """Reuse only the file schema's decoded, test-read-only value.""" + global _REPORT_SCHEMA + if _REPORT_SCHEMA is None: + _REPORT_SCHEMA = load_json(SCHEMA_PATH) + return _REPORT_SCHEMA + + +@pytest.fixture(scope="module", autouse=True) +def _verify_report_schema_remains_unchanged(): + original_bytes = SCHEMA_PATH.read_bytes() + cached = report_schema() + fresh = load_json(SCHEMA_PATH) + assert cached == fresh + assert json.dumps(cached, sort_keys=True) == json.dumps(fresh, sort_keys=True) + try: + yield + finally: + fresh = load_json(SCHEMA_PATH) + assert report_schema() is cached + assert cached == fresh + assert json.dumps(cached, sort_keys=True) == json.dumps(fresh, sort_keys=True) + assert SCHEMA_PATH.read_bytes() == original_bytes + + def json_equal(left, right): """JSON scalar equality keeps booleans separate from numbers.""" if type(left) in (int, float) and type(right) in (int, float): @@ -253,14 +281,14 @@ def diagnostic_document(kind="processing_diagnostics", state="failed", input_sta def assert_both(document): - schema = load_json(SCHEMA_PATH) + schema = report_schema() assert schema_accepts(document, schema, schema) return validate(document) def assert_rejected(document, *, schema_too=True): if schema_too: - schema = load_json(SCHEMA_PATH) + schema = report_schema() assert not schema_accepts(document, schema, schema) with pytest.raises(TypeError): validate(document) @@ -730,7 +758,7 @@ def validate_component(value, shape): def assert_component(value, shape): - schema = load_json(SCHEMA_PATH) + schema = report_schema() assert schema_accepts(value, schema["$defs"][shape], schema), shape port = validate_component(value, shape) assert port.units > 0 and port.checks > 0 @@ -739,7 +767,7 @@ def assert_component(value, shape): def reject_component(value, shape, *, schema_too=True): if schema_too: - schema = load_json(SCHEMA_PATH) + schema = report_schema() assert not schema_accepts(value, schema["$defs"][shape], schema), shape with pytest.raises(TypeError, match="^invalid_report_contract$"): validate_component(value, shape) @@ -822,7 +850,7 @@ def test_python_count_rejects_integral_float_despite_json_schema_integer_semanti baseline = result_example() assert_component(baseline, "Result") baseline["value"] = 2.0 - schema = load_json(SCHEMA_PATH) + schema = report_schema() assert schema_accepts(baseline, schema["$defs"]["Result"], schema) reject_component(baseline, "Result", schema_too=False) @@ -1517,3 +1545,1205 @@ def test_scope_and_capability_owners_are_whole_inquiry_or_claim_entities(shape, else: value[member]["selector"] = "boundary.system_refs" reject_component(value, shape) + + +# W02 exhaustive nested/selected-object contract specimens and member controls. + +"""Independent literal candidates for N01; not a production projection. + +Sources: CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md sections 3--6.12 and the +previously admitted tests/fixtures/hero/H7-01.bundle.json. Source field names +and enum members are transcribed here; public selection is explicitly written. +No product constants, report schema, renderer or W04 disclosure code is used. +The host N01 module supplies time_value() and provenance_example(). +""" + + +def native_record_examples(): + """Return independently authored selected-native and nested positives.""" + source = "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md" + gap = { + "field": "data.version_label", "reason": "not_recorded", + "detail": "The supplied source does not record a version label.", + } + window = { + "start": time_value("known", "2026-01-01", "date"), + "end": time_value("known", "2026-01-31", "date"), + } + boundary = { + "description": "The represented answer and review workflow.", + "criterion": "An independently acquired observation lies outside this workflow.", + "system_refs": ["ART-1", "MODEL-1", "ACTOR-1", "EVAL-1"], + } + role = { + "role": "human_reviewer", "object_ref": "ACTOR-1", + "evidence_ref_ids": ["REF-1"], + "qualifications": ["The role is supplied metadata, not an independent vote."], + } + inquiry = { + "id": "INQ-1", "target_claim_refs": ["CLAIM-1"], + "target_object_refs": ["ART-1", "MODEL-1", "EVAL-1"], + "seed_artifact_refs": ["ART-1"], "seed_evidence_refs": ["EVID-1"], + "boundary": boundary, "time_window": window, + "as_of": time_value("known", "2026-01-31", "date"), + "dependency_dimensions": ["acquisition", "analytical_method"], + "coverage_assertion_refs": ["ASS-COVERAGE-1"], + "provenance": provenance_example(), + } + evidence = { + "id": "REF-1", "reference_kind": "supplied_excerpt", + "availability": "supplied", "artifact_ref": "ART-1", + "record_ref": None, "provided_by_ref": "ACTOR-1", + "attestor_ref": None, + "scope_note": "The supplied source excerpt supports this process description.", + } + submission = { + "submission_kind": "proposed_correction", + "summary": "The submitter proposes replacing the recorded review assignment.", + } + handling = { + "outcome": "accepted", "reason": "The supplied handling record accepts the request.", + } + change = { + "action_type": "replace_evaluator", "before_ref": "EVAL-1", + "after_ref": "EVAL-2", "after_absence_reason": None, + "linkage_description": "The supplied change links the old and new evaluation records.", + } + # Each payload is typed directly from the corresponding frozen source table. + # Suppressed fields are intentionally absent from these literal public bags. + data = { + "claim": { + "claim_key": "CLAIM-FAMILY-1", "version_label": "v1", + "context": "The statement concerns the declared inquiry and January window.", + }, + "artifact": { + "artifact_kind": "document", "version_label": "v1", + "published_at": time_value("known", "2026-01-02", "date"), + "retrieved_at": time_value("known", "2026-01-03", "date"), + "content_evidence_refs": ["REF-1"], + }, + "actor": {"actor_kind": "human", "identity_disclosure": "pseudonymous"}, + "evidence_item": { + "claim_ref": "CLAIM-1", "artifact_ref": "ART-1", + "epistemic_type": "documentary_statement", + "description": "The source contributes a scoped documentary statement.", + }, + "origin_event": { + "event_kind": "observation", "event_key": "OBSERVATION-1", + "performed_by_refs": ["ACTOR-1"], "method_ref": "ART-METHOD-1", + "occurred_at": time_value("known", "2026-01-02", "date"), + "description": "A supplied observation event with an attributed method.", + }, + "model": { + "model_key": "MODEL-FAMILY-1", "version_label": "v1", + "family_label": "Declared family", "provider_ref": "ACTOR-ORG-1", + }, + "evaluation": { + "evaluation_kind": "human_review", "target_refs": ["CLAIM-1", "ART-1"], + "role_bindings": [role], "result_refs": ["ART-RESULT-1"], + "occurred_at": time_value("known", "2026-01-05", "date"), + "review_contribution": "The reviewer supplied an external comparison record.", + }, + "correction_channel": { + "owner_refs": ["ACTOR-1"], "target_refs": ["CLAIM-1", "EVAL-1"], + "declared_action_types": ["review", "replace_evaluator"], + "valid_window": window, + }, + "correction_event_submission": { + "event_kind": "submission", "case_ref": None, "channel_ref": "CHANNEL-1", + "target_refs": ["EVAL-1"], + "occurred_at": time_value("known", "2026-01-06", "date"), + "details": submission, + }, + "correction_event_handling": { + "event_kind": "handling", "case_ref": "CASE-1", "channel_ref": "CHANNEL-1", + "target_refs": ["EVAL-1"], + "occurred_at": time_value("known", "2026-01-07", "date"), + "details": handling, + }, + "correction_event_change": { + "event_kind": "change", "case_ref": "CASE-1", "channel_ref": "CHANNEL-1", + "target_refs": ["EVAL-1"], + "occurred_at": time_value("known", "2026-01-08", "date"), + "details": change, + }, + "pipeline_record": { + "subject_ref": "EVID-1", "run_key": "RUN-1", "stage_key": "STEP-1", + "stage": "preservation", "state": "occurred", "output_refs": ["ART-OUTPUT-1"], + "observed_at": time_value("known", "2026-01-09", "date"), + "linkage_kind": "use_record", + "detail": "The source records preservation of this contribution in the output.", + }, + "anomaly": { + "inquiry_refs": ["INQ-1"], "claim_ref": None, + "original_context": "An observation does not fit the current claim classification.", + "context_evidence_ref": None, "classification_state": "unclassified", + "caller_label": None, + "comparison_note": "The caller supplied a comparison; no rarity estimate is inferred.", + }, + "unresolved_reference": { + "expected_kinds": ["origin_event", "evidence_item"], + "reason": "outside_snapshot", + "description": "The referenced upstream process lies outside the supplied snapshot.", + }, + } + # IDs, kinds and shape bindings are handwritten and independent of product + # RECORD_SHAPES; they provide the positive baseline for wrong-binding tests. + bindings = ( + ("claim", "CLAIM-1", "claim", "SelectedClaimData", "6.1"), + ("artifact", "ART-1", "artifact", "SelectedArtifactData", "6.2"), + ("actor", "ACTOR-1", "actor", "SelectedActorData", "6.3"), + ("evidence_item", "EVID-1", "evidence_item", "SelectedEvidenceItemData", "6.4"), + ("origin_event", "ORIGIN-1", "origin_event", "SelectedOriginEventData", "6.5"), + ("model", "MODEL-1", "model", "SelectedModelData", "6.6"), + ("evaluation", "EVAL-1", "evaluation", "SelectedEvaluationData", "6.7"), + ("correction_channel", "CHANNEL-1", "correction_channel", "SelectedCorrectionChannelData", "6.8"), + ("correction_event_submission", "CASE-1", "correction_event", "SelectedCorrectionEventData", "6.9"), + ("correction_event_handling", "HANDLING-1", "correction_event", "SelectedCorrectionEventData", "6.9"), + ("correction_event_change", "CHANGE-1", "correction_event", "SelectedCorrectionEventData", "6.9"), + ("pipeline_record", "PIPE-1", "pipeline_record", "SelectedPipelineRecordData", "6.10"), + ("anomaly", "ANOMALY-1", "anomaly", "SelectedAnomalyData", "6.11"), + ("unresolved_reference", "UNRESOLVED-1", "unresolved_reference", "SelectedUnresolvedReferenceData", "6.12"), + ) + examples = { + "gap": {"shape": "SelectedGap", "value": gap, "source": source + " §3.3"}, + "boundary": {"shape": "SelectedBoundary", "value": boundary, "source": source + " §5"}, + "role_binding": {"shape": "SelectedRoleBinding", "value": role, "source": source + " §6.7"}, + "inquiry": {"shape": "SelectedInquiry", "value": inquiry, "source": source + " §5"}, + "native_inquiry": {"shape": "SelectedNative", "value": inquiry, "source": source + " §5"}, + "evidence_reference": {"shape": "SelectedEvidenceReference", "value": evidence, "source": source + " §4"}, + "native_evidence_reference": {"shape": "SelectedNative", "value": evidence, "source": source + " §4"}, + "submission_details": {"shape": "SelectedSubmissionDetails", "value": submission, "source": source + " §6.9"}, + "handling_details": {"shape": "SelectedHandlingDetails", "value": handling, "source": source + " §6.9"}, + "change_details": {"shape": "SelectedChangeDetails", "value": change, "source": source + " §6.9"}, + } + for label, identifier, kind, shape, section in bindings: + origin = source + " §" + section + envelope = {"id": identifier, "kind": kind, "data": data[label], + "provenance": provenance_example()} + examples["data_" + label] = {"shape": shape, "value": data[label], "source": origin} + examples["record_" + label] = {"shape": "SelectedRecord", "value": envelope, "source": origin} + examples["native_" + label] = {"shape": "SelectedNative", "value": envelope, "source": origin} + # Presence/absence are intentional source distinctions. No automatic labels, + # identifiers, locator fields or arbitrary extension fields are introduced. + examples.update({ + "inquiry_gaps_present": { + "shape": "SelectedInquiry", + "value": {**inquiry, "gaps": [{"field": "coverage_assertion_refs", + "reason": "not_examined", "detail": "Some dimensions were not examined."}]}, + "source": source + " §§3.3,5", + }, + "inquiry_gaps_empty": { + "shape": "SelectedInquiry", "value": {**inquiry, "gaps": []}, + "source": source + " §§3.3,5", + }, + "inquiry_window_note_present": { + "shape": "SelectedInquiry", + "value": {**inquiry, "time_window": {**window, "note": "January source window."}}, + "source": source + " §§3.1,5", + }, + "claim_content_ref_present": { + "shape": "SelectedClaimData", "value": {**data["claim"], "content_evidence_ref": "REF-1"}, + "source": source + " §6.1", + }, + "claim_unknown_version_with_gap": { + "shape": "SelectedRecord", + "value": {"id": "CLAIM-UNKNOWN", "kind": "claim", + "data": {**data["claim"], "version_label": None}, + "provenance": provenance_example(), "gaps": [gap]}, + "source": source + " §§3.3,6.1", + }, + "record_gaps_empty": { + "shape": "SelectedRecord", "value": {**examples["record_actor"]["value"], "gaps": []}, + "source": source + " §§3.3,6", + }, + "change_explicit_removal": { + "shape": "SelectedChangeDetails", + "value": {"action_type": "retract", "before_ref": "EVAL-1", "after_ref": None, + "after_absence_reason": "The source explicitly records removal of this evaluation.", + "linkage_description": "The supplied removal event names the before-state."}, + "source": source + " §6.9", + }, + "anomaly_caller_classified": { + "shape": "SelectedAnomalyData", + "value": {**data["anomaly"], "classification_state": "caller_classified", + "caller_label": "Caller supplied class"}, + "source": source + " §6.11", + }, + "anomaly_protected_context_with_gap": { + "shape": "SelectedRecord", + "value": {"id": "ANOMALY-PROTECTED", "kind": "anomaly", + "data": {**data["anomaly"], "original_context": None, + "context_evidence_ref": "REF-ATTESTATION"}, + "provenance": provenance_example(), + "gaps": [{"field": "data.original_context", "reason": "withheld", + "detail": "The original context survives through the protected reference."}]}, + "source": source + " §§3.3,6.11", + }, + "evidence_record_pointer": { + "shape": "SelectedEvidenceReference", + "value": {**evidence, "reference_kind": "record_pointer", "record_ref": "EVAL-1"}, + "source": source + " §4.2", + }, + "evidence_local_locator": { + "shape": "SelectedEvidenceReference", + "value": {**evidence, "reference_kind": "local_locator", "availability": "locator_only"}, + "source": source + " §4.2 (inert source locator is not a selected member)", + }, + "evidence_external_locator": { + "shape": "SelectedEvidenceReference", + "value": {**evidence, "reference_kind": "external_locator", "availability": "locator_only"}, + "source": source + " §4.2 (inert source locator is not a selected member)", + }, + "evidence_protected_attestation": { + "shape": "SelectedEvidenceReference", + "value": {**evidence, "reference_kind": "protected_attestation", "attestor_ref": "ACTOR-1", + "scope_note": "A supplied attestation supports only its stated process scope."}, + "source": source + " §4.2", + }, + "evidence_protected_unavailable": { + "shape": "SelectedEvidenceReference", + "value": {**evidence, "reference_kind": "protected_attestation", "availability": "unavailable", + "attestor_ref": "ACTOR-1", + "gaps": [{"field": "excerpt", "reason": "unavailable", + "detail": "The unavailable attestation is not inspectable support."}]}, + "source": source + " §§3.3,4.2", + }, + "evidence_protected_withheld": { + "shape": "SelectedEvidenceReference", + "value": {**evidence, "reference_kind": "protected_attestation", "availability": "withheld", + "attestor_ref": "ACTOR-1", + "gaps": [{"field": "excerpt", "reason": "withheld", + "detail": "The attestation content is withheld from this snapshot."}]}, + "source": source + " §§3.3,4.2", + }, + "evidence_gaps_empty": { + "shape": "SelectedEvidenceReference", "value": {**evidence, "gaps": []}, + "source": source + " §§3.3,4.1", + }, + "selected_pipeline_record": { + "shape": "SelectedPipelineRecord", "value": examples["record_pipeline_record"]["value"], + "source": source + " §6.10", + }, + "selected_unresolved_record": { + "shape": "SelectedUnresolvedRecord", "value": examples["record_unresolved_reference"]["value"], + "source": source + " §6.12", + }, + }) + # Explicit top-level optional-member inventory for deletion tests. The + # lists are source-authored, never read from schema.required/properties. + optional_by_shape = { + "SelectedInquiry": ("gaps",), "SelectedRecord": ("gaps",), + "SelectedNative": ("gaps",), "SelectedEvidenceReference": ("gaps",), + "SelectedClaimData": ("content_evidence_ref",), + "SelectedPipelineRecord": ("gaps",), "SelectedUnresolvedRecord": ("gaps",), + } + for example in examples.values(): + example["optional"] = optional_by_shape.get(example["shape"], ()) + return examples + + +def selected_record(kind, event_kind=None): + """Convenience source-shaped fixture for the owner's disclosure examples. + + Each call rebuilds literals. The caller can mutate its result independently. + CorrectionEvent callers explicitly select submission, handling or change. + """ + if kind == "correction_event": + if event_kind not in ("submission", "handling", "change"): + raise ValueError("Specify one frozen CorrectionEvent subtype") + label = "record_correction_event_" + event_kind + else: + if event_kind is not None: + raise ValueError("event_kind only selects a CorrectionEvent subtype") + label = "record_" + kind + return native_record_examples()[label]["value"] + + +def native_record_binding_cases(): + """(baseline label, discriminator path, invalid value, source section). + + Deep-copy the baseline, assert it accepts, then change just the given leaf. + Other source/data branches remain valid by themselves. These mismatches test + kind/data binding, not reference resolution, source loading or projection. + """ + return ( + ("record_claim", ("kind",), "artifact", "6.1--6.2"), + ("record_artifact", ("kind",), "actor", "6.2--6.3"), + ("record_actor", ("kind",), "evidence_item", "6.3--6.4"), + ("record_evidence_item", ("kind",), "origin_event", "6.4--6.5"), + ("record_origin_event", ("kind",), "model", "6.5--6.6"), + ("record_model", ("kind",), "evaluation", "6.6--6.7"), + ("record_evaluation", ("kind",), "correction_channel", "6.7--6.8"), + ("record_correction_channel", ("kind",), "correction_event", "6.8--6.9"), + ("record_correction_event_submission", ("kind",), "pipeline_record", "6.9--6.10"), + ("record_pipeline_record", ("kind",), "anomaly", "6.10--6.11"), + ("record_anomaly", ("kind",), "unresolved_reference", "6.11--6.12"), + ("record_unresolved_reference", ("kind",), "claim", "6.12,6.1"), + ("data_correction_event_submission", ("event_kind",), "handling", "6.9"), + ("data_correction_event_handling", ("event_kind",), "change", "6.9"), + ("data_correction_event_change", ("event_kind",), "handling", "6.9"), + ) + + +def native_record_enum_cases(): + """Literal accepted enum candidates: (baseline, path, values, source). + + Replace the selected leaf with each listed value on a fresh deep copy. + Dependent cases (correction kind, anomaly classification, reference kind / + availability) have complete positive examples above rather than unsafe + one-leaf enum substitutions. Role object IDs can require a matching source + object in W03; these N01 components check only their selected local shape. + """ + return ( + ("gap", ("reason",), ("not_recorded", "not_examined", "withheld", "unavailable", + "identity_ambiguous", "outside_snapshot", "not_applicable", "other"), "3.3"), + ("inquiry", ("dependency_dimensions", 0), ("acquisition", "analytical_method", + "model_ancestry", "evaluation_rubric", "organizational_control"), "5, definitions §9"), + ("data_artifact", ("artifact_kind",), ("document", "dataset", "answer", "reference_answer", + "rubric", "benchmark", "judgment", "observation_record", "execution_result", "other", "unknown"), "6.2"), + ("data_actor", ("actor_kind",), ("human", "organization", "software_agent", "unknown"), "6.3"), + ("data_actor", ("identity_disclosure",), ("named", "pseudonymous", "protected", "unknown"), "6.3"), + ("data_evidence_item", ("epistemic_type",), ("measurement", "testimony", "documentary_statement", + "estimate", "formal_derivation", "execution_result", "analytical_inference", "evaluative_judgment", + "allegation", "fictional_example", "unclassified"), "6.4"), + ("data_origin_event", ("event_kind",), ("observation", "data_collection", "testimony", + "documentary_issuance", "analysis", "formal_check", "execution", "other", "unknown"), "6.5"), + ("data_evaluation", ("evaluation_kind",), ("judgment", "formal_check", "execution", "empirical_review", + "human_review", "identity_process_review", "other", "unknown"), "6.7"), + ("role_binding", ("role",), ("candidate", "generator", "judge", "executor", "human_reviewer", + "reference_answer", "rubric", "validation_environment", "method_input"), "6.7"), + ("data_correction_channel", ("declared_action_types", 0), ("review", "amend", "annotate", + "retract", "rerun", "rollback", "replace_evaluator", "restrict_scope", "withdraw", + "metadata_correction", "other"), "6.8"), + ("submission_details", ("submission_kind",), ("objection", "proposed_correction", "appeal"), "6.9"), + ("handling_details", ("outcome",), ("acknowledged", "under_review", "accepted", "rejected", + "withdrawn", "failed", "unknown"), "6.9"), + ("change_details", ("action_type",), ("review", "amend", "annotate", "retract", "rerun", "rollback", + "replace_evaluator", "restrict_scope", "withdraw", "metadata_correction", "other"), "6.8--6.9"), + ("data_pipeline_record", ("stage",), ("admission", "preservation", "selection", "influence"), "6.10"), + ("data_pipeline_record", ("state",), ("occurred", "did_not_occur", "unknown"), "6.10"), + ("data_pipeline_record", ("linkage_kind",), ("use_record", "comparison_record", "experimental_attribution", + "declaration", "unspecified"), "6.10"), + ("data_unresolved_reference", ("expected_kinds", 0), ("claim", "artifact", "actor", "evidence_item", + "origin_event", "model", "evaluation", "correction_channel", "correction_event", + "pipeline_record", "anomaly"), "6.12"), + ("data_unresolved_reference", ("reason",), ("not_recorded", "not_examined", "withheld", "unavailable", + "identity_ambiguous", "outside_snapshot", "other"), "6.12"), + ) + + +"""Independent source-shaped selected assertion witnesses for N01 integration. + +Handwritten from CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md sections 7--9 and +tests/contract/test_typed_records.py's already admitted fictional source pool. +Public fields are an explicit selection: citation_locator and extensions are +not copied. No schema, production registry, validator, or audit result supplies +these example values. This file performs no validation or W04 projection. +""" + + +def _native_assertion_time(): + return {"state": "unknown", "value": None, "precision": None, + "reason": "Not recorded in this fictional source."} + + +def _native_assertion_window(): + return {"start": _native_assertion_time(), "end": _native_assertion_time()} + + +def _native_assertion_scope(): + return {"inquiry_refs": ["inquiry"], "claim_refs": ["claim"], + "effective_window": _native_assertion_window()} + + +def _native_assertion_provenance(): + return {"attributed_to_ref": "actor", "basis_kind": "declaration", + "evidence_ref_ids": [], "method": "Supplied fictional source statement.", + "qualifications": ["The source statement is retained without qualification as a toolkit fact."]} + + +def _native_assertion_envelope(identifier, kind, data): + return {"id": identifier, "assertion_kind": kind, + "scope": _native_assertion_scope(), + "provenance": _native_assertion_provenance(), + "asserted_at": _native_assertion_time(), "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], "data": copy.deepcopy(data)} + + +def _native_relation_detail_examples(): + # Each tuple is (minimal required fields, all selected optional fields, + # explicitly optional direct member names). None is not used for absence. + return { + "StanceDetails": ({}, {"note": "A supplied stance, not a truth judgment."}, + ("note",)), + "CitationDetails": ({}, {"note": "A source citation statement; no locator is selected."}, + ("note",)), + "TransformationDetails": ({}, { + "transformer_ref": "actor", "method_ref": "artifact", + "occurred_at": _native_assertion_time(), "portion_note": "The stated passage only."}, + ("transformer_ref", "method_ref", "occurred_at", "portion_note")), + "OriginDetails": ({}, {"dependency_note": "The supplied acquisition link.", + "portion_note": "The claim-bound contribution only."}, + ("dependency_note", "portion_note")), + "AgentDetails": ({}, {"role_note": "The named source role only.", + "valid_window": _native_assertion_window()}, + ("role_note", "valid_window")), + "ModelDetails": ({}, {"stage_note": "The disclosed model derivation stage.", + "subset_descriptor": "The supplied finite subset.", + "occurred_at": _native_assertion_time()}, + ("stage_note", "subset_descriptor", "occurred_at")), + "RetrievalDetails": ({}, {"retrieval_time": _native_assertion_time(), + "portion_note": "The source's retrieved copy only."}, + ("retrieval_time", "portion_note")), + "RouteDetails": ({"action_type": "review", "valid_window": _native_assertion_window()}, + {"action_type": "review", "valid_window": _native_assertion_window(), + "route_note": "Declared possibility; applicable authority is separate."}, + ("route_note",)), + "SupersessionDetails": ({"reason": "The source states this version succession."}, + {"reason": "The source states this version succession.", + "effective_at": _native_assertion_time()}, + ("effective_at",)), + "IdentityDetails": ({"identity_level": "artifact_version"}, + {"identity_level": "artifact_version", + "identity_note": "Matching identity is attributed, not an implicit merge."}, + ("identity_note",)), + } + + +# Explicitly transcribed predicate/endpoint/dimension/detail bindings, lineage +# section 8.1; the identifiers denote the typed source pool in test_typed_records. +NATIVE_RELATION_BINDINGS = ( + ("supports", "e", "claim", None, "StanceDetails"), + ("contradicts", "e", "claim", None, "StanceDetails"), + ("describes", "e", "claim", None, "StanceDetails"), + ("qualifies", "e", "claim", None, "StanceDetails"), + ("contextualizes", "e", "claim", None, "StanceDetails"), + ("corroborates", "e", "e2", None, "StanceDetails"), + ("cites", "artifact", "artifact2", None, "CitationDetails"), + ("derived_from", "e", "e2", "acquisition", "TransformationDetails"), + ("copies", "e", "e2", "acquisition", "TransformationDetails"), + ("syndicated_from", "e", "e2", "acquisition", "TransformationDetails"), + ("summarizes", "e", "e2", "acquisition", "TransformationDetails"), + ("translates", "e", "e2", "acquisition", "TransformationDetails"), + ("quotes", "e", "e2", "acquisition", "TransformationDetails"), + ("originates_from", "e", "origin", "acquisition", "OriginDetails"), + ("depends_on", "origin", "origin2", "acquisition", "OriginDetails"), + ("generated_by", "artifact", "model", None, "AgentDetails"), + ("published_by", "artifact", "actor", None, "AgentDetails"), + ("model_derived_from", "model", "model2", "model_ancestry", "ModelDetails"), + ("trained_on", "model", "dataset", "model_ancestry", "ModelDetails"), + ("owned_by", "model", "actor", "organizational_control", "AgentDetails"), + ("retrieved_from", "artifact", "artifact2", None, "RetrievalDetails"), + ("propagates_to", "channel", "claim", None, "RouteDetails"), + ("supersedes", "claim", "claim2", None, "SupersessionDetails"), + ("same_identity_as", "artifact", "artifact2", None, "IdentityDetails"), +) + + +def selected_relation(predicate, polarity="affirmed", optional_present=True): + _, left, right, dimension, detail_kind = next( + row for row in NATIVE_RELATION_BINDINGS if row[0] == predicate) + detail_pair = _native_relation_detail_examples()[detail_kind] + data = {"predicate": predicate, "from_ref": left, "to_ref": right, + "polarity": polarity, "dimension": dimension, + "details": detail_pair[1 if optional_present else 0]} + return _native_assertion_envelope("r-" + predicate, "relation", data) + + +NATIVE_ASSESSMENT_BINDINGS = ( + ("origin_boundary", "OriginBoundaryDetails", ("origin",), "9.1"), + ("independence", "IndependenceDetails", ("origin", "origin2"), "9.2"), + ("coverage", "CoverageDetails", ("inquiry",), "9.3"), + ("classification", "ClassificationDetails", ("artifact",), "9.4"), + ("verification", "VerificationDetails", ("actor",), "9.5"), + ("externality", "ExternalityDetails", ("origin",), "9.6"), + ("authority", "AuthorityDetails", ("channel",), "9.7"), + ("capacity", "CapacityDetails", ("channel",), "9.8"), + ("conflict", "ConflictDetails", ("r-supports", "r-contradicts"), "9.9"), +) + + +def _native_assessment_details(): + return { + "origin_boundary": {"dimension": "acquisition", "boundary_role": "declared_origin", + "coverage_ref": "a-coverage", "termination_reason": "The supplied origin boundary only."}, + "independence": {"comparison_form": "pairwise", "dimension": "acquisition", + "conclusion": "independent_process", "examined_dependency_refs": ["r-depends_on"], + "unexamined_dimensions": ["model_ancestry"], "coverage_ref": "a-coverage", + "scope_note": "An attributed process comparison, not a runtime qualification."}, + "coverage": {"coverage_kind": "upstream_history", "state": "complete_for_scope", + "relation_types": ["originates_from"], "dimensions": ["acquisition"], + "member_refs": ["e", "e2"], "omitted_refs": [], "universe_enumerated": True, + "scope_note": "The supplied finite source population only."}, + "classification": {"axis": "sil_governance_layer", "labels": ["verified"], + "verification_assessment_refs": ["a-verification"], + "scope_note": "The recorded governance classification only."}, + "verification": {"verification_scope": "identity", "evaluation_ref": "evaluation", + "reported_outcome": "verified", "valid_window": _native_assertion_window(), + "scope_note": "A supplied verifier outcome; no toolkit authentication."}, + "externality": {"boundary_inquiry_ref": "inquiry", "conclusion": "external", + "grounding_basis": "The source describes acquisition outside the inquiry boundary.", + "relevant_time": _native_assertion_time()}, + "authority": {"target_refs": ["claim"], "action_types": ["review"], + "valid_window": _native_assertion_window(), "authorized_by_ref": "actor", + "grant_state": "denied", "authority_basis": "The supplied actor records a denial.", + "coverage_ref": "a-coverage"}, + "capacity": {"reported_capacity": "unmeasured", "unit": "cases", + "horizon": _native_assertion_window(), "reported_load": "unmeasured", + "scope_note": "Supplied descriptions; no adequacy calculation."}, + "conflict": {"conflict_kind": "affirmation_denial", "resolution_state": "unresolved", + "resolution_evaluation_ref": None, "scope_note": "Both supplied assertions remain present."}, + } + + +def selected_assessment(kind): + _, _, subjects, _ = next(row for row in NATIVE_ASSESSMENT_BINDINGS if row[0] == kind) + return _native_assertion_envelope("a-" + kind, "assessment", { + "assessment_kind": kind, "subject_refs": list(subjects), + "details": _native_assessment_details()[kind]}) + + +def native_assertion_examples(): + """Return independent positive cases; optional marks only direct members. + + A consumer can delete each present optional member as a positive control; + deletion of a present nonoptional member is a required-member mutant. + The minimal/all-present pairs avoid an empty-detail wrong-type blind spot. + """ + cases = {} + + def add(label, shape, value, section, optional=()): + cases[label] = {"shape": shape, "value": copy.deepcopy(value), + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md §" + section, + "optional": tuple(optional)} + + add("assertion_scope", "SelectedAssertionScope", _native_assertion_scope(), "7") + scope = _native_assertion_scope() + scope["claim_refs"] = [] + add("assertion_scope.metadata", "SelectedAssertionScope", scope, "7") + + for name, (minimal, present, optional) in _native_relation_detail_examples().items(): + add("relation_details." + name + ".absent", "Selected" + name, minimal, "8.3", optional) + add("relation_details." + name + ".present", "Selected" + name, present, "8.3", optional) + add("relation_details_union." + name, "SelectedRelationDetails", present, "8.3", optional) + + for predicate, _, _, _, _ in NATIVE_RELATION_BINDINGS: + assertion = selected_relation(predicate) + add("relation." + predicate, "SelectedAssertion", assertion, "7–8.3", ("gaps",)) + add("relation_data." + predicate, "SelectedRelationData", assertion["data"], "8.1–8.3") + add("relation_denied." + predicate, "SelectedAssertion", + selected_relation(predicate, "denied", False), "7–8.3", ("gaps",)) + + # The six transformation predicates admit a separate material-history branch. + for predicate in ("derived_from", "copies", "syndicated_from", "summarizes", "translates", "quotes"): + assertion = selected_relation(predicate) + assertion["data"].update(from_ref="artifact", to_ref="artifact2", dimension=None) + assertion["scope"]["claim_refs"] = [] + add("relation_material." + predicate, "SelectedAssertion", assertion, "7–8.1", ("gaps",)) + + for kind, shape, _, section in NATIVE_ASSESSMENT_BINDINGS: + assertion = selected_assessment(kind) + add("assessment." + kind, "SelectedAssertion", assertion, "7; " + section, ("gaps",)) + add("assessment_data." + kind, "SelectedAssessmentData", assertion["data"], section) + add("assessment_details." + kind, "Selected" + shape, assertion["data"]["details"], section) + add("assessment_details_union." + kind, "SelectedAssessmentDetails", assertion["data"]["details"], section) + + add("assertion_data.relation", "SelectedAssertionData", selected_relation("supports")["data"], "7–8") + add("assertion_data.assessment", "SelectedAssertionData", selected_assessment("coverage")["data"], "7; 9") + add("coverage_assertion", "SelectedCoverageAssertion", selected_assessment("coverage"), "7; 9.3", ("gaps",)) + add("capacity_assertion", "SelectedCapacityAssertion", selected_assessment("capacity"), "7; 9.8", ("gaps",)) + + # Nullable factual fields remain present. Their selected assertion carries + # the exact source Gap required by the input contract, not an invented value. + nullable = ( + ("origin_boundary", "coverage_ref", "OriginBoundaryDetails", "9.1"), + ("independence", "coverage_ref", "IndependenceDetails", "9.2"), + ("verification", "evaluation_ref", "VerificationDetails", "9.5"), + ("externality", "grounding_basis", "ExternalityDetails", "9.6"), + ("authority", "authority_basis", "AuthorityDetails", "9.7"), + ("authority", "coverage_ref", "AuthorityDetails", "9.7"), + ("capacity", "reported_capacity", "CapacityDetails", "9.8"), + ("capacity", "unit", "CapacityDetails", "9.8"), + ("capacity", "reported_load", "CapacityDetails", "9.8"), + ) + for kind, member, shape, section in nullable: + assertion = selected_assessment(kind) + assertion["data"]["details"][member] = None + assertion["gaps"] = [{"field": "data.details." + member, "reason": "not_recorded", + "detail": "This source field was not recorded."}] + add("assessment_null." + kind + "." + member, "SelectedAssertion", assertion, + "3.3; " + section, ("gaps",)) + add("assessment_details_null." + kind + "." + member, "Selected" + shape, + assertion["data"]["details"], section) + + resolved = selected_assessment("conflict") + resolved["data"]["details"].update(resolution_state="externally_resolved", + resolution_evaluation_ref="evaluation") + add("assessment.conflict.resolved", "SelectedAssertion", resolved, "9.9", ("gaps",)) + add("assessment_details.conflict.resolved", "SelectedConflictDetails", resolved["data"]["details"], "9.9") + + setwise = selected_assessment("independence") + setwise["data"]["subject_refs"].append("origin3") + setwise["data"]["details"]["comparison_form"] = "setwise" + add("assessment.independence.setwise", "SelectedAssertion", setwise, "9.2", ("gaps",)) + add("assessment_data.independence.setwise", "SelectedAssessmentData", setwise["data"], "9.2") + + for axis, labels in ( + ("sil_data_role", ["surface_linguistic", "world_model", "judgment"]), + ("hdl_structure_role", ["surface_linguistic_structure", "world_structure", "judgment_structure"]), + ("sil_governance_layer", ["open_web", "verified", "contested", "judgment"]), + ): + details = _native_assessment_details()["classification"] + details.update(axis=axis, labels=labels) + add("assessment_details.classification." + axis, "SelectedClassificationDetails", details, "9.4") + + for state in ("partial", "not_examined"): + details = _native_assessment_details()["coverage"] + details.update(state=state, universe_enumerated=False) + add("assessment_details.coverage." + state, "SelectedCoverageDetails", details, "9.3") + + for lifecycle in ("withdrawn", "superseded"): + assertion = selected_relation("supports") + assertion["lifecycle_state"] = lifecycle + assertion["lifecycle_basis_ref_ids"] = ["support"] + assertion["provenance"]["qualifications"].append("The source records this explicit lifecycle change.") + add("assertion_lifecycle." + lifecycle, "SelectedAssertion", assertion, "7", ("gaps",)) + + return cases + + +def native_assertion_mutant_suggestions(): + """Single-member mutations against accepted baselines; do not execute them. + + Each case has baseline, path (tuple of dict/list accesses), replacement, + category, and the frozen-source reason. General direct-member wrong types + should additionally use every example's explicit optional tuple above. + """ + mutations = [] + + def mutation(baseline, path, value, category, reason): + mutations.append({"baseline": baseline, "path": path, "value": value, + "category": category, "reason": reason}) + + for predicate, _, _, dimension, detail_kind in NATIVE_RELATION_BINDINGS: + baseline = "relation_data." + predicate + wrong_details = ({"identity_level": "artifact_version"} + if detail_kind != "IdentityDetails" else {"action_type": "review", "valid_window": _native_assertion_window()}) + mutation(baseline, ("details",), wrong_details, "kind", "§8.3: details must match this predicate family.") + mutation(baseline, ("polarity",), "unknown", "state", "§8.1: polarity is affirmed or denied.") + mutation(baseline, ("from_ref",), True, "wrongtype", "§8.1: source endpoint is an identifier.") + if predicate not in ("derived_from", "copies", "syndicated_from", "summarizes", "translates", "quotes"): + bad_dimension = "acquisition" if dimension is None else None + mutation(baseline, ("dimension",), bad_dimension, "value", "§8.1: this predicate binds dimension/null locally.") + else: + mutation(baseline, ("dimension",), "truth", "value", "§8.1: only the five core dimensions or null are allowed.") + + for kind, _, _, section in NATIVE_ASSESSMENT_BINDINGS: + baseline = "assessment_data." + kind + replacement = (_native_assessment_details()["capacity"] if kind != "capacity" + else _native_assessment_details()["coverage"]) + mutation(baseline, ("details",), replacement, "kind", "§" + section + ": the assessment kind selects its detail shape.") + mutation(baseline, ("subject_refs",), "origin", "wrongtype", "§9: subjects form an array of distinct identifiers.") + + for kind in ("origin_boundary", "authority", "coverage", "independence", "conflict"): + mutation("assessment_data." + kind, ("subject_refs",), [], "value", "§9: this assessment has an explicit nonzero subject cardinality.") + for kind in ("origin_boundary", "authority"): + mutation("assessment_data." + kind, ("subject_refs",), ["one", "two"], "value", "§9: exactly one subject is required.") + for kind in ("independence", "conflict"): + mutation("assessment_data." + kind, ("subject_refs",), ["one"], "value", "§9: at least two distinct subjects are required.") + mutation("assessment_data.independence", ("subject_refs",), ["origin", "origin2", "origin3"], "value", "§9.2: pairwise has exactly two subjects.") + mutation("assessment_data.independence.setwise", ("subject_refs",), ["origin"], "value", "§9.2: setwise still needs at least two subjects.") + mutation("assessment_details.classification.sil_data_role", ("labels",), ["verified"], "value", "§9.4: a governance label is not a data-role label.") + mutation("assessment_details.classification.hdl_structure_role", ("labels",), ["world_model"], "value", "§9.4: a data-role label is not a structure-role label.") + mutation("assessment_details.classification.sil_governance_layer", ("labels",), ["world_structure"], "value", "§9.4: a structure-role label is not a governance label.") + mutation("assessment_details.conflict", ("resolution_evaluation_ref",), "evaluation", "state", "§9.9: unresolved conflicts carry a null resolution reference.") + mutation("assessment_details.conflict.resolved", ("resolution_evaluation_ref",), None, "state", "§9.9: an external resolution requires its Evaluation reference.") + mutation("relation.supports", ("assertion_kind",), "assessment", "kind", "§7–9: the outer assertion kind binds its data union.") + mutation("assessment.coverage", ("assertion_kind",), "relation", "kind", "§7–9: the outer assertion kind binds its data union.") + mutation("relation_details.CitationDetails.present", ("citation_locator",), "private locator", "field", "Explicit selected-field policy excludes native citation locators.") + mutation("assessment.coverage", ("extensions",), {"private": "not selected"}, "field", "Explicit selected-field policy excludes input extensions.") + return mutations + + +# Independently authored contract specimens. Frozen analytical owner functions +# establish field meanings; D03 records the approved public reference spelling. +def disclosure_field_examples(): + cases = {} + + def add(shape, value, field, source, branch=None): + label = shape if branch is None else shape + '.' + str(branch) + cases[label] = {'shape': shape, 'value': value, 'source': source, + 'field': field, 'branch': branch, 'optional': ()} + + def qualified(native): + return {'native_record': native, 'qualification_state': 'met', 'reason_codes': []} + + boundary = selected_assessment('origin_boundary') + coverage = selected_assessment('coverage') + comparison = selected_assessment('independence') + capacity = selected_assessment('capacity') + evaluation = selected_record('evaluation') + channel = selected_record('correction_channel') + change = selected_record('correction_event', 'change') + pipeline = selected_record('pipeline_record') + claim = selected_record('claim') + gap = {'source': input_ref('FRONTIER-1'), 'reason_codes': ['upstream_coverage_incomplete']} + gap_coverage = {'coverage_ref': input_ref('COVERAGE-1', 'assertions'), + 'qualification_state': 'unmet', 'reason_codes': ['upstream_coverage_incomplete']} + gap_path = {'nodes': [input_ref('E1'), input_ref('FRONTIER-1')], + 'assertions': [input_ref('A-1', 'assertions')]} + one_sided = {'from_ref': input_ref('MODEL-1'), 'to_ref': input_ref('MODEL-2')} + anchor = {'run_key': 'RUN-1', 'stage_key': 'STAGE-1', 'stage': 'admission'} + case_row = {'case_ref': input_ref('CASE-1'), 'declared': True, 'selected': True, + 'change_event_refs': [input_ref('CHANGE-1')], + 'qualified_change_event_refs': [input_ref('CHANGE-1')], + 'documentary_state': 'met', 'requested_effect_state': 'available', 'reason_codes': []} + for shape, value, source in ( + ('GapSource', gap, 'analysis/origins.py:_gap_disclosure'), + ('GapCoverage', gap_coverage, 'analysis/origins.py:_gap_disclosure'), + ('GapWitnessPath', gap_path, 'analysis/origins.py:_gap_disclosure'), + ('OneSidedAncestry', one_sided, 'analysis/evaluator_lineage.py:_disclosures'), + ('StageAnchor', anchor, 'analysis/presence.py:_disclosures; D03 stage-anchor projection'), + ('CaseChangeRow', case_row, 'analysis/correction_outcomes.py:_disclosures'), + ): + cases[shape] = {'shape': shape, 'value': value, 'source': source, 'optional': ()} + add('OriginBoundaryFields', qualified(boundary), 'origin_boundary_disclosures', + 'analysis/origins.py:_boundary_disclosure') + add('CoverageFields', qualified(coverage), 'coverage_disclosures', 'validation/semantics.py') + add('DocumentaryBasisGapFields', qualified(claim), 'documentary_basis_gap_disclosures', + 'validation/semantics.py') + add('IndependenceAssessmentFields', {'native_record': comparison}, + 'independence_assessment_disclosures', 'analysis/process_comparison.py:_disclosures', 0) + comparison_fields = {'native_record': comparison, 'process_qualification_state': 'met', + 'origin_qualification_state': 'not_applicable', 'reason_codes': []} + add('IndependenceAssessmentFields', comparison_fields, 'independence_assessment_disclosures', + 'analysis/process_comparison.py:_disclosures', 1) + add('AncestryGapFields', {'seed_ref': input_ref('E1'), 'dimension': 'acquisition', + 'gaps': [gap], 'frontiers': [selected_record('unresolved_reference')], + 'coverage': [gap_coverage], 'witness_paths': [gap_path]}, 'ancestry_gap_disclosures', + 'analysis/origins.py:_gap_disclosure') + add('EvaluatorOverlapFields', {'native_record': evaluation}, 'evaluator_overlap_disclosures', + 'analysis/evaluator_lineage.py:_disclosures', 0) + add('EvaluatorOverlapFields', {'native_record': evaluation, 'roles': ['judge', 'generator'], + 'left_object_refs': [input_ref('MODEL-1')], 'right_object_refs': [input_ref('MODEL-2')], + 'shared_object_refs': [], 'common_ancestor_refs': [input_ref('MODEL-0')], + 'matching_family_labels': ['SOURCE-FAMILY'], 'missing_family_model_refs': [], + 'one_sided_ancestry': [one_sided], 'roles_complete': True}, 'evaluator_overlap_disclosures', + 'analysis/evaluator_lineage.py:_disclosures', 1) + add('ExternalityAssessmentFields', {'native_record': selected_assessment('conflict')}, + 'externality_assessment_disclosures', 'analysis/presence.py:_disclosures', 0) + externality = qualified(selected_assessment('externality')) + externality['qualified_externality'] = 'available' + add('ExternalityAssessmentFields', externality, 'externality_assessment_disclosures', + 'analysis/presence.py:_disclosures', 1) + add('PipelineStageFields', qualified(pipeline), 'pipeline_stage_disclosures', + 'analysis/presence.py:_disclosures') + external_stage = qualified(pipeline) + external_stage.update(externality_subject_refs=[input_ref('ANOMALY-1')], + mapping_assertion_refs=[input_ref('MAP-1', 'assertions')]) + add('ExternalityStageFields', external_stage, 'externality_stage_links', + 'analysis/presence.py:_disclosures') + add('CohortTransitionFields', {'native_record': coverage, 'stage_anchor': anchor, + 'cohort_qualification_state': 'met', 'transition_qualification_state': 'met', 'reason_codes': []}, + 'cohort_transition_disclosures', 'analysis/presence.py:_disclosures') + add('CorrectionRouteFields', {'native_record': claim}, 'correction_route_disclosures', + 'analysis/correction_routes.py:_disclosures', 0) + add('CorrectionRouteFields', {'native_record': channel, 'target_ref': input_ref('CLAIM-1'), + 'action_type': 'amend', 'declared_route_recorded': True, 'authorized_route_recorded': True, + 'authorized_route_state': 'available', 'absence_description': 'positive_witness'}, + 'correction_route_disclosures', 'analysis/correction_routes.py:_disclosures', 1) + add('CorrectionRouteFields', {'native_record': selected_assessment('authority'), + 'grant_qualification_state': 'met', 'grant_matches_tuple': True, 'grant_reason_codes': []}, + 'correction_route_disclosures', 'analysis/correction_routes.py:_disclosures', 2) + add('CorrectionCaseFields', {'native_record': selected_record('correction_event', 'submission')}, + 'correction_case_disclosures', 'analysis/correction_outcomes.py:_disclosures', 0) + add('CorrectionCaseFields', {'native_record': change, 'documentary_state': 'met', + 'explicit_removal': False, 'reason_codes': []}, 'correction_case_disclosures', + 'analysis/correction_outcomes.py:_disclosures', 1) + add('CorrectionTargetChangeFields', {'native_record': claim, 'case_rows': [case_row]}, + 'correction_target_change_disclosures', 'analysis/correction_outcomes.py:_disclosures') + add('ReportedCapacityFields', {'native_record': capacity}, 'reported_capacity_disclosures', + 'analysis/correction_outcomes.py:_disclosures', 0) + add('ReportedCapacityFields', {'native_record': capacity, 'documentary_state': 'met', 'reason_codes': []}, + 'reported_capacity_disclosures', 'analysis/correction_outcomes.py:_disclosures', 1) + review = {'native_record': evaluation, 'contribution_status': 'recorded_human_contribution', + 'documentary_state': 'met', 'identity_state': 'met', 'reason_codes': []} + for shape, field in (('HumanContributionFields', 'human_contribution_disclosures'), + ('CorrectiveIndependenceFields', 'corrective_independence_disclosures')): + add(shape, {'native_record': evaluation}, field, 'analysis/human_review.py:_disclosures', 0) + add(shape, copy.deepcopy(review), field, 'analysis/human_review.py:_record', 1) + add('CorrectiveIndependenceFields', copy.deepcopy(comparison_fields), 'corrective_independence_disclosures', + 'analysis/human_review.py:_disclosures; process_comparison.py:_disclosures', 2) + add('AnomalyContextFields', {'native_record': selected_record('anomaly'), + 'context_records': [claim], 'reason_codes': []}, 'anomaly_context_disclosures', + 'analysis/context.py:_disclosures') + add('ContestationFields', {'native_record': selected_relation('contradicts'), + 'context_records': [claim], 'reason_codes': []}, 'contestation_disclosures', + 'analysis/context.py:_disclosures') + add('TailStageResultLinkFields', {'source_result_state': 'available', 'source_value_kind': 'fraction'}, + 'tail_stage_result_links', 'analysis/context.py:_disclosures') + return cases + + +def disclosure_result_example(case): + field = case['field'] + family = next(family for family, candidate, _ in FIELD_CASES if candidate == field) + value = result_example(family, field, 'record_disclosures') + value['result_origin'] = 'attributed_record' + fields = copy.deepcopy(case['value']) + source = 'SIT-RES-000002' if field == 'tail_stage_result_links' else input_ref('SOURCE-1') + native = fields.get('native_record') + if native is not None: + collection = ('assertions' if 'assertion_kind' in native else + 'inquiries' if 'target_claim_refs' in native else + 'evidence_references' if 'reference_kind' in native else 'records') + source = input_ref(native['id'], collection) + value['value'] = {'records': [{'source': source, 'fields': fields, + 'qualifications': ['Only this supplied finite source and explicit qualification are represented.']}]} + return value + + +def additional_contract_examples(): + cases = {} + + def add(name, shape, value, source, optional=()): + cases[name] = {'shape': shape, 'value': value, 'source': source, 'optional': optional} + + add('raw_file_digest', 'RawFileDigest', {'algorithm': 'sha256', 'value': '1' * 64, + 'covered_material': 'Exact supplied file bytes.'}, 'Reporting 16.1; Runtime raw-file identity') + identity = component_examples()['InputIdentity'] + identity.update(source_mode='local_file', raw_file_digest=copy.deepcopy(cases['raw_file_digest']['value']), + declared_predecessor={'bundle_id': 'BUNDLE-1', 'snapshot_id': 'SNAPSHOT-0'}) + add('local_file_identity', 'InputIdentity', identity, 'Reporting 16.1; W02 declarations only') + add('window.optional_note', 'TimeWindow', {'start': time_value(), 'end': time_value(), + 'note': 'The source supplies neither bound.'}, 'Lineage 3.1', ('note',)) + add('known_time.optional_reason', 'TimeValue', time_value('known', '2024-02-29', 'date', + 'Original recorded source date.'), 'Lineage 3.1', ('reason',)) + time = {name: time_value() for name in ('asserted_at', 'occurred_at', 'observed_at', + 'published_at', 'retrieved_at', 'as_of')} + time.update(valid_window={'start': time_value(), 'end': time_value()}, + time_window={'start': time_value(), 'end': time_value()}) + add('basis.all_source_times', 'BasisTime', time, 'Reporting 16.3; Lineage 3.1,4,7', tuple(time)) + scope = component_examples()['Scope'] + scope.update(temporal_basis='time_specific', requested_time=time_value('known', '2024-02-29', 'date', None)) + add('scope.time_specific', 'Scope', scope, 'Reporting 16.2; contracts/results.py:_Scope') + for kind in ('cycle', 'members', 'no_witness_in_examined_view'): + component = graph_component() + component.update(kind=kind, nodes=[], edges=[], member_count=0) + if kind == 'members': + component.update(members=[graph_node()], member_count=1) + elif kind == 'cycle': + edge = graph_edge() + edge.update(source=graph_node('O1', 'origin_event'), target=graph_node('O1', 'origin_event'), + predicate='depends_on') + component.update(nodes=[graph_node('O1', 'origin_event'), graph_node('O1', 'origin_event')], edges=[edge], + members=[graph_node('O1', 'origin_event')], internal_edges=[copy.deepcopy(edge)], member_count=5) + else: + component.update(starts=[graph_node()], target=graph_node('UNREACHED-1'), + examined_nodes=[graph_node(), graph_node('O1', 'origin_event')], + examined_edges=[graph_edge()], frontiers=[graph_node('O1', 'origin_event')], + terminals=[graph_node('O1', 'origin_event')], observations=[graph_edge()], member_count=8) + add('graph.' + kind, 'GraphWitnessComponent', component, 'graph/witnesses.py:_commit and owner constructors') + add('audit.diagnostic', 'AuditReport', diagnostic_document(), 'Reporting 16.1') + return cases + + +def extended_contract_examples(): + cases = {} + for group in (native_record_examples(), native_assertion_examples(), + disclosure_field_examples(), additional_contract_examples()): + for name, case in group.items(): + assert name not in cases, name + cases[name] = case + return cases + + +EXTENDED_CONTRACT_CASES = extended_contract_examples() + + +@pytest.mark.parametrize('name', tuple(EXTENDED_CONTRACT_CASES)) +def test_each_nested_contract_branch_has_an_independent_positive(name): + case = EXTENDED_CONTRACT_CASES[name] + assert case['source'] + assert_component(copy.deepcopy(case['value']), case['shape']) + if case['shape'] in ('SelectedInquiry', 'SelectedRecord', 'SelectedAssertion', 'SelectedEvidenceReference'): + assert_component(copy.deepcopy(case['value']), 'SelectedNative') + + +@pytest.mark.parametrize('name,member', [(name, member) + for name, case in EXTENDED_CONTRACT_CASES.items() for member in case['value'] + if case['shape'] not in ('SelectedNative', 'SelectedRelationDetails', + 'SelectedAssessmentDetails', 'SelectedAssertionData')]) +@pytest.mark.parametrize('mutation', ('missing', 'wrong_type')) +def test_each_nested_contract_branch_member_has_its_own_control(name, member, mutation): + case = EXTENDED_CONTRACT_CASES[name] + value = copy.deepcopy(case['value']) + assert_component(value, case['shape']) + if mutation == 'missing': + del value[member] + if member in case.get('optional', ()): + assert_component(value, case['shape']) + return + else: + value[member] = {'undeclared_member': 'not the declared member type'} + reject_component(value, case['shape']) + + +@pytest.mark.parametrize('name', tuple(EXTENDED_CONTRACT_CASES)) +def test_each_nested_contract_branch_is_closed(name): + case = EXTENDED_CONTRACT_CASES[name] + value = copy.deepcopy(case['value']) + assert_component(value, case['shape']) + value['undeclared_member'] = 'No generic source export or extension slot.' + reject_component(value, case['shape']) + + +# Closed vocabulary fields are fixed by the frozen input/report definitions. +# Free source prose (method, note, detail, labels, capacity text) is not treated +# as an enum. This list is independent of the schema keyword implementation. +CLOSED_LITERAL_MEMBERS = frozenset(('kind', 'type', 'state', 'event_kind', 'assertion_kind', + 'assessment_kind', 'predicate', 'polarity', 'stage', 'qualification_state', + 'cohort_qualification_state', 'transition_qualification_state', 'process_qualification_state', + 'origin_qualification_state', 'grant_qualification_state', 'documentary_state', 'identity_state', + 'contribution_status', 'authorized_route_state', 'absence_description', 'requested_effect_state', + 'source_result_state', 'source_value_kind', 'reference_kind', 'availability', 'artifact_kind', + 'actor_kind', 'epistemic_type', 'evaluation_kind', 'role', 'submission_kind', 'outcome', 'action_type', + 'classification_state', 'reason', 'lifecycle_state', 'dimension', 'identity_level', 'boundary_role', + 'comparison_form', 'conclusion', 'coverage_kind', 'axis', 'verification_scope', 'reported_outcome', + 'grant_state', 'conflict_kind', 'resolution_state', 'algorithm')) + + +@pytest.mark.parametrize('name,member', [(name, member) for name, case in EXTENDED_CONTRACT_CASES.items() + for member, value in case['value'].items() if member in CLOSED_LITERAL_MEMBERS and type(value) is str + and (member != 'reason' or case['shape'] in ('SelectedGap', 'SelectedUnresolvedReferenceData'))]) +def test_nested_closed_vocabulary_cannot_acquire_an_invented_state(name, member): + case = EXTENDED_CONTRACT_CASES[name] + value = copy.deepcopy(case['value']) + assert_component(value, case['shape']) + value[member] = 'invented_contract_state' + reject_component(value, case['shape']) + + +@pytest.mark.parametrize('name,member', (('handling_details', 'reason'), + ('relation_details.SupersessionDetails.present', 'reason'), + ('relation_details_union.SupersessionDetails', 'reason'), + ('assessment_details.externality', 'grounding_basis'))) +def test_selected_source_prose_is_not_reclassified_as_a_toolkit_enum(name, member): + # Lineage 6.9, 8.3, 9.6 declare source text here, unlike Gap.reason's enum. + case = EXTENDED_CONTRACT_CASES[name] + value = copy.deepcopy(case['value']) + assert_component(value, case['shape']) + value[member] = 'The source describes its own reason and limitation.' + assert_component(value, case['shape']) + + +@pytest.mark.parametrize('name,member', [(name, member) for name, case in EXTENDED_CONTRACT_CASES.items() + for member, value in case['value'].items() if type(value) is list]) +def test_nested_array_member_items_keep_their_declared_scalar_or_object_type(name, member): + case = EXTENDED_CONTRACT_CASES[name] + value = copy.deepcopy(case['value']) + assert_component(value, case['shape']) + value[member] = [False] + reject_component(value, case['shape']) + + +DISCLOSURE_BRANCH_CASES = {name: case for name, case in EXTENDED_CONTRACT_CASES.items() if 'field' in case} + + +@pytest.mark.parametrize('name', tuple(DISCLOSURE_BRANCH_CASES)) +def test_each_disclosure_branch_is_available_under_its_registered_result_field(name): + case = DISCLOSURE_BRANCH_CASES[name] + result = disclosure_result_example(case) + assert_component(result, 'Result') + wrong = copy.deepcopy(result) + wrong['value']['records'][0]['source'] = (input_ref('SOURCE-1') if case['field'] == + 'tail_stage_result_links' else 'SIT-RES-000002') + reject_component(wrong, 'Result') + + +@pytest.mark.parametrize('name', tuple(DISCLOSURE_BRANCH_CASES)) +@pytest.mark.parametrize('path,member', ((('value',), 'records'), (('value', 'records', 0), 'source'), + (('value', 'records', 0), 'fields'), (('value', 'records', 0), 'qualifications'))) +@pytest.mark.parametrize('mutation', ('missing', 'wrong_type', 'extra')) +def test_each_field_specific_disclosure_container_and_row_is_closed_and_typed(name, path, member, mutation): + result = disclosure_result_example(DISCLOSURE_BRANCH_CASES[name]) + assert_component(result, 'Result') + value = result + for part in path: + value = value[part] + if mutation == 'missing': + del value[member] + elif mutation == 'wrong_type': + value[member] = {'undeclared_member': 'wrong type'} + else: + value['undeclared_member'] = 'not a field-specific member' + reject_component(result, 'Result') + + +def test_optional_scope_time_and_cohort_anchor_branches_are_not_silently_null_only(): + scope = copy.deepcopy(EXTENDED_CONTRACT_CASES['scope.time_specific']['value']) + assert_component(scope, 'Scope') + scope['requested_time'] = None + reject_component(scope, 'Scope') + case = copy.deepcopy(DISCLOSURE_BRANCH_CASES['CohortTransitionFields']['value']) + assert_component(case, 'CohortTransitionFields') + case['stage_anchor'] = None + assert_component(case, 'CohortTransitionFields') + + +def test_local_file_digest_rejects_wrong_algorithm_and_non_sha256_bytes(): + baseline = copy.deepcopy(EXTENDED_CONTRACT_CASES['raw_file_digest']['value']) + assert_component(baseline, 'RawFileDigest') + for member, value in (('algorithm', 'sha1'), ('value', 'A' * 64), ('value', '1' * 63), + ('value', '1' * 65), ('value', 'g' * 64), ('covered_material', '')): + changed = copy.deepcopy(baseline) + changed[member] = value + reject_component(changed, 'RawFileDigest') + + +def test_interrupted_accepted_audit_has_a_positive_contract_before_illegal_state_mutation(): + # A fully parsed input may stop before any family completes. This is a + # hand-authored local contract specimen, not a constructed public report. + document = diagnostic_document('audit_report', 'interrupted', 'accepted') + labels = ('Artifact and contribution inventory', 'Declared provenance and process metadata', + 'Origin-resolution and scoped process-assessment evidence', 'Evaluator, correction-route and authority evidence', + 'Boundary-qualified external input, stage histories and documented correction outcomes') + document['observability_domains'] = [{'level_index': index, 'label': label, + 'available_result_refs': [], 'unavailable_result_refs': [], 'not_evaluated_result_refs': [], + 'reason_refs': []} for index, label in enumerate(labels)] + assert_both(document) + document['input_validation']['state'] = 'not_completed' + assert_rejected(document) + + +@pytest.mark.parametrize('baseline,path,replacement,source', native_record_binding_cases()) +def test_native_record_discriminator_selects_its_own_closed_payload(baseline, path, replacement, source): + case = EXTENDED_CONTRACT_CASES[baseline] + value = copy.deepcopy(case['value']) + assert_component(value, case['shape']) + owner = value + for part in path[:-1]: + owner = owner[part] + owner[path[-1]] = replacement + reject_component(value, case['shape']) + + +@pytest.mark.parametrize('baseline,path,candidates,source', native_record_enum_cases()) +def test_source_native_record_enums_have_positive_values_before_an_invented_value(baseline, path, candidates, source): + case = EXTENDED_CONTRACT_CASES[baseline] + for replacement in candidates: + value = copy.deepcopy(case['value']) + owner = value + for part in path[:-1]: + owner = owner[part] + if type(owner) is list: + # A singleton positive avoids accidentally duplicating a second + # existing member while sweeping a distinct source enum value. + owner[:] = [replacement] + else: + owner[path[-1]] = replacement + assert_component(value, case['shape']) + owner[path[-1]] = 'invented_contract_state' + reject_component(value, case['shape']) + + +@pytest.mark.parametrize('case', native_assertion_mutant_suggestions(), + ids=lambda case: case['baseline'] + ':' + '.'.join(map(str, case['path']))) +def test_native_assertion_discriminators_cardinality_and_states_are_bound_locally(case): + baseline = EXTENDED_CONTRACT_CASES[case['baseline']] + value = copy.deepcopy(baseline['value']) + assert_component(value, baseline['shape']) + owner = value + for part in case['path'][:-1]: + owner = owner[part] + owner[case['path'][-1]] = copy.deepcopy(case['value']) + reject_component(value, baseline['shape']) + + +def closed_object_coverage(): + """Inventory test destinations, never manufacture positive fixture values. + + Object pointers come from the delivered schema; every value and optional + member list comes from independently handwritten source specimens above. + AllOf's repeated per-field record containers remain separately accounted. + """ + schema = report_schema() + inventory = {} + old = {name: {'shape': name, 'value': value, 'source': 'Reporting 12–18; N01 component_examples', + 'optional': ('note',) if name == 'TimeWindow' else + ('asserted_at',) if name == 'BasisTime' else ()} + for name, value in component_examples().items()} + for group_name, cases in (('component_examples', old), ('EXTENDED_CONTRACT_CASES', EXTENDED_CONTRACT_CASES)): + for name, case in cases.items(): + shape = case['shape'] + rule = schema['$defs'][shape] + pointer = '#/$defs/' + shape + branch = case.get('branch') + if branch is not None: + pointer += '/anyOf/' + str(branch) + rule = rule['anyOf'][branch] + if rule.get('type') != 'object': + continue + entry = inventory.setdefault(pointer, {'shape': shape, 'specimens': [], 'members': {}, + 'extra_member_test': ('test_every_fixed_component_rejects_an_extra_member' + if group_name == 'component_examples' else 'test_each_nested_contract_branch_is_closed')}) + entry['specimens'].append({'group': group_name, 'case': name, 'source': case['source']}) + for member in case['value']: + if group_name == 'component_examples' and (shape, member) in ( + ('TimeWindow', 'note'), ('BasisTime', 'asserted_at')): + continue + member_entry = entry['members'].setdefault(member, {'positive_cases': [], 'type_cases': [], + 'missing_rejected_cases': [], 'optional_omission_accepted_cases': []}) + member_entry['positive_cases'].append(name) + member_entry['type_cases'].append(name) + key = 'optional_omission_accepted_cases' if member in case.get('optional', ()) else 'missing_rejected_cases' + member_entry[key].append(name) + for index, condition in enumerate(schema['$defs']['Result']['allOf']): + if condition.get('then', {}).get('properties', {}).get('value', {}).get('type') != 'object': + continue + field = condition.get('if', {}).get('properties', {}).get('field_key', {}).get('const') + cases = [(name, case) for name, case in DISCLOSURE_BRANCH_CASES.items() if case['field'] == field] + if not cases: + continue + base = '#/$defs/Result/allOf/' + str(index) + '/then/properties/value' + for suffix, members in (('', ('records',)), ('/properties/records/items', ('source', 'fields', 'qualifications'))): + inventory[base + suffix] = {'shape': 'Result field-specific container' if not suffix else 'Result field-specific row', + 'field_key': field, 'specimens': [{'group': 'DISCLOSURE_BRANCH_CASES', 'case': name, + 'source': case['source']} for name, case in cases], + 'members': {member: {'positive_cases': [name for name, _ in cases], + 'type_cases': [name for name, _ in cases], 'missing_rejected_cases': [name for name, _ in cases], + 'optional_omission_accepted_cases': []} for member in members}, + 'extra_member_test': 'test_each_field_specific_disclosure_container_and_row_is_closed_and_typed'} + return inventory + + +def test_all_160_closed_schema_objects_have_explicit_positive_and_member_controls(): + schema = report_schema() + objects = {} + + def collect(rule, pointer): + if type(rule) is dict: + if rule.get('type') == 'object': + objects[pointer] = rule + for name, value in rule.items(): + collect(value, pointer + '/' + name) + elif type(rule) is list: + for index, value in enumerate(rule): + collect(value, pointer + '/' + str(index)) + + collect(schema, '#') + coverage = closed_object_coverage() + assert len(objects) == 160 # frozen schema census, not an outcome-count gate + assert set(coverage) == set(objects), sorted(set(objects) - set(coverage)) + for pointer, rule in objects.items(): + assert rule['additionalProperties'] is False + entry = coverage[pointer] + assert entry['specimens'] and entry['extra_member_test'], pointer + assert set(entry['members']) == set(rule['properties']), pointer + for member, evidence in entry['members'].items(): + assert evidence['positive_cases'] and evidence['type_cases'], (pointer, member) + if member in rule.get('required', ()): + assert evidence['missing_rejected_cases'], (pointer, member) + else: + assert evidence['optional_omission_accepted_cases'], (pointer, member) From 7919288509e9a9232f5b26b004be5ba1d0a810f6 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Wed, 14 Oct 2026 21:35:21 -0700 Subject: [PATCH 07/21] Reuse isolated Git bootstrap while preserving verification controls Retain the incomplete Windows 3.11 run and all original verification tests. Use a delayed real bootstrap seed and independent complete repository copies with fresh Git checks; add destructive-copy isolation coverage. Complete local V02 validation passed all 211 cases. Final exact-head four-profile verification remains pending. SIT-Phase-Unit: P4-W01 --- phase4/implementation_evidence.json | 221 ++++++++++++++++++- tests/contract/test_verification_boundary.py | 82 ++++++- 2 files changed, 292 insertions(+), 11 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 5a623bc..7f2312e 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,7 +1,7 @@ { "phase": "P4", "current_unit": "P4-W02", - "status": "W02 contracts, independent reference, complete nested controls and targeted validation verified; W01 verification-owner repair verified; final corrected published-head hosted matrix pending at this record", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { "instruction": "启动 P4-W02", "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", @@ -40,7 +40,7 @@ "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen.", + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { "path": "tests/contract/test_input_schema_mapping.py", @@ -262,7 +262,7 @@ }, "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "Corrected final-head matrix pending at this record; first candidate run 38672908042 failed and is separately retained.", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", "first_hosted_candidate": { "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", @@ -484,6 +484,205 @@ "same_6217_ordered_test_identities": true, "N01_reader_fixtures_assertions_unchanged": true, "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." + }, + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ @@ -577,6 +776,17 @@ "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." } ] + }, + { + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { @@ -823,6 +1033,7 @@ } ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T03:35:18.984279+00:00", - "publication_note": "This pre-publication record describes actual local focused verification and preserved first-run failures. The two repair commits retain their own W01/W02 path ownership and stage 2. Final exact-head history checks and hosted receipts are recorded externally in the PR/evidence package after publication, without a self-referential result commit." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } diff --git a/tests/contract/test_verification_boundary.py b/tests/contract/test_verification_boundary.py index e624957..26ef1d1 100644 --- a/tests/contract/test_verification_boundary.py +++ b/tests/contract/test_verification_boundary.py @@ -177,16 +177,86 @@ def git(root, *args, input_bytes=None): cwd=root, env=env, input=input_bytes, stderr=subprocess.PIPE, timeout=60) -@pytest.fixture -def repo(tmp_path): - path = tmp_path / "repository" - git(tmp_path, "clone", "--quiet", "--no-checkout", "--no-hardlinks", str(ROOT), str(path)) +def _bootstrap_identity(root): + # These are fresh Git reads for this exact root, not a cached guard verdict. + assert (root / '.git').is_dir() and not (root / '.git').is_symlink() + assert not (root / '.git/commondir').exists() + assert not (root / '.git/objects/info/alternates').exists() + assert git(root, 'rev-parse', 'HEAD').decode().strip() == ENTRY + assert git(root, 'rev-parse', 'HEAD^{tree}').decode().strip() == ENTRY_TREE + assert git(root, 'status', '--porcelain') == b'' + + +def _repository_file_hashes(root): + # Include the complete private .git directory, index, refs and objects. + # Generated seed repositories contain ordinary files, not shared links. + files = {} + for path in sorted(root.rglob('*')): + assert not path.is_symlink(), path + if path.is_file(): + files[path.relative_to(root).as_posix()] = hashlib.sha256(path.read_bytes()).hexdigest() + return files + + +def _copy_bootstrap_repository(seed, path): + # copytree/copy2 creates separate files, including every Git object. Do not + # replace this with worktrees, shared clones, alternates or hard links. + shutil.copytree(seed, path) + _bootstrap_identity(path) + return path + + +@pytest.fixture(scope='module') +def repo_seed(tmp_path_factory): + # Deferred until a repository test executes: collection remains Git-free. + parent = tmp_path_factory.mktemp('p4-bootstrap-seed') + path = parent / 'repository' + git(parent, "clone", "--quiet", "--no-checkout", "--no-hardlinks", str(ROOT), str(path)) git(path, "checkout", "--quiet", "--detach", ANCHOR) (path / PLAN).write_bytes((ROOT / PLAN).read_bytes()) assert commit(path, "Synthetic P4 bootstrap") == ENTRY # Entry bytes and metadata are fixed independently of the mutable HEAD. - assert git(path, "rev-parse", "HEAD^{tree}").decode().strip() == ENTRY_TREE - return path + _bootstrap_identity(path) + original_files = _repository_file_hashes(path) + yield path + _bootstrap_identity(path) + assert _repository_file_hashes(path) == original_files + + +@pytest.fixture +def repo(tmp_path, repo_seed): + return _copy_bootstrap_repository(repo_seed, tmp_path / 'repository') + + +def test_bootstrap_repository_copies_isolate_files_history_and_objects(repo_seed, tmp_path): + first = _copy_bootstrap_repository(repo_seed, tmp_path / 'first') + second = _copy_bootstrap_repository(repo_seed, tmp_path / 'second') + original_seed = _repository_file_hashes(repo_seed) + original_second = _repository_file_hashes(second) + assert set(original_seed) == set(original_second) + for name in original_seed: + assert not os.path.samefile(repo_seed / name, first / name) + assert not os.path.samefile(repo_seed / name, second / name) + assert not os.path.samefile(first / name, second / name) + + tracked = first / 'README.md' + original_tracked = tracked.read_bytes() + tracked.write_bytes(original_tracked + b'\n# isolated synthetic repository change\n') + assert tracked.read_bytes() != original_tracked + git(first, 'replace', ENTRY, ANCHOR) + assert git(first, 'replace', '-l').decode().splitlines() == [ENTRY] + (first / '.git/shallow').write_text(ENTRY + '\n', encoding='ascii') + assert (first / '.git/shallow').read_text(encoding='ascii') == ENTRY + '\n' + loose = first / '.git/objects' / ENTRY[:2] / ENTRY[2:] + original_object = loose.read_bytes() + assert original_object + loose.chmod(loose.stat().st_mode | 0o200) + loose.write_bytes(original_object[:-1] + bytes([original_object[-1] ^ 1])) + assert loose.read_bytes() != original_object + + for unchanged, original in ((repo_seed, original_seed), (second, original_second)): + _bootstrap_identity(unchanged) + assert _repository_file_hashes(unchanged) == original def edit(root, path, data=b"\n# synthetic P4 review change\n"): From 95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sat, 24 Oct 2026 23:56:54 -0700 Subject: [PATCH 08/21] Assemble bounded internal reports with stable semantic identities Build the immutable logical envelope from accepted private outcomes and an explicit selected-disclosure contract. Close report and prepared-input links, preserve retained witnesses and exact values, and aggregate five global domains with fifteen capability families per Inquiry. Keep the public entry points refused and defer runtime disclosure selection and encoders to their owners. Add focused assembly and identity coverage, retain exploratory failures, and record actual local validation without claiming the pending hosted result. SIT-Phase-Unit: P4-W03 --- phase4/implementation_evidence.json | 2090 ++++++++++------- phase4/report_contract_coverage.json | 252 +- .../contracts/report.py | 703 +++++- .../reporting/assemble.py | 1213 +++++++++- tests/contract/test_report_assembly.py | 1177 ++++++++++ tests/contract/test_report_identity.py | 577 +++++ 6 files changed, 5055 insertions(+), 957 deletions(-) create mode 100644 tests/contract/test_report_assembly.py create mode 100644 tests/contract/test_report_identity.py diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 7f2312e..8fa9bf6 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,10 +1,10 @@ { "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { @@ -18,797 +18,269 @@ "post_merge_run": 38164028893 }, "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." }, "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." - }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." - }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." ], + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 - }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 - }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" - } + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" } }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" - }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 - }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" - }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } - }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } - ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" - }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" - } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" } - } - }, - "failures_and_repairs": [ - { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + }, + "failures_and_repairs": [ { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" ] }, { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" ] }, { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" ] }, { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" ] }, { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" ] }, { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" ] } ], "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -820,220 +292,1028 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 + }, + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + }, + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, "package_boundary": { "result": "passed", - "stage": 1, + "activation_stage": 2, "checked_modules": 48, - "byte_protected_modules": 48 + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + }, + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] + }, + { + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." + }, + { + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." + }, + { + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] + }, + { + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index 4289120..9880070 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,12 +1,12 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W02", - "status": "W02 representation contracts and independent exact reference verified; public pipeline/rendering obligations remain pending", + "unit": "P4-W03", + "status": "W03 bounded internal assembly, semantic identity and reference closure verified; public pipeline/rendering obligations remain pending", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", "sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "owner_authorization": "Exact plan approved; user subsequently instructed 启动 P4-W02. Execution is authorized through P4-W02 only." + "owner_authorization": "Exact plan approved; user instructed 很好,继续 W03. Execution authorized through P4-W03 only." }, "accepted_core_baseline": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -11762,45 +11762,84 @@ "source": "OBSERVABILITY_AND_REPORTING.md §§16.2–16.3; PHASE_4_PLAN.md §4.2", "planned_unit": "P4-W03", "required_behavior": "Exact claims, targets, dimension, graph view, time, population unit, member sets and coverage preserved; empty enumerated and unestablished remain distinct; operation anchor remains private.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_real_private_reference_assembles_exact_independent_logical_document", + "tests/contract/test_report_identity.py::test_same_scope_anchor_keeps_different_qualification_bodies", + "tests/contract/test_report_identity.py::test_same_population_anchor_keeps_different_qualification_bodies" + ], + "execution_evidence": [ + "p4w03-targeted-002.log", + "p4w03-targeted-002.xml" + ] }, { "clause": "result_semantics", "source": "OBSERVABILITY_AND_REPORTING.md §§12.3–12.5,16.4–16.5,17", "planned_unit": "P4-W03", "required_behavior": "Preserve all 57 registered leaves, allowed execution/result-state pairs, native attribution, null non-results, original exact fractions, denominators, members and material reasons.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_real_private_reference_assembles_exact_independent_logical_document", + "tests/contract/test_report_assembly.py::test_available_completion_interval_uses_exact_shared_population", + "tests/contract/test_report_assembly.py::test_available_witness_collection_links_same_actual_finding", + "tests/contract/test_report_assembly.py::test_reference_validator_rejects_independent_single_reference_mutants" + ], + "execution_evidence": [ + "p4w03-targeted-002.log", + "p4w03-targeted-002.xml" + ] }, { "clause": "local_ids_and_dedup", "source": "REPOSITORY_ARCHITECTURE.md §18.1; GOVERNANCE_AND_HANDOFF.md §22.5", "planned_unit": "P4-W03", "required_behavior": "Constant SIT-RPT-000001; eight existing sequential ID prefixes; semantic-key ordering, full-body dedup, anchor link cycles, distinct source IDs and unequal-slot failure.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_identity.py::test_each_local_collection_has_its_own_sequential_identity", + "tests/contract/test_report_identity.py::test_discovery_order_does_not_allocate_report_ids", + "tests/contract/test_report_identity.py::test_input_entity_permutation_preserves_same_logical_report", + "tests/contract/test_report_identity.py::test_identical_result_and_explanatory_nodes_share_existing_ids", + "tests/contract/test_report_identity.py::test_unequal_semantic_body_for_one_result_slot_is_an_error", + "tests/contract/test_report_identity.py::test_reason_result_cycles_close_without_recursive_body_naming", + "tests/contract/test_report_identity.py::test_distinct_input_ids_do_not_merge_identical_selected_basis_bodies", + "tests/contract/test_report_identity.py::test_selected_native_qualification_sequence_is_not_sorted_or_deduplicated" + ], + "execution_evidence": [ + "p4w03-targeted-002.log", + "p4w03-targeted-002.xml" + ] }, { "clause": "five_global_domains", "source": "OBSERVABILITY_AND_REPORTING.md §15; PHASE_4_PLAN.md §4.2", "planned_unit": "P4-W03", "required_behavior": "Aggregate private per-inquiry domains into exactly five report-global audit entries; preserve the six named domain members and avoid adding a not_applicable domain field.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_two_independent_inquiries_keep_thirty_capabilities_but_five_global_domains" + ], + "execution_evidence": [ + "p4w03-targeted-002.log", + "p4w03-targeted-002.xml" + ] }, { "clause": "capability_partitions", "source": "OBSERVABILITY_AND_REPORTING.md §16.7", "planned_unit": "P4-W03", "required_behavior": "All 15 families per inquiry, scope-local prerequisite instances and exact four-way result partitions; no strongest-child summary or global completion shortcut.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_reference_partitions_and_target_kinds_are_independently_closed", + "tests/contract/test_report_assembly.py::test_two_independent_inquiries_keep_thirty_capabilities_but_five_global_domains", + "tests/contract/test_report_assembly.py::test_reference_validator_rejects_independent_single_reference_mutants" + ], + "execution_evidence": [ + "p4w03-targeted-002.log", + "p4w03-targeted-002.xml" + ] }, { "clause": "basis_projection", @@ -11816,9 +11855,19 @@ "source": "OBSERVABILITY_AND_REPORTING.md §§18.1,19.2; PHASE_4_PLAN.md §4.2", "planned_unit": "P4-W03", "required_behavior": "Result witness references resolve to actual report Finding IDs and finite witness contents; private native_records/result_refs do not become new public Finding members; no root witnesses array.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_owner_only_trace_and_human_review_scan_material_are_preserved", + "tests/contract/test_report_assembly.py::test_two_hop_retained_owner_path_does_not_require_an_equal_private_finding", + "tests/contract/test_report_assembly.py::test_two_same_scope_path_trace_pairs_keep_distinct_supporting_metadata", + "tests/contract/test_report_assembly.py::test_unrelated_same_scope_absence_keeps_own_material_family_and_basis", + "tests/contract/test_report_identity.py::test_small_trace_homes_keep_own_result_links_across_discovery_orders", + "tests/contract/test_report_identity.py::test_small_same_finding_keeps_both_sequentially_appended_traces" + ], + "execution_evidence": [ + "p4w03-targeted-002.log", + "p4w03-targeted-002.xml" + ] }, { "clause": "disclosure_selection", @@ -14820,5 +14869,166 @@ }, "pending": "All 228 field obligations retain their existing pending public-pipeline/rendering state; representation tests do not close assembly, execution, privacy or release acceptance.", "qualification": "Initial local pass is retained, but independent review found omitted nested variant controls; superseded for coverage completeness by the final 6217-test targeted run." + }, + "w03_verification": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" + ], + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 + }, + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" + }, + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" + }, + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" + }, + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" + } + }, + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] + }, + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] + } + }, + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] + }, + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] + } + } + }, + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" + }, + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" + }, + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" + } + }, + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." } } diff --git a/src/source_integrity_toolkit/contracts/report.py b/src/source_integrity_toolkit/contracts/report.py index 9552713..14c5247 100644 --- a/src/source_integrity_toolkit/contracts/report.py +++ b/src/source_integrity_toolkit/contracts/report.py @@ -1777,19 +1777,19 @@ def _report_type(value, kind): (kind == 'null' and value is None)) -def _report_matches(value, specification, port): +def _report_matches(value, specification, port, fields=None): try: - _report_schema(value, specification, port) + _report_schema(value, specification, port, fields) except _ReportContractError: return False return True -def _report_schema(value, specification, port): +def _report_schema(value, specification, port, fields=None): """Interpret only the compiled local report grammar, never supplied schemas. This private fixed-contract walker accepts only the keyword subset used in - the pinned report declaration. Every alternative, scalar scan, member + the pinned report declaration. Every executed alternative, scalar scan, member examination and collection comparison consumes the caller's existing port. """ port.charge(1) @@ -1797,11 +1797,18 @@ def _report_schema(value, specification, port): _report_require(False) if specification is True: return + # A same-value schema alternative reuses only this immutable object's + # field lookup table, never a validation result or source qualification. + if type(value) is _ReportMapping and fields is None: + fields = _report_fields(value, port) if '$ref' in specification: reference = specification['$ref'] name = reference.removeprefix('#/$defs/') _report_require(reference.startswith('#/$defs/') and name in _REPORT_SHAPES) - _report_shape(value, name, port) + _report_shape(value, name, port, fields) + if len(specification) == 1: + port.check() + return if 'type' in specification: kinds = specification['type'] kinds = (kinds,) if type(kinds) is str else kinds @@ -1822,17 +1829,29 @@ def _report_schema(value, specification, port): successes = 0 for branch in specification[key]: port.charge(1) - successes += int(_report_matches(value, branch, port)) + matched = _report_matches(value, branch, port, fields) + successes += int(matched) + if key == 'allOf' and not matched: + _report_require(False) + if key == 'anyOf' and matched: + break + if key == 'oneOf' and successes > 1: + _report_require(False) _report_require(successes == len(specification[key]) if key == 'allOf' else successes >= 1 if key == 'anyOf' else successes == 1) if 'not' in specification: - _report_require(not _report_matches(value, specification['not'], port)) + _report_require(not _report_matches(value, specification['not'], port, fields)) if 'if' in specification: - which = 'then' if _report_matches(value, specification['if'], port) else 'else' + which = 'then' if _report_matches(value, specification['if'], port, fields) else 'else' if which in specification: - _report_schema(value, specification[which], port) + _report_schema(value, specification[which], port, fields) if type(value) is str: - _report_text_work(value, port) + # Capture already checked Unicode scalar validity. This pass performs + # only actual grammar constraints, with no no-op re-scan of text. + port.charge(3) + if not any(key in specification for key in ('minLength', 'maxLength', 'pattern')): + port.check() + return _report_require(len(value) >= specification.get('minLength', 0)) if 'maxLength' in specification: _report_require(len(value) <= specification['maxLength']) @@ -1852,7 +1871,10 @@ def _report_schema(value, specification, port): if 'exclusiveMaximum' in specification: _report_require(value < specification['exclusiveMaximum']) elif type(value) is tuple: - port.charge(2) + port.charge(7) + if not any(key in specification for key in ('minItems', 'maxItems', 'prefixItems', 'items', 'uniqueItems', 'contains')): + port.check() + return _report_require(len(value) >= specification.get('minItems', 0)) if 'maxItems' in specification: _report_require(len(value) <= specification['maxItems']) @@ -1874,7 +1896,10 @@ def _report_schema(value, specification, port): if 'maxContains' in specification: _report_require(matches <= specification['maxContains']) elif type(value) is _ReportMapping: - fields = _report_fields(value, port) + port.charge(8) + if not any(key in specification for key in ('minProperties', 'maxProperties', 'required', 'properties', 'propertyNames', 'additionalProperties', 'dependentRequired')): + port.check() + return _report_require(len(fields) >= specification.get('minProperties', 0)) if 'maxProperties' in specification: _report_require(len(fields) <= specification['maxProperties']) @@ -1882,14 +1907,22 @@ def _report_schema(value, specification, port): port.charge(1) _report_require(name in fields) properties = specification.get('properties', {}) - for name, child in fields.items(): - _byte_work(port, 4 * len(name), 2) - if 'propertyNames' in specification: - _report_schema(name, specification['propertyNames'], port) - if name in properties: - _report_schema(child, properties[name], port) - elif 'additionalProperties' in specification: - _report_schema(child, specification['additionalProperties'], port) + if 'propertyNames' in specification or 'additionalProperties' in specification: + for name, child in fields.items(): + _byte_work(port, 4 * len(name), 2) + if 'propertyNames' in specification: + _report_schema(name, specification['propertyNames'], port) + if name in properties: + _report_schema(child, properties[name], port) + elif 'additionalProperties' in specification: + _report_schema(child, specification['additionalProperties'], port) + else: + # Conditional overlays address their named fields only; the main + # closed object grammar still examines every actual member. + for name, childspec in properties.items(): + _byte_work(port, 4 * len(name), 2) + if name in fields: + _report_schema(fields[name], childspec, port) for name, required in specification.get('dependentRequired', {}).items(): port.charge(1) if name in fields: @@ -1899,11 +1932,13 @@ def _report_schema(value, specification, port): port.check() -def _report_shape(value, shape, port): +def _report_shape(value, shape, port, fields=None): _report_require(type(shape) is str) _report_require(shape in _REPORT_SHAPES) - _report_schema(value, _REPORT_SHAPES[shape], port) - _report_semantics(value, shape, port) + if type(value) is _ReportMapping and fields is None: + fields = _report_fields(value, port) + _report_schema(value, _REPORT_SHAPES[shape], port, fields) + _report_semantics(value, shape, port, fields) def _validate_report_component(value, shape, port): @@ -2130,7 +2165,7 @@ def _report_root(fields, port): _report_require(validation['state'] != 'accepted') -def _report_semantics(value, shape, port): +def _report_semantics(value, shape, port, fields=None): """Validate finite local relations after their exact closed shape passes. No input lookup, graph search, analysis, rendering, ID allocation or public @@ -2142,7 +2177,8 @@ def _report_semantics(value, shape, port): return if type(value) is not _ReportMapping: return - fields = _report_fields(value, port) + if fields is None: + fields = _report_fields(value, port) if shape == 'TimeValue': _report_time(fields, port) elif shape == 'Run': @@ -2433,3 +2469,620 @@ def _report_semantics(value, shape, port): 'FindingWitness': {'type': 'object', 'properties': {'input_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'components': {'type': 'array', 'items': {'$ref': '#/$defs/WitnessComponent'}}}, 'additionalProperties': False, 'required': ['input_refs', 'components']}, 'Finding': {'type': 'object', 'properties': {'id': {'$ref': '#/$defs/FindingId'}, 'observation_kind': {'type': 'string', 'enum': ['positive_witness', 'no_witness_in_examined_view', 'bounded_absence_under_declared_coverage', 'attributed_observation', 'qualification_gap', 'recorded_conflict']}, 'condition_code': {'type': 'string', 'enum': ['shared_origin_witness', 'citation_path_witness', 'transformation_path_witness', 'model_mediated_derivation_witness', 'view_cycle_witness', 'assurance_loop_limitation', 'evaluator_overlap_witness', 'family_label_match', 'provenance_gap', 'verification_scope_limitation', 'independence_record_conflict', 'correction_dependency_witness', 'correction_route_limitation', 'case_handling_disclosure', 'linked_change_disclosure', 'downstream_change_undocumented', 'externality_stage_limitation', 'recorded_stage_exclusion', 'anomaly_or_contestation_disclosure', 'attributed_external_observation', 'scoped_no_witness', 'recorded_data_conflict']}, 'diagnostic_refs': {'type': 'array', 'items': {'$ref': '#/$defs/DiagnosticId'}, 'uniqueItems': True}, 'threat_family_refs': {'type': 'array', 'items': {'type': 'string', 'enum': ['SIT-TH001', 'SIT-TH002', 'SIT-TH003', 'SIT-TH004', 'SIT-TH005', 'SIT-TH006', 'SIT-TH007', 'SIT-TH008', 'SIT-TH009', 'SIT-TH010', 'SIT-TH011', 'SIT-TH012', 'SIT-TH013', 'SIT-TH014']}, 'uniqueItems': True}, 'scope_ref': {'$ref': '#/$defs/ScopeId'}, 'population_refs': {'type': 'array', 'items': {'$ref': '#/$defs/PopulationId'}, 'uniqueItems': True}, 'basis_refs': {'type': 'array', 'items': {'$ref': '#/$defs/BasisId'}, 'uniqueItems': True}, 'witness': {'$ref': '#/$defs/FindingWitness'}, 'contrary_input_refs': {'type': 'array', 'items': {'$ref': '#/$defs/InputRef'}, 'uniqueItems': True}, 'reason_refs': {'type': 'array', 'items': {'$ref': '#/$defs/ReasonId'}, 'uniqueItems': True}, 'statement': {'type': 'string', 'minLength': 1}, 'interpretation_limit': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False, 'required': ['id', 'observation_kind', 'condition_code', 'diagnostic_refs', 'threat_family_refs', 'scope_ref', 'population_refs', 'basis_refs', 'witness', 'contrary_input_refs', 'reason_refs', 'statement', 'interpretation_limit']}, } + +# W03 selected projection and reference closure. These are internal, charged +# construction seams. They do not select source fields, run an audit, or create +# a deliverable AuditReport. Disclosure selection remains the runtime owner. +_REPORT_REFERENCE_COLLECTIONS = ( + ('ScopeId', 'scopes'), ('PopulationId', 'populations'), + ('BasisId', 'basis_index'), ('CapabilityId', 'capabilities'), + ('CheckId', 'checks'), ('ResultId', 'results'), + ('FindingId', 'findings'), ('ReasonId', 'reasons'), +) +_REPORT_SELECTION_LINK_TYPES = ( + _InputRef, _Scope, _Population, _BasisRef, _ResultRef, _WitnessRef, + _Reason, _PrerequisiteCheck, +) +_REPORT_SELECTED_BASIS_FIELDS = ( + 'basis_kind', 'asserter_ref', 'attestor_ref', 'method', 'support_refs', + 'availability', 'scope', 'time', 'lifecycle', 'qualifications', 'check_refs', +) + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class _SelectedReportDisclosure: + """Immutable selected fields linked to actual trusted analytical owners. + + The constructor alone confers no source authenticity or run completion. + Its constructing owner must prospectively charge validation/allocation; + arbitrary dictionaries enter only through the bounded capture below. + """ + basis_entries: tuple + disclosures: tuple + finding_witnesses: tuple + owner_witnesses: tuple = () + + def __post_init__(self): + for rows, owner_type in ( + (self.basis_entries, _BasisRef), + (self.disclosures, _ResultRef), + (self.finding_witnesses, _PrivateFinding), + (self.owner_witnesses, _WitnessRecord)): + _report_require(type(rows) is tuple) + for row in rows: + _report_require(type(row) is tuple and len(row) == 2) + _report_require(type(row[0]) is owner_type and + type(row[1]) is _ReportMapping) + + +def _copy_selected_report_value(value, port): + """Detach selected containers, preserving only the fixed symbolic links. + + Explicit stacks reject cycles and mutable/private source-tree leaves. + Typed references stay symbolic until assembly assigns local identities. + Strings that resemble an identifier are ordinary strings at this seam. + """ + result, active = [], set() + pending = [('visit', value, result)] + while pending: + port.charge(1) + operation, current, destination = pending.pop() + if operation in ('object', 'array'): + children, identity = current + port.charge(2 * len(children) + 2) + if operation == 'object': + destination.append(_ReportMapping(tuple((k, v[0]) for k, v in children))) + else: + destination.append(tuple(v[0] for v in children)) + active.remove(identity) + continue + kind = type(current) + if kind in _REPORT_SELECTION_LINK_TYPES: + port.charge(len(_REPORT_SELECTION_LINK_TYPES) + 1) + if kind is _Scope: + _charge_scope(current, port) + else: + _charge_link(current, port) + destination.append(current) + elif current is None or kind is bool or kind is int or kind is str: + port.charge(2) + if kind is str: + _report_text_work(current, port) + elif kind is int: + _report_require(-9007199254740991 <= current <= 9007199254740991) + destination.append(current) + else: + _report_require(kind in (dict, list, tuple, _ReportMapping)) + identity = id(current) + port.charge(3) + _report_require(identity not in active) + active.add(identity) + if kind is dict or kind is _ReportMapping: + if kind is dict: + port.charge(2 * len(current) + 1) + pairs = tuple(current.items()) + else: + pairs = current._pairs + _report_require(type(pairs) is tuple) + children, seen, source_values = [], set(), [] + for pair in pairs: + port.charge(4) + _report_require(type(pair) is tuple and len(pair) == 2) + name, child = pair + _report_text_work(name, port) + _byte_work(port, 4 * len(name), 2) + _report_require(name not in seen) + seen.add(name) + children.append((name, [])) + source_values.append(child) + pending.append(('object', (children, identity), destination)) + for position in range(len(children) - 1, -1, -1): + port.charge(2) + pending.append(('visit', source_values[position], children[position][1])) + else: + port.charge(2 * len(current) + 1) + children = [[] for unused in current] + pending.append(('array', (children, identity), destination)) + for position in range(len(children) - 1, -1, -1): + port.charge(2) + pending.append(('visit', current[position], children[position])) + port.check() + _report_require(len(result) == 1) + return result[0] + + +def _validate_selected_report_disclosure(selection, port): + """Check the closed selected-field seam without interpreting owner facts.""" + _report_require(type(selection) is _SelectedReportDisclosure) + for rows, owner_type, expected in ( + (selection.basis_entries, _BasisRef, _REPORT_SELECTED_BASIS_FIELDS), + (selection.disclosures, _ResultRef, ('records',)), + (selection.finding_witnesses, _PrivateFinding, ('input_refs', 'components')), + (selection.owner_witnesses, _WitnessRecord, ('input_refs', 'components'))): + _report_require(type(rows) is tuple) + seen = set() + for row in rows: + port.charge(5) + _report_require(type(row) is tuple and len(row) == 2) + owner, selected = row + _report_require(type(owner) is owner_type and type(selected) is _ReportMapping) + identity = id(owner) + _report_require(identity not in seen) + seen.add(identity) + fields = _report_fields(selected, port) + port.charge(len(fields) + len(expected) + 1) + _report_require(set(fields) == set(expected)) + # Rechecking a private immutable carrier still visits every leaf; + # no cached validity grants acceptance to another invocation. + _copy_selected_report_value(selected, port) + if owner_type is _ResultRef: + _report_require(type(fields['records']) is tuple) + elif owner_type in (_PrivateFinding, _WitnessRecord): + _report_require(type(fields['input_refs']) is tuple and + type(fields['components']) is tuple) + port.check() + + +def _capture_report_disclosure(basis_entries, disclosures, finding_witnesses, + port, *, owner_witnesses=()): + """Capture an explicitly selected internal projection, never raw records.""" + captured = [] + for rows, owner_type in ((basis_entries, _BasisRef), (disclosures, _ResultRef), + (finding_witnesses, _PrivateFinding), + (owner_witnesses, _WitnessRecord)): + _report_require(type(rows) is tuple) + copied = [] + for row in rows: + port.charge(4) + _report_require(type(row) is tuple and len(row) == 2) + owner, fields = row + _report_require(type(owner) is owner_type) + frozen = _copy_selected_report_value(fields, port) + _report_require(type(frozen) is _ReportMapping) + copied.append((owner, frozen)) + port.charge(len(copied) + 1) + captured.append(tuple(copied)) + port.charge(12 + 4 * sum(len(rows) for rows in captured)) + selection = _SelectedReportDisclosure(*captured) + _validate_selected_report_disclosure(selection, port) + return selection + + +def _report_lookup(identifier, index, port): + _report_require(type(identifier) is str) + _byte_work(port, 4 * len(identifier), 2) + _report_require(identifier in index) + return index[identifier] + +_REPORT_NATIVE_LINK_FIELDS = { + 'SelectedProvenance': ('attributed_to_ref', 'evidence_ref_ids'), + 'SelectedEvidenceReference': ('artifact_ref', 'record_ref', 'provided_by_ref', 'attestor_ref'), + 'SelectedInquiry': ('target_claim_refs', 'target_object_refs', 'seed_artifact_refs', 'seed_evidence_refs', 'coverage_assertion_refs'), + 'SelectedBoundary': ('system_refs',), + 'SelectedClaimData': ('content_evidence_ref',), + 'SelectedArtifactData': ('content_evidence_refs',), + 'SelectedEvidenceItemData': ('claim_ref', 'artifact_ref'), + 'SelectedOriginEventData': ('performed_by_refs', 'method_ref'), + 'SelectedModelData': ('provider_ref',), + 'SelectedEvaluationData': ('target_refs', 'result_refs'), + 'SelectedRoleBinding': ('object_ref', 'evidence_ref_ids'), + 'SelectedCorrectionChannelData': ('owner_refs', 'target_refs'), + 'SelectedCorrectionEventData': ('case_ref', 'channel_ref', 'target_refs'), + 'SelectedChangeDetails': ('before_ref', 'after_ref'), + 'SelectedPipelineRecordData': ('subject_ref', 'output_refs'), + 'SelectedAnomalyData': ('inquiry_refs', 'claim_ref', 'context_evidence_ref'), + 'SelectedAssertion': ('lifecycle_basis_ref_ids',), + 'SelectedAssertionScope': ('inquiry_refs', 'claim_refs'), + 'SelectedRelationData': ('from_ref', 'to_ref'), + 'SelectedTransformationDetails': ('transformer_ref', 'method_ref'), + 'SelectedAssessmentData': ('subject_refs',), + 'SelectedOriginBoundaryDetails': ('coverage_ref',), + 'SelectedIndependenceDetails': ('examined_dependency_refs', 'coverage_ref'), + 'SelectedCoverageDetails': ('member_refs', 'omitted_refs'), + 'SelectedClassificationDetails': ('verification_assessment_refs',), + 'SelectedVerificationDetails': ('evaluation_ref',), + 'SelectedExternalityDetails': ('boundary_inquiry_ref',), + 'SelectedAuthorityDetails': ('target_refs', 'authorized_by_ref', 'coverage_ref'), + 'SelectedConflictDetails': ('resolution_evaluation_ref',), +} + + +def _report_native_references(value, shape, source_ids, port): + """Close native snapshot IDs retained inside selected source shapes. + + These native IDs are not report-local links. The selected source schema + has already fixed the field vocabulary; only its reference slots are + considered. Unresolved-reference records remain actual input records. + """ + if not shape.startswith('Selected') or type(value) is not _ReportMapping: + return + fields = _report_fields(value, port) + for name in _REPORT_NATIVE_LINK_FIELDS.get(shape, ()): + _byte_work(port, 4 * len(name), 2) + child = fields.get(name) + refs = child if type(child) is tuple else (child,) + for reference in refs: + port.charge(1) + if reference is not None: + _report_lookup(reference, source_ids, port) + own_collection = {'SelectedInquiry': 'inquiries', 'SelectedRecord': 'records', + 'SelectedAssertion': 'assertions', + 'SelectedEvidenceReference': 'evidence_references'}.get(shape) + if own_collection is not None: + source = _report_lookup(fields['id'], source_ids, port) + _report_require(source.collection == own_collection) + + +def _report_reference_branch(value, specification, port): + """Choose a structural branch of the already validated fixed grammar. + + Reference discovery does not repeat local numeric, uniqueness and text + validation. Closed object keys and immediate discriminators select native + unions; their nested references are then visited under that exact shape. + This predicate is not a report validator and is never an acceptance gate. + """ + port.charge(1) + if type(specification) is bool: + return specification + if '$ref' in specification: + name = specification['$ref'].removeprefix('#/$defs/') + if not _report_reference_branch(value, _REPORT_SHAPES[name], port): + return False + if 'type' in specification: + kinds = specification['type'] + kinds = (kinds,) if type(kinds) is str else kinds + port.charge(len(kinds)) + if not any(_report_type(value, kind) for kind in kinds): + return False + if 'const' in specification and not _report_equal(value, specification['const'], port): + return False + if 'enum' in specification: + port.charge(len(specification['enum'])) + if not any(_report_equal(value, item, port) for item in specification['enum']): + return False + for branch in specification.get('allOf', ()): + if not _report_reference_branch(value, branch, port): + return False + for choice in ('anyOf', 'oneOf'): + if choice in specification: + matched = False + for branch in specification[choice]: + port.charge(1) + if _report_reference_branch(value, branch, port): + matched = True + break + if not matched: + return False + if type(value) is _ReportMapping: + fields = _report_fields(value, port) + properties = specification.get('properties', {}) + for name in specification.get('required', ()): + _byte_work(port, 4 * len(name), 1) + if name not in fields: + return False + if specification.get('additionalProperties') is False: + for name in fields: + _byte_work(port, 4 * len(name), 1) + if name not in properties: + return False + for name, childspec in properties.items(): + _byte_work(port, 4 * len(name), 1) + if name not in fields: + continue + child = fields[name] + # A disclosure may have the same outer keys but a different + # native-record kind. Follow structural discriminators inside + # its body while omitting already checked scalar arithmetic, + # text scanning and collection-uniqueness work. + if not _report_reference_branch(child, childspec, port): + return False + elif type(value) is tuple: + prefix = specification.get('prefixItems', ()) + for position, child in enumerate(value): + port.charge(1) + childspec = prefix[position] if position < len(prefix) else specification.get('items', True) + if not _report_reference_branch(child, childspec, port): + return False + return True + + +def _report_schema_has_links(specification, memo, active, port): + """Memoize only fixed grammar topology for this closure pass. + + No document value, input fact or validation outcome is stored. This avoids + revisiting the grammar's many scalar/enum/arithmetic constraints after the + full shape validation has already executed those constraints. + """ + port.charge(3) + if type(specification) is bool: + return False + identity = id(specification) + if identity in memo: + return memo[identity] + _report_require(identity not in active) + active.add(identity) + linked = False + if '$ref' in specification: + name = specification['$ref'].removeprefix('#/$defs/') + port.charge(12) + if (name in tuple(row[0] for row in _REPORT_REFERENCE_COLLECTIONS) or + name == 'InputRef' or name in _REPORT_NATIVE_LINK_FIELDS or + name in ('GraphNode', 'SelectedInquiry', 'SelectedRecord', + 'SelectedAssertion', 'SelectedEvidenceReference')): + linked = True + else: + linked = _report_schema_has_links(_REPORT_SHAPES[name], memo, active, port) + for key in ('allOf', 'anyOf', 'oneOf', 'prefixItems'): + for child in specification.get(key, ()): + port.charge(1) + linked = _report_schema_has_links(child, memo, active, port) or linked + for key in ('then', 'else', 'items', 'additionalProperties'): + if key in specification: + linked = _report_schema_has_links(specification[key], memo, active, port) or linked + for child in specification.get('properties', {}).values(): + port.charge(1) + linked = _report_schema_has_links(child, memo, active, port) or linked + active.remove(identity) + memo[identity] = linked + return linked + + +def _walk_report_references(document, indexes, inputs, source_ids, port): + """Follow only schema-declared links, not strings or linked target bodies. + + A local Reason/Result cycle never recurses: each leaf resolves once into + the separately indexed collection. Schema alternatives are selected by + their actual closed branch, preserving inert source strings verbatim. + """ + pending = [(document, {'$ref': '#/$defs/AuditReport'})] + reference_grammar, active_grammar = {}, set() + while pending: + value, specification = pending.pop() + port.charge(2) + if not _report_schema_has_links(specification, reference_grammar, active_grammar, port): + continue + if type(specification) is bool: + continue + if '$ref' in specification: + name = specification['$ref'].removeprefix('#/$defs/') + port.charge(2) + if name in indexes: + _report_lookup(value, indexes[name], port) + continue + if name == 'InputRef': + fields = _report_fields(value, port) + reference = _InputRef(fields['collection'], fields['identifier'], fields['selector']) + _resolve_input(reference, inputs, port) + continue + if name == 'GraphNode': + node = _report_fields(value, port) + reference = _report_fields(node['ref'], port) + source = _report_lookup(reference['identifier'], source_ids, port) + _report_require(source.collection == reference['collection'] and + source.kind == node['kind']) + _report_native_references(value, name, source_ids, port) + pending.append((value, _REPORT_SHAPES[name])) + for branch in specification.get('allOf', ()): + port.charge(1) + pending.append((value, branch)) + for choice in ('anyOf', 'oneOf'): + for branch in specification.get(choice, ()): + port.charge(1) + if (_report_schema_has_links(branch, reference_grammar, active_grammar, port) and + _report_reference_branch(value, branch, port)): + pending.append((value, branch)) + if 'if' in specification: + selected = 'then' if _report_matches(value, specification['if'], port) else 'else' + if selected in specification: + pending.append((value, specification[selected])) + if type(value) is _ReportMapping: + fields = _report_fields(value, port) + for name, subspec in specification.get('properties', {}).items(): + _byte_work(port, 4 * len(name), 2) + if name in fields: + pending.append((fields[name], subspec)) + elif type(value) is tuple: + prefix = specification.get('prefixItems', ()) + for position, child in enumerate(value): + port.charge(1) + if position < len(prefix): + pending.append((child, prefix[position])) + elif 'items' in specification: + pending.append((child, specification['items'])) + port.check() + + +def _report_union_fields(rows, name, port): + union = set() + for row in rows: + for value in row[name]: + _byte_work(port, 4 * len(value), 2) + union.add(value) + return union + + +def _report_equal_refs(values, expected, port): + actual = set() + for value in values: + _byte_work(port, 4 * len(value), 2) + _report_require(value not in actual) + actual.add(value) + port.charge(len(actual) + len(expected) + 1) + _report_require(actual == expected) + + +def _validate_report_references(document, prepared, port): + """Close a schema-checked frozen document against its actual source input. + + This validates report representation and joins; it does not re-derive + evidence or promote supplied source states. The caller must first use + _freeze_report_document. Diagnostic-only documents may have no accepted + prepared input and therefore cannot resolve an input reference. + """ + _report_require(type(document) is _ReportMapping) + _report_require(prepared is None or type(prepared) is _PreparedBundle) + root = _report_fields(document, port) + inputs = {} if prepared is None else _input_index(prepared, port) + source_ids = {} + for entity in inputs.values(): + _byte_work(port, 4 * len(entity.identifier), 3) + _report_require(entity.identifier not in source_ids) + source_ids[entity.identifier] = entity + indexes, collections = {}, {} + for shape, name in _REPORT_REFERENCE_COLLECTIONS: + index, rows = {}, [] + for item in root[name]: + row = _report_fields(item, port) + _byte_work(port, 4 * len(row['id']), 2) + _report_require(row['id'] not in index) + index[row['id']] = row + rows.append(row) + indexes[shape], collections[name] = index, rows + _walk_report_references(document, indexes, inputs, source_ids, port) + if root['report_kind'] != 'audit_report': + port.check() + return + _report_require(prepared is not None) + scopes, populations = indexes['ScopeId'], indexes['PopulationId'] + results, checks = indexes['ResultId'], indexes['CheckId'] + findings, reasons = indexes['FindingId'], indexes['ReasonId'] + by_inquiry_family, check_owners = {}, {} + for scope in scopes.values(): + inquiry = _report_fields(scope['inquiry_ref'], port) + for claim in scope['claim_refs']: + ref = _report_fields(claim, port) + entity = inputs[(ref['collection'], ref['identifier'])] + _report_require(entity.kind == 'claim') + port.charge(2) + _report_require(inquiry['collection'] == 'inquiries') + for row in results.values(): + scope = scopes[row['scope_ref']] + inquiry = _report_fields(scope['inquiry_ref'], port)['identifier'] + _byte_work(port, 4 * (len(inquiry) + len(row['diagnostic_id'])), 3) + key = (inquiry, row['diagnostic_id']) + by_inquiry_family.setdefault(key, []).append(row) + for ref in row['population_refs']: + population = populations[ref] + _report_require(population['scope_ref'] == row['scope_ref']) + port.charge(2) + seen_codes = set() + for ref in row['check_refs']: + check = checks[ref] + _byte_work(port, 4 * len(check['check_id']), 2) + _report_require(check['check_id'] not in seen_codes) + seen_codes.add(check['check_id']) + _report_require(check['scope_ref'] == row['scope_ref']) + _byte_work(port, 4 * len(ref), 3) + _report_require(ref not in check_owners) + check_owners[ref] = row['id'] + for ref in row['reason_refs']: + reason = reasons[ref] + _report_require(reason['scope_ref'] == row['scope_ref']) + port.charge(len(reason['affected_result_refs']) + 2) + _report_require(row['id'] in reason['affected_result_refs']) + for ref in row['witness_refs']: + _report_require(findings[ref]['scope_ref'] == row['scope_ref']) + port.charge(2) + if row['result_state'] == 'available': + kind, value = row['value_kind'], row['value'] + if kind in ('count', 'fraction'): + _report_require(bool(row['population_refs'])) + matched = False + for reference in row['population_refs']: + port.charge(6) + population = populations[reference] + if population['membership_state'] != 'enumerated_for_scope': + continue + count = len(population['member_refs']) + if kind == 'count': + matched = matched or value == count + else: + fields = _report_fields(value, port) + denominator = count * count if row['field_key'] == 'single_origin_contribution_hhi' else count + matched = matched or (count > 0 and fields['denominator'] == denominator) + _report_require(matched) + elif kind in ('partition', 'incidence', 'completion_interval'): + fields = _report_fields(value, port) + _report_require(fields['population_ref'] in row['population_refs']) + population = populations[fields['population_ref']] + _report_require(population['membership_state'] == 'enumerated_for_scope') + if kind in ('partition', 'incidence'): + _report_require(fields['total'] == len(population['member_refs'])) + if kind == 'completion_interval': + for endpoint in ('lower', 'upper'): + fraction = _report_fields(fields[endpoint], port) + _report_require(fraction['denominator'] == len(population['member_refs'])) + if kind == 'partition': + members = _report_join(tuple(_report_fields(c, port)['member_refs'] + for c in fields['categories']), port) + _report_require(_report_same_members(members, population['member_refs'], port)) + elif kind == 'witness_collection': + fields = _report_fields(value, port) + _report_equal_refs(fields['witness_refs'], set(row['witness_refs']), port) + if row['execution_state'] == 'completed': + port.charge(3 * len(row['check_refs']) + 4) + states = {checks[ref]['check_id']: checks[ref]['state'] for ref in row['check_refs']} + _report_require(all(code in states for code in ('PC01', 'PC02', 'PC24'))) + _report_require(states['PC01'] == states['PC24'] == 'met') + for reason in reasons.values(): + for ref in reason['affected_result_refs']: + port.charge(2) + _report_require(results[ref]['scope_ref'] == reason['scope_ref']) + for finding in findings.values(): + for ref in finding['population_refs']: + port.charge(2) + _report_require(populations[ref]['scope_ref'] == finding['scope_ref']) + for ref in finding['reason_refs']: + port.charge(2) + _report_require(reasons[ref]['scope_ref'] == finding['scope_ref']) + seen_capabilities = set() + for capability in collections['capabilities']: + inquiry = _report_fields(capability['inquiry_ref'], port)['identifier'] + family = capability['diagnostic_id'] + _byte_work(port, 4 * (len(inquiry) + len(family)), 4) + key = (inquiry, family) + _report_require(key not in seen_capabilities) + seen_capabilities.add(key) + expected = by_inquiry_family.get(key, ()) + _report_require(bool(expected)) + port.charge(len(FAMILIES) + len(expected) + 2) + binding = FAMILY_PREPARATION_BINDINGS[FAMILIES.index(family)] + actual_fields = {row['field_key'] for row in expected} + port.charge(len(binding[1]) + len(actual_fields) + 1) + _report_require(actual_fields == set(binding[1])) + port.charge(2 * len(expected) + 2) + _report_equal_refs(capability['result_refs'], {r['id'] for r in expected}, port) + _report_equal_refs(capability['scope_refs'], {r['scope_ref'] for r in expected}, port) + _report_equal_refs(capability['check_refs'], _report_union_fields(expected, 'check_refs', port), port) + _report_equal_refs(capability['reason_refs'], _report_union_fields(expected, 'reason_refs', port), port) + for state in ('available', 'unavailable', 'not_applicable', 'not_evaluated'): + port.charge(len(expected) + 1) + _report_equal_refs(capability[state + '_result_refs'], + {r['id'] for r in expected if r['result_state'] == state}, port) + port.charge(len(inputs) + 1) + inquiries = [entity.identifier for entity in inputs.values() if entity.collection == 'inquiries'] + port.charge(16 * len(inquiries) + len(seen_capabilities) + 2) + _report_require(seen_capabilities == {(inquiry, family) for inquiry in inquiries for family in FAMILIES}) + run = _report_fields(root['run'], port) + completed = [] + for family in FAMILIES: + port.charge(len(results) + 1) + selected = [row for row in results.values() if row['diagnostic_id'] == family] + port.charge(len(selected) + 1) + if selected and all(row['execution_state'] == 'completed' for row in selected): + completed.append(family) + _report_require(_report_equal(tuple(completed), run['completed_diagnostic_ids'], port)) + for domain_value in root['observability_domains']: + domain = _report_fields(domain_value, port) + selected = [] + for row in results.values(): + port.charge(len(FAMILIES) + 2) + binding = FAMILY_PREPARATION_BINDINGS[FAMILIES.index(row['diagnostic_id'])] + if domain['level_index'] in binding[3]: + selected.append(row) + for state in ('available', 'unavailable', 'not_evaluated'): + port.charge(len(selected) + 1) + _report_equal_refs(domain[state + '_result_refs'], + {r['id'] for r in selected if r['result_state'] == state}, port) + _report_equal_refs(domain['reason_refs'], _report_union_fields(selected, 'reason_refs', port), port) + port.check() diff --git a/src/source_integrity_toolkit/reporting/assemble.py b/src/source_integrity_toolkit/reporting/assemble.py index c90193c..65a7aa5 100644 --- a/src/source_integrity_toolkit/reporting/assemble.py +++ b/src/source_integrity_toolkit/reporting/assemble.py @@ -1,10 +1,1211 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Non-operational Phase 1 slot: reporting/assemble. +"""Bounded formal report assembly, without analysis, disclosure selection or I/O. -Owner: REPORT_PRESENTATION. -Authority: REPOSITORY_ARCHITECTURE.md sections 5-10 and 16-20; -PHASE_1_PLAN.md sections 4 and 6. -Specification adopted; scaffold slot present; behavior unimplemented. -No validation, traversal, scoring, rendering, I/O or native binding is provided. +Owner: REPORT_PRESENTATION. The internal seam consumes a completed private +outcome and the explicitly selected disclosure contract. It returns only a +frozen logical document. AuditReport delivery, encoders, and public invocation +remain the later owners' responsibility. """ +from dataclasses import dataclass + +from ..contracts import report as _c +from ..contracts import results as _r +from ..contracts.bundle import _Object, _Array, _Number, _j_scalar +from ..contracts.evidence import _PreparedBundle +from ..contracts.execution import _byte_work, _PreparationAborted, _AnalysisAborted + +_PREFIXES = (('scopes', 'SIT-SCP-'), ('populations', 'SIT-POP-'), + ('basis_index', 'SIT-BAS-'), ('capabilities', 'SIT-CAP-'), + ('checks', 'SIT-CHK-'), ('results', 'SIT-RES-'), + ('findings', 'SIT-FND-'), ('reasons', 'SIT-RSN-')) +_SCOPE_NOTE = ('Every planned field and exact represented scope for this Inquiry remains ' + 'separately linked; no strongest-result summary or outside-world completeness is inferred.') +_FINDING_LIMIT = ('Conditional on the exact supplied scope, versions, premises and evidence basis. ' + 'This finite observation cannot establish motive, censorship, authenticity, substantive truth, ' + 'independence outside the examined dimension, causal success or a universal threat verdict. ' + 'Threat associations are nonexclusive explanatory links, with no incident total or severity. ' + 'No source contact, quarantine, removal, down-weighting, sanction or other intervention follows.') +_PATH_LIMIT = ('Citation and material paths do not create Claim-specific acquisition ' + 'dependence, independent corroboration or a syndication accusation.') + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class _WitnessLinks: + refs: tuple + result_ref: object + + +def _require(ok): + _c._report_require(ok) + + +def _field(value, name, port): + _require(type(value) in (_Object, _c._ReportMapping)) + pairs = value.items if type(value) is _Object else value._pairs + for key, child in pairs: + _byte_work(port, 4 * (len(name) + len(key)), 2) + if key == name: + return child + raise _c._ReportContractError('invalid_report_contract') + + +def _plain(value, port): + """Copy an already selected immutable JSON value; no source record dump.""" + port.charge(1) + if value is None or type(value) in (str, bool, int): + if type(value) is str: + _byte_work(port, 4 * len(value), 1) + return value + if type(value) in (_Object, _c._ReportMapping): + pairs = value.items if type(value) is _Object else value._pairs + result = {} + for key, child in pairs: + _byte_work(port, 4 * len(key), 3) + result[key] = _plain(child, port) + return result + if type(value) is _Array: + value = value.items + if type(value) is tuple: + return tuple(_plain(child, port) for child in value) + if type(value) is _Number: + _require(value.exponent >= 0 and len(value.coefficient) + value.exponent <= 16) + _byte_work(port, 17, 5) + number = value.sign * int(value.coefficient) * (10 ** value.exponent) + _require(-9007199254740991 <= number <= 9007199254740991) + return number + raise _c._ReportContractError('invalid_report_contract') + + +def _charge_key(key, port): + if type(key) is bytes: + _byte_work(port, len(key), 1) + elif type(key) is tuple: + port.charge(len(key) + 1) + for child in key: + _charge_key(child, port) + else: + _c._key_charge(key, port) + + + +def _compare_key(left, right, port): + """Lexicographic comparison charges only the actually visited prefixes.""" + port.charge(2) + if left is right: + return 0 + _require(type(left) is type(right)) + if type(left) is tuple: + for a, b in zip(left, right): + order = _compare_key(a, b, port) + if order: + return order + port.charge(2) + return -1 if len(left) < len(right) else 1 if len(left) > len(right) else 0 + if type(left) in (str, bytes): + step = 32 if type(left) is str else 128 + size = min(len(left), len(right)) + for start in range(0, size, step): + end = min(start + step, size) + _byte_work(port, (end - start) * (8 if type(left) is str else 2), 5) + a, b = left[start:end], right[start:end] + if a != b: + return -1 if a < b else 1 + port.charge(2) + return -1 if len(left) < len(right) else 1 if len(left) > len(right) else 0 + _require(type(left) in (int, bool) or left is None) + port.charge(2) + return -1 if left < right else 1 if left > right else 0 + + +def _sort(values, port): + """Prospectively charged stable merge, including long tie-body bytes.""" + port.charge(len(values) + 1) + source = list(values) + width = 1 + while width < len(source): + target = [] + for start in range(0, len(source), width * 2): + port.charge(4) + middle, end = min(start + width, len(source)), min(start + width * 2, len(source)) + left, right = start, middle + while left < middle or right < end: + port.charge(4) + if left < middle and right < end: + take = _compare_key(source[left], source[right], port) <= 0 + else: + take = left < middle + if take: + target.append(source[left]); left += 1 + else: + target.append(source[right]); right += 1 + source = target + width *= 2 + return _c._paid_tuple(source, port) + + +def _j_key(value, port): + """J of an ID-free semantic key, never an exported report encoding.""" + port.charge(1) + if value is None or type(value) in (str, bool): + return _j_scalar(value, port) + if type(value) is int: + _require(-9007199254740991 <= value <= 9007199254740991) + _byte_work(port, 17, 3) + return str(value).encode('ascii') + if type(value) is tuple: + pieces = [_j_key(child, port) for child in value] + port.charge(len(pieces) + 2) + length = sum(len(part) for part in pieces) + len(pieces) + 2 + _byte_work(port, length, len(pieces) + 2) + return b'[' + b','.join(pieces) + b']' + _require(type(value) is dict) + keys = _sort(list(value), port) + pieces = [] + for name in keys: + port.charge(3) + pieces.append(_j_scalar(name, port) + b':' + _j_key(value[name], port)) + length = sum(len(part) for part in pieces) + len(pieces) + 2 + _byte_work(port, length, len(pieces) + 2) + return b'{' + b','.join(pieces) + b'}' + + +def _input(ref, port): + _require(type(ref) is _r._InputRef) + _c._charge_input_ref(ref, port) + return {'collection': ref.collection, 'identifier': ref.identifier, 'selector': ref.selector} + + +def _anchor(value, port): + """Finite keys terminate at Result anchors, including cyclic Reasons.""" + if type(value) is _c._PrivateFinding: + return ('finding', value.condition_code, value.observation_kind, + _anchor(value.scope_ref, port), + _sort([_c._slot_key(ref, port) for ref in value.witness.input_refs], port)) + if type(value) is _c._Capability: + port.charge(3) + return ('capability', value.inquiry_ref, value.family) + _require(type(value) in (_r._InputRef, _r._Scope, _r._Population, _r._BasisRef, + _r._ResultRef, _r._WitnessRef, _r._Reason, _r._PrerequisiteCheck)) + if type(value) is _r._Scope: + _c._charge_scope(value, port) + key = value._key() + _charge_key(key, port) + return key + return _c._slot_key(value, port) + + +class _Assembly: + def __init__(self, outcome, selection, port): + self.outcome, self.selection, self.port = outcome, selection, port + self.rows = {name: [] for name, unused in _PREFIXES} + self.objects, self.result_slots, self.basis_slots = {}, {}, {} + self.selected, self.used = {}, set() + self.witness_targets = {} + self.identities, self.identifiers = {}, {} + self.scope_keys = {} + self.scope_identities = {} + self.reference_tokens = {} + for kind, entries in (('basis', selection.basis_entries), + ('disclosure', selection.disclosures), ('finding', selection.finding_witnesses), + ('owner', selection.owner_witnesses)): + for owner, body in entries: + port.charge(4) + key = _anchor(owner, port) if kind in ('basis', 'disclosure') else id(owner) + _charge_key(key, port) + _require((kind, key) not in self.selected) + self.selected[(kind, key)] = body + + def choose(self, kind, owner): + key = _anchor(owner, self.port) if kind in ('basis', 'disclosure') else id(owner) + _charge_key(key, self.port) + self.port.charge(4) + _require((kind, key) in self.selected) + self.used.add((kind, key)) + return self.selected[(kind, key)] + + def add(self, kind, owner, anchor, body): + self.port.charge(5) + token = id(owner) + if token in self.objects: + return self.objects[token] + row = {'kind': kind, 'owner': owner, 'anchor': anchor, 'body': body} + self.rows[kind].append(row) + self.objects[token] = row + return row + + def ordered(self, refs): + buckets, seen = {}, set() + for ref in refs: + self.port.charge(4) + if id(ref) in seen: + continue + seen.add(id(ref)) + anchor = _anchor(ref, self.port) + _charge_key(anchor, self.port) + buckets.setdefault(anchor, []).append(ref) + result = [] + for anchor in _sort(list(buckets), self.port): + group = buckets[anchor] + if len(group) == 1 or type(group[0]) in (_r._InputRef, _r._BasisRef, _r._ResultRef, _r._WitnessRef): + result.append(group[0]) + continue + bodies = {} + for ref in group: + key = _c._semantic_key(ref, self.port) + _charge_key(key, self.port) + bodies.setdefault(key, ref) + for key in _sort(list(bodies), self.port): + result.append(bodies[key]) + return _c._paid_tuple(result, self.port) + + def scope(self, value): + if id(value) in self.objects: + return + self.add('scopes', value, _anchor(value, self.port), { + 'inquiry_ref': value.inquiry_ref, 'claim_refs': self.ordered(value.claim_refs), + 'target_refs': self.ordered(value.target_refs), + 'dependency_dimension': value.dependency_dimension, 'graph_view': value.graph_view, + 'temporal_basis': value.temporal_basis, + 'requested_time': None if value.requested_time is None else _plain(value.requested_time.fields, self.port), + 'coverage_refs': self.ordered(value.coverage_refs), 'qualifications': value.qualifications}) + + def basis(self, value): + if id(value) in self.objects: + return + chosen = self.choose('basis', value) + anchor = _anchor(value, self.port) + _charge_key(anchor, self.port) + self.port.charge(2) + if anchor in self.basis_slots: + self.objects[id(value)] = self.basis_slots[anchor] + return + body = {name: child for name, child in chosen._pairs} + self.port.charge(len(body) + 2) + body['source'] = value.source + self.basis_slots[anchor] = self.add('basis_index', value, anchor, body) + + def population(self, value): + if id(value) in self.objects: + return + self.scope(value.scope) + for ref in value.basis_refs: + self.basis(ref) + members = [] + for member in value.member_refs: + self.port.charge(1) + members.append({'case_ref': member.case_ref, 'before_ref': member.before_ref} + if type(member) is _r._CaseTarget else member) + indexed = [((_c._slot_key(original, self.port)), i) for i, original in enumerate(value.member_refs)] + members = tuple(members[i] for unused, i in _sort(indexed, self.port)) + self.add('populations', value, _anchor(value, self.port), { + 'scope_ref': value.scope, 'unit': value.unit, 'member_refs': members, + 'selection_rule': value.selection_rule, 'coverage_refs': self.ordered(value.coverage_refs), + 'basis_refs': self.ordered(value.basis_refs), 'membership_state': value.membership_state, + 'qualifications': value.qualifications}) + + def reason(self, value): + if id(value) in self.objects: + return + self.scope(value.scope) + self.add('reasons', value, _anchor(value, self.port), { + 'code': value.code, 'scope_ref': value.scope, + 'affected_result_refs': self.ordered(value.affected_result_refs), + 'input_refs': self.ordered(value.input_refs), 'detail': value.detail, + 'classification': value.classification}) + + def check(self, value): + if id(value) in self.objects: + return + self.scope(value.result_ref.scope) + for reason in value.reason_refs: + self.reason(reason) + self.add('checks', value, _anchor(value, self.port), { + 'check_id': value.check_id, 'scope_ref': value.result_ref.scope, + 'state': value.state, 'input_refs': self.ordered(value.input_refs), + 'reason_refs': self.ordered(value.reason_refs), 'note': value.note}) + + def partition(self, value): + categories = [] + for category in value.categories: + self.port.charge(3) + members = [] + for member in category.member_refs: + self.port.charge(1) + members.append({'case_ref': member.case_ref, 'before_ref': member.before_ref} + if type(member) is _r._CaseTarget else member) + order = _sort([(_c._slot_key(m, self.port), i) for i, m in enumerate(category.member_refs)], self.port) + categories.append({'label': category.label, 'member_refs': tuple(members[i] for unused, i in order), + 'count': category.count}) + return {'population_ref': value.population, + 'categories': tuple(categories), + 'total': len(value.population.member_refs)} + + def value(self, result): + value, kind = result.value, result.value_kind + if value is None: + return None + if kind == 'count': + return value.value + if kind == 'fraction': + return {'numerator': value.numerator, 'denominator': value.denominator} + if kind == 'completion_interval': + return {'lower': {'numerator': value.lower.numerator, 'denominator': value.lower.denominator}, + 'upper': {'numerator': value.upper.numerator, 'denominator': value.upper.denominator}, + 'population_ref': value.lower.population, 'interval_kind': value.interval_kind, + 'partition': self.partition(value.partition)} + if kind == 'partition': + return self.partition(value) + if kind == 'incidence': + memberships, origins = [], {} + for member in value.memberships: + self.port.charge(3) + memberships.append({'member_ref': member.member_ref, + 'origin_refs': self.ordered(member.origin_refs)}) + for origin in member.origin_refs: + key = _anchor(origin, self.port) + _charge_key(key, self.port) + self.port.charge(3) + if key not in origins: + origins[key] = (origin, []) + origins[key][1].append(member.member_ref) + order = _sort([(_anchor(row['member_ref'], self.port), i) for i, row in enumerate(memberships)], self.port) + counts = [] + for key in _sort(list(origins), self.port): + origin, members = origins[key] + counts.append({'origin_ref': origin, 'count': len(members), 'member_refs': self.ordered(members)}) + return {'population_ref': value.population, 'memberships': tuple(memberships[i] for unused, i in order), + 'origin_counts': tuple(counts), 'total': len(memberships), 'nonexclusive': True} + if kind == 'record_disclosures': + selected = self.choose('disclosure', result.ref) + records = _field(selected, 'records', self.port) + _check_disclosure_sources(result, records, self) + return {'records': records} + _require(kind == 'witness_collection') + return {'witness_refs': _WitnessLinks(value.witness_refs, result.ref)} + + def result(self, value): + self.scope(value.ref.scope) + for item in value.population_refs: + self.population(item) + for item in value.basis_refs: + self.basis(item) + for item in value.check_refs: + self.check(item) + for item in value.reason_refs: + self.reason(item) + row = self.add('results', value, _anchor(value.ref, self.port), { + 'diagnostic_id': value.ref.diagnostic_id, 'field_key': value.ref.field_key, + 'scope_ref': value.ref.scope, 'population_refs': self.ordered(value.population_refs), + 'execution_state': value.execution_state, 'result_state': value.result_state, + 'result_origin': value.result_origin, 'value_kind': value.value_kind, + 'value': self.value(value), 'check_refs': self.ordered(value.check_refs), + 'basis_refs': self.ordered(value.basis_refs), + 'witness_refs': _WitnessLinks(value.witness_refs, value.ref), + 'reason_refs': self.ordered(value.reason_refs), 'interpretation_limit': value.interpretation_limit}) + key = row['anchor'] + _charge_key(key, self.port) + self.port.charge(2) + self.result_slots.setdefault(key, []).append(row) + + def finding(self, value): + self.scope(value.scope_ref) + for item in value.population_refs: + self.population(item) + for item in value.basis_refs: + self.basis(item) + for item in value.reason_refs: + self.reason(item) + witness = self.choose('finding', value) + _check_finding_witness(value, witness, self) + self.add('findings', value, _anchor(value, self.port), { + 'observation_kind': value.observation_kind, 'condition_code': value.condition_code, + 'diagnostic_refs': _sort(list(value.diagnostic_refs), self.port), + 'threat_family_refs': _sort(list(value.threat_family_refs), self.port), + 'scope_ref': value.scope_ref, 'population_refs': self.ordered(value.population_refs), + 'basis_refs': self.ordered(value.basis_refs), 'witness': witness, + 'contrary_input_refs': self.ordered(value.contrary_input_refs), + 'reason_refs': self.ordered(value.reason_refs), 'statement': value.statement, + 'interpretation_limit': value.interpretation_limit}) + + def semantic(self, value): + self.port.charge(1) + if value is None or type(value) in (str, bool, int): + if type(value) is str: + _byte_work(self.port, 4 * len(value), 1) + return value + if type(value) is _r._InputRef: + return _input(value, self.port) + if type(value) is _c._ReportMapping: + return {name: self.semantic(child) for name, child in value._pairs} + if type(value) is dict: + return {name: self.semantic(child) for name, child in value.items()} + if type(value) is _WitnessLinks: + return tuple(_anchor(ref, self.port) for ref in self.ordered(value.refs)) + if type(value) is tuple: + return tuple(self.semantic(child) for child in value) + if type(value) not in (_r._ResultRef, _r._WitnessRef) and id(value) in self.objects: + row = self.objects[id(value)] + self.port.charge(2) + return self.reference_tokens.get(id(row['owner']), (row['anchor'], None)) + return ((self.result_anchor(value) if type(value) is _r._ResultRef else _anchor(value, self.port)), None) + + def scope_identity(self, scope): + row = self.objects[id(scope)] + self.port.charge(2) + token = id(row['owner']) + if token not in self.scope_identities: + anchor, tie = self.identities[token] + # UTF-8 J bytes and their decoded Unicode text have the same + # lexicographic order; the latter is also a legal ID-free J leaf. + _byte_work(self.port, len(tie), 3) + self.scope_identities[token] = (anchor, tie.decode('utf-8')) + return self.scope_identities[token] + + def result_anchor(self, ref): + key = _anchor(ref, self.port) + if id(ref.scope) in self.objects and id(self.objects[id(ref.scope)]['owner']) in self.identities: + return key[:3] + (self.scope_identity(ref.scope),) + return key + + def sorting_anchor(self, row): + anchor, owner, kind = row['anchor'], row['owner'], row['kind'] + if kind == 'populations': + return (anchor[0], self.scope_identity(owner.scope)) + anchor[2:] + if kind == 'results': + return self.result_anchor(owner.ref) + if kind == 'checks': + return (anchor[0], anchor[1], self.result_anchor(owner.result_ref)) + if kind == 'reasons': + return anchor[:2] + (self.scope_identity(owner.scope),) + anchor[3:] + if kind == 'findings': + return anchor[:3] + (self.scope_identity(row['body']['scope_ref']),) + anchor[4:] + return anchor + + def identities_for_rows(self): + # Resolve finite explanatory identities in dependency order. ResultRef + # terminates at its slot anchor, so Reason/Result cycles do not expand. + # A linked full body is relevant only when its anchor has more than one + # distinct meaning; unique source Basis metadata is never recursively + # re-encoded inside every Finding's tie-break key. + order = ('scopes', 'populations', 'reasons', 'checks', 'basis_index', + 'results', 'findings', 'capabilities') + prefixes = dict(_PREFIXES) + for kind in order: + prefix, buckets = prefixes[kind], {} + if kind == 'results': + for slot, rows in self.result_slots.items(): + if len(rows) > 1: + previous = None + for row in rows: + body = _j_key(self.semantic(row['body']), self.port) + if previous is not None: + _byte_work(self.port, len(body) + len(previous), 1) + _require(body == previous) + previous = body + for row in self.rows[kind]: + anchor = self.sorting_anchor(row) + _charge_key(anchor, self.port) + self.port.charge(3) + buckets.setdefault(anchor, []).append(row) + unique = {} + for anchor in _sort(list(buckets), self.port): + group, bodies, previous = buckets[anchor], {}, None + for row in group: + semantic = self.semantic(row['body']) if len(group) > 1 else None + tie = _j_key(semantic, self.port) if semantic is not None else b'' + key = (anchor, tie) + _charge_key(key, self.port) + self.port.charge(4) + if kind == 'results' and previous is not None: + _require(key == previous) + previous = key + self.identities[id(row['owner'])] = key + unique.setdefault(key, row) + bodies.setdefault(tie, semantic) + ambiguous = len(bodies) > 1 + for row in group: + identity = self.identities[id(row['owner'])] + self.port.charge(3) + self.reference_tokens[id(row['owner'])] = ( + (anchor, bodies[identity[1]]) if ambiguous else (anchor, None)) + ordered = [] + for index, key in enumerate(_sort(list(unique), self.port)): + self.port.charge(5) + _byte_work(self.port, 17, 2) + self.identifiers[(kind, key)] = prefix + str(index + 1).zfill(6) + ordered.append(unique[key]) + self.rows[kind] = ordered + + def resolve_link(self, value): + if type(value) is _r._ResultRef: + key = _anchor(value, self.port) + _charge_key(key, self.port) + _require(key in self.result_slots) + row = self.result_slots[key][0] + actual = row['owner'].ref + if value is not actual: + left, right = _c._semantic_key(value, self.port), _c._semantic_key(actual, self.port) + _charge_key((left, right), self.port) + _require(left == right) + else: + self.port.charge(2) + _require(id(value) in self.objects) + row = self.objects[id(value)] + key = self.identities[id(row['owner'])] + _charge_key(key, self.port) + return self.identifiers[(row['kind'], key)] + + def witness_links(self, refs, result_ref): + result = [] + for ref in refs: + key = _anchor(ref, self.port) + _charge_key(key, self.port) + _require(key in self.witness_targets) + self.port.charge(len(self.witness_targets[key]) + 1) + for owner in self.witness_targets[key]: + if type(owner) is _c._PrivateFinding and owner.result_refs: + wanted = _anchor(result_ref, self.port) + if not any(_anchor(ref, self.port) == wanted for ref in owner.result_refs): + continue + result.append(self.resolve_link(owner)) + return self.strings(result) + + def strings(self, values): + result, previous = [], None + for value in _sort(list(values), self.port): + _byte_work(self.port, 4 * len(value), 2) + if value != previous: + result.append(value) + previous = value + return tuple(result) + + def resolve(self, value, name=None): + self.port.charge(1) + if value is None or type(value) in (str, bool, int): + if type(value) is str: + _byte_work(self.port, 4 * len(value), 1) + return value + if type(value) is _r._InputRef: + return _input(value, self.port) + if type(value) is _c._ReportMapping: + return {key: self.resolve(child, key) for key, child in value._pairs} + if type(value) is dict: + return {key: self.resolve(child, key) for key, child in value.items()} + if type(value) is _WitnessLinks: + return self.witness_links(value.refs, value.result_ref) + if type(value) is tuple: + values = tuple(self.resolve(child) for child in value) + if name in ('scope_refs', 'population_refs', 'basis_refs', 'check_refs', 'result_refs', + 'affected_result_refs', 'available_result_refs', 'unavailable_result_refs', + 'not_applicable_result_refs', 'not_evaluated_result_refs', 'reason_refs') and all(type(v) is str for v in values): + return self.strings(values) + return values + return self.resolve_link(value) + + def capabilities(self): + for cap in self.outcome.capabilities: + self.port.charge(3) + for check in cap.check_refs: + self.check(check) + for reason in cap.reason_refs: + self.reason(reason) + scopes = self.ordered(tuple(ref.scope for ref in cap.result_refs)) + self.add('capabilities', cap, _anchor(cap, self.port), { + 'diagnostic_id': cap.family, + 'inquiry_ref': _r._InputRef('inquiries', cap.inquiry_ref), + 'scope_refs': scopes, 'check_refs': self.ordered(cap.check_refs), + 'result_refs': self.ordered(cap.result_refs), + 'available_result_refs': self.ordered(cap.available_result_refs), + 'unavailable_result_refs': self.ordered(cap.unavailable_result_refs), + 'not_applicable_result_refs': self.ordered(cap.not_applicable_result_refs), + 'not_evaluated_result_refs': self.ordered(cap.not_evaluated_result_refs), + 'reason_refs': self.ordered(cap.reason_refs), 'scope_note': _SCOPE_NOTE}) + + def domains(self): + domains = [] + for index, label in _c.DOMAIN_LABELS: + groups = {name: [] for name in ('available_result_refs', 'unavailable_result_refs', + 'not_evaluated_result_refs', 'reason_refs')} + for domain in self.outcome.domains: + self.port.charge(2) + if domain.level_index != index: + continue + for name, refs in (('available_result_refs', domain.available_result_refs), + ('unavailable_result_refs', domain.unavailable_result_refs), + ('not_evaluated_result_refs', domain.not_evaluated_result_refs), + ('reason_refs', domain.reason_refs)): + self.port.charge(len(refs) + 1) + groups[name].extend(refs) + row = {'level_index': index, 'label': label} + for name, refs in groups.items(): + row[name] = self.ordered(refs) + domains.append(self.resolve(row)) + return tuple(domains) + + +def _graph_node(value, port): + _require(type(value) is tuple and len(value) == 3 and value[0] == 'node') + port.charge(4) + return {'ref': value[1], 'kind': value[2]} + + +def _graph_edge(value, port): + _require(type(value) is tuple and len(value) == 8 and value[0] == 'edge') + port.charge(9) + return {'source': _graph_node(value[1], port), 'target': _graph_node(value[2], port), + 'source_ref': value[4], 'predicate': value[5], + 'eligible': value[6], 'reason_codes': value[7]} + + +def _graph_component(payload, port): + """Fixed witness representation, preserving every already retained slot.""" + _require(type(payload) is tuple and len(payload) == 9 and payload[0] == 'graph_witness') + port.charge(16) + material = dict(payload[7]) + result = {'type': 'graph_witness', 'kind': payload[1], 'member_count': payload[8]} + for name in ('nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals'): + result[name] = tuple(_graph_node(value, port) for value in material[name]) + for name in ('edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations'): + result[name] = tuple(_graph_edge(value, port) for value in material[name]) + result['target'] = None if material['target'] is None else _graph_node(material['target'], port) + return result + + + +def _selected_component(payload, port): + _require(type(payload) is tuple and bool(payload)) + tag = payload[0] + if tag == 'graph_witness': + return _graph_component(payload, port) + port.charge(len(payload) + 4) + if tag in ('inventory_witness', 'selected_members'): + _require(len(payload) == 3) + return {'type': tag, 'members': payload[1], 'member_count': payload[2]} + if tag == 'comparison_witness': + _require(len(payload) == 5) + return {'type': tag, 'assessment': payload[1], 'members': payload[2], + 'examined_assessments': payload[3], 'member_count': payload[4]} + if tag == 'human_review_witness': + _require(len(payload) == 5) + return {'type': tag, 'members': payload[1], 'examined_assessments': payload[2], + 'source_refs': payload[3], 'member_count': payload[4]} + _require(tag == 'correction_outcome_witness' and len(payload) == 4) + return {'type': tag, 'members': payload[1], 'source_refs': payload[2], 'member_count': payload[3]} + + +def _check_finding_witness(finding, selected, assembly): + port = assembly.port + selected_refs = tuple(_as_input(ref, port) for ref in _field(selected, 'input_refs', port)) + _require(_ref_keys(selected_refs, port) == _ref_keys(finding.witness.input_refs, port)) + expected = tuple(_selected_component(payload, port) for payload in finding.witness.owner_witnesses) + _require(_same(_field(selected, 'components', port), expected, assembly)) + + +def _check_disclosure_sources(result, selected, assembly): + port = assembly.port + expected = [row.source for row in result.value.records] + if result.ref.field_key == 'corrective_independence_disclosures': + wanted = _ref_keys(result.witness_refs, port) + for record in assembly.outcome.witnesses: + if not any(_anchor(ref, port) in wanted for ref in record.refs): + continue + for payload in record.payload: + if payload[0] == 'human_review_witness': + port.charge(len(payload[2]) + len(payload[3]) + 2) + expected.extend(payload[2]) + expected.extend(payload[3]) + _require(len(selected) == len(expected)) + for row, source in zip(selected, expected): + chosen = _field(row, 'source', port) + if type(source) is _r._ResultRef: + _require(type(chosen) is _r._ResultRef) + left, right = _c._semantic_key(source, port), _c._semantic_key(chosen, port) + _charge_key((left, right), port) + _require(left == right) + else: + _require(_anchor(_as_input(chosen, port), port) == _anchor(source, port)) + +def _same(left, right, assembly): + a, b = _j_key(assembly.semantic(left), assembly.port), _j_key(assembly.semantic(right), assembly.port) + _byte_work(assembly.port, len(a) + len(b), 1) + return a == b + + +def _ref_keys(refs, port): + keys = [] + for ref in refs: + key = _anchor(ref, port) + _charge_key(key, port) + keys.append(key) + return _sort(keys, port) + + +def _related(record, outcome, port): + keys = _ref_keys(record.refs, port) + related = [] + for result in outcome.results: + for ref in result.witness_refs: + key = _anchor(ref, port) + _charge_key((key, keys), port) + if key in keys: + port.charge(1) + related.append(result) + break + _require(bool(related)) + return tuple(related) + + +def _scope_equal(left, right, assembly): + port = assembly.port + port.charge(3) + if left is right: + return True + keys = [] + for scope in (left, right): + token = id(scope) + if token not in assembly.scope_keys: + assembly.scope(scope) + body = assembly.objects[token]['body'] + assembly.scope_keys[token] = (_anchor(scope, port), _j_key(assembly.semantic(body), port)) + key = assembly.scope_keys[token] + _charge_key(key, port) + keys.append(key) + return keys[0] == keys[1] + + +def _component_matches_path(path, trace, assembly): + """Membership check of existing proof material, never a graph search.""" + nodes, starts = path['nodes'], trace['starts'] + if not nodes or not starts or not any(_same(nodes[0], start, assembly) for start in starts): + return False + for edge in path['edges']: + if not any(_same(edge, examined, assembly) for examined in trace['examined_edges']): + return False + return bool(path['edges']) + + +def _proof_metadata(component, view, port): + port.charge(8) + kind = component['kind'] + if kind == 'path': + _require(bool(component['edges']) and all(edge['eligible'] is True for edge in component['edges'])) + _require(view in ('citation', 'material_transformation', 'claim_origin')) + code = 'citation_path_witness' if view == 'citation' else 'transformation_path_witness' + return code, 'positive_witness', ('SIT-TH002',), ( + 'An eligible explicit path connects these exact endpoints in the named typed view.'), _PATH_LIMIT + if kind == 'cycle': + assurance = view == 'assertion_assurance' + return ('assurance_loop_limitation' if assurance else 'view_cycle_witness', + 'qualification_gap' if assurance else 'positive_witness', ('SIT-TH005',), + 'A finite cycle is witnessed in this exact typed view within the requested start\'s reachable area.', + 'A cycle does not establish falsity, misconduct, absence of reality contact or represented benchmark feedback.') + if kind == 'no_witness_in_examined_view': + return 'scoped_no_witness', 'no_witness_in_examined_view', (), ( + 'The completed typed search found no eligible witness between these endpoints in this examined supplied view.'), ( + 'Examined nodes, predicates, observations and unknown frontiers remain in the finite witness. ' + 'No outside-world independence or passed threat check follows.') + raise _c._ReportContractError('invalid_report_contract') + + +def _proof_context(scope, port): + key = _anchor(scope, port) + # A retained proof may be represented at another operation/target Scope, + # but never acquires another Inquiry, Claim, dimension or time context. + port.charge(7) + return key[1:3] + key[4:8] + + +def _assemble_witnesses(assembly): + """Bind retained witnesses to their exact public homes and Finding IDs.""" + outcome, port = assembly.outcome, assembly.port + selected_records, paths, consumed = [], [], {} + for finding in outcome.findings: + chosen = assembly.choose('finding', finding) + components = _field(chosen, 'components', port) + for component in components: + if _field(component, 'type', port) == 'graph_witness': + row = {name: child for name, child in component._pairs} + if row['kind'] == 'path': + paths.append((row, _field(chosen, 'input_refs', port), + _proof_context(finding.scope_ref, port), finding.basis_refs)) + for record in outcome.witnesses: + port.charge(len(record.refs) + 2) + # Typed private links may retain another immutable instance of an + # equal Scope. Register its complete body before identity resolution. + for ref in record.refs: + assembly.scope(ref.scope) + related = _related(record, outcome, port) + targets = [] + consumed[id(record)] = set() + for finding in outcome.findings: + if not any(_scope_equal(ref.scope, finding.scope_ref, assembly) for ref in record.refs): + continue + for index, payload in enumerate(record.payload): + if any(_c._semantic_key(payload, port) == _c._semantic_key(part, port) + for part in finding.witness.owner_witnesses): + consumed[id(record)].add(index) + if not any(old is finding for old in targets): + targets.append(finding) + graph = bool(record.payload) and all(part[0] == 'graph_witness' for part in record.payload) + if graph: + selected = assembly.choose('owner', record) + components = _field(selected, 'components', port) + _require(len(components) == len(record.payload)) + canonical = tuple(_graph_component(payload, port) for payload in record.payload) + for component, actual in zip(components, canonical): + _require(_same(component, actual, assembly)) + for component in canonical: + if component['kind'] == 'path': + basis = [] + for result in related: + port.charge(len(result.basis_refs) + 1) + basis.extend(result.basis_refs) + paths.append((component, _field(selected, 'input_refs', port), + _proof_context(record.refs[0].scope, port), tuple(basis))) + if len(consumed[id(record)]) != len(record.payload): + selected_records.append((record, related, selected, canonical, targets)) + else: + _witness_home(record, related, assembly) + for ref in record.refs: + key = _anchor(ref, port) + _charge_key(key, port) + port.charge(2) + assembly.witness_targets[key] = list(targets) + # Discovery order of independent witness records is not native array + # order. Sort record groups, preserving each original payload tuple inside. + ordered = [] + for index, row in enumerate(selected_records): + record = row[0] + key = (_anchor(record.refs[0].scope, port), + _j_key(assembly.semantic(assembly.objects[id(record.refs[0].scope)]['body']), port), + _j_key(assembly.semantic(row[3]), port)) + ordered.append((key, index)) + selected_records = [selected_records[index] for unused, index in _sort(ordered, port)] + # One owner-scope proof can retain its complete trace alongside a concrete + # already established path/cycle. It does not donate its scope to another job. + groups = [] + for record, related, selected, components, targets in selected_records: + scope = record.refs[0].scope + _require(all(_scope_equal(scope, ref.scope, assembly) for ref in record.refs)) + group = None + for old in groups: + if _scope_equal(scope, old['scope'], assembly): + group = old + break + if group is None: + group = {'scope': scope, 'records': [], 'related': [], 'components': [], 'inputs': []} + groups.append(group) + port.charge(len(related) + len(components) + 5) + group['records'].append(record) + group['related'].extend(related) + group['components'].extend(components) + group['inputs'].extend(_field(selected, 'input_refs', port)) + for group in groups: + scope, components = group['scope'], group['components'] + context = _proof_context(scope, port) + primaries = [part for part in components if part['kind'] in ('path', 'cycle', 'no_witness_in_examined_view')] + traces = [part for part in components if part['kind'] == 'complete_trace'] + _require(len(primaries) + len(traces) == len(components)) + for trace in traces: + candidates = [] + for path, inputs, proof_context, proof_basis in paths: + _charge_key((context, proof_context), port) + if proof_context == context and _component_matches_path(path, trace, assembly): + candidates.append((path, inputs)) + if candidates: + # All retained matching paths are kept; no newly searched or + # manufactured path replaces an original owner's proof. + for path, inputs in candidates: + if not any(_same(path, old, assembly) for old in primaries): + primaries.append(path) + group['inputs'].extend(inputs) + if not primaries: + continue + for primary in primaries: + code, observation, threats, statement, limit = _proof_metadata(primary, scope.graph_view, port) + selected_components = [primary] + for trace in traces: + if primary['kind'] == 'path' and _component_matches_path(primary, trace, assembly): + selected_components.append(trace) + supporting, related, input_rows = [], [], [] + for record in group['records']: + selected = assembly.choose('owner', record) + actual = tuple(_graph_component(payload, port) for payload in record.payload) + contributes = any(_same(part, primary, assembly) or + (part['kind'] == 'complete_trace' and + primary['kind'] == 'path' and _component_matches_path(primary, part, assembly)) + for part in actual) + if contributes: + if any(_same(part, primary, assembly) for part in actual): + # Components retained by one exact owner keep their + # direct association; another Scope peer cannot add it. + selected_components.extend(part for part in actual if part['kind'] == 'complete_trace') + supporting.append(record) + related.extend(_related(record, outcome, port)) + input_rows.extend(_field(selected, 'input_refs', port)) + _require(bool(supporting)) + selected_components = _dedup_components(selected_components, assembly) + for record in supporting: + for index, payload in enumerate(record.payload): + actual = _graph_component(payload, port) + if any(_same(actual, item, assembly) for item in selected_components): + consumed[id(record)].add(index) + basis, families = [], [] + if primary['kind'] == 'path': + for path, inputs, proof_context, proof_basis in paths: + _charge_key((context, proof_context), port) + if proof_context == context and _same(path, primary, assembly): + port.charge(len(proof_basis) + 1) + basis.extend(proof_basis) + for result in related: + port.charge(len(result.basis_refs) + 2) + basis.extend(result.basis_refs) + families.append(result.ref.diagnostic_id) + inputs = assembly.ordered(tuple(_as_input(ref, port) for ref in input_rows)) + for ref in inputs: + port.charge(2) + basis.append(_r._BasisRef(ref)) + for ref in basis: + assembly.basis(ref) + body = {'observation_kind': observation, 'condition_code': code, + 'diagnostic_refs': assembly.strings(families), 'threat_family_refs': threats, + 'scope_ref': scope, 'population_refs': (), 'basis_refs': assembly.ordered(basis), + 'witness': {'input_refs': inputs, 'components': selected_components}, + 'contrary_input_refs': (), 'reason_refs': (), 'statement': statement, + 'interpretation_limit': _FINDING_LIMIT + ' ' + limit} + anchor = ('finding', code, observation, _anchor(scope, port), + _sort([_anchor(ref, port) for ref in inputs], port)) + # The project-owned record is an identity handle only; allocation + # order never enters the semantic key or emitted identifier. + owner = object() + assembly.add('findings', owner, anchor, body) + for record in supporting: + for ref in record.refs: + key = _anchor(ref, port) + _charge_key(key, port) + assembly.witness_targets[key].append(owner) + + + # Require an actual public home for every retained component, including a + # trace whose Scope also contains an unrelated record's primary witness. + for record, related, selected, components, targets in selected_records: + missing = tuple(part for index, part in enumerate(components) + if index not in consumed[id(record)]) + if missing: + _require(all(part['kind'] == 'complete_trace' for part in missing)) + _trace_home({'scope': record.refs[0].scope, 'records': [record], + 'components': missing}, assembly) + consumed[id(record)].update(range(len(components))) + _require(len(consumed[id(record)]) == len(components)) + + +def _as_input(value, port): + if type(value) is _r._InputRef: + return value + _require(type(value) in (dict, _c._ReportMapping)) + port.charge(6) + fields = value if type(value) is dict else {key: child for key, child in value._pairs} + _require(set(fields) == {'collection', 'identifier', 'selector'}) + return _r._InputRef(fields['collection'], fields['identifier'], fields['selector']) + + +def _dedup_components(components, assembly): + result = [] + for component in components: + if not any(_same(component, old, assembly) for old in result): + result.append(component) + assembly.port.charge(len(result) + 1) + return tuple(result) + + +def _material_refs(value, port): + """Visit only the known detached witness tuple grammar.""" + refs, pending = [], [value] + while pending: + port.charge(1) + current = pending.pop() + if type(current) is _r._InputRef: + refs.append(current) + elif type(current) is tuple: + port.charge(len(current) + 1) + pending.extend(current) + return tuple(refs) + + +def _witness_home(record, related, assembly): + """Owner material has explicit homes, without inventing carrier Findings.""" + port = assembly.port + allowed = ('inventory_witness', 'comparison_witness', 'selected_members', + 'human_review_witness', 'correction_outcome_witness') + for payload in record.payload: + _require(type(payload) is tuple and payload and payload[0] in allowed) + homes = [] + for result in related: + for population in result.population_refs: + homes.extend(member for member in population.member_refs if type(member) is _r._InputRef) + for basis in result.basis_refs: + homes.append(basis.source) + for check in result.check_refs: + homes.extend(check.input_refs) + for reason in result.reason_refs: + homes.extend(reason.input_refs) + homes.append(result.ref.scope.inquiry_ref) + if result.result_state == 'available' and result.value_kind == 'record_disclosures': + selected = assembly.choose('disclosure', result.ref) + for row in _field(selected, 'records', port): + homes.append(_as_input(_field(row, 'source', port), port)) + keys = _ref_keys(homes, port) + for ref in _material_refs(record.payload, port): + key = _anchor(ref, port) + _charge_key((key, keys), port) + _require(key in keys) + + +def _trace_home(group, assembly): + """A trace without a concrete witness must remain in a scoped finding.""" + port = assembly.port + for record in group['records']: + matches = [] + for finding in assembly.outcome.findings: + if not _scope_equal(group['scope'], finding.scope_ref, assembly): + continue + related = _related(record, assembly.outcome, port) + result_keys = _ref_keys(tuple(result.ref for result in related), port) + if any(_anchor(ref, port) in result_keys for ref in finding.result_refs): + matches.append(finding) + _require(bool(matches)) + for finding in matches: + row = assembly.objects[id(finding)] + chosen = row['body']['witness'] + components = chosen['components'] if type(chosen) is dict else _field(chosen, 'components', port) + original_inputs = chosen['input_refs'] if type(chosen) is dict else _field(chosen, 'input_refs', port) + selected = assembly.choose('owner', record) + inputs = tuple(_as_input(ref, port) for ref in original_inputs) + tuple( + _as_input(ref, port) for ref in _field(selected, 'input_refs', port)) + row['body']['witness'] = {'input_refs': assembly.ordered(inputs), + 'components': _dedup_components(list(components) + + list(group['components']), assembly)} + for ref in record.refs: + key = _anchor(ref, port) + _charge_key(key, port) + assembly.witness_targets[key].extend(matches) + + + +def _document_values(value, port): + port.charge(1) + if type(value) is dict: + return {name: _document_values(child, port) for name, child in value.items()} + if type(value) is tuple: + return [_document_values(child, port) for child in value] + _require(value is None or type(value) in (str, bool, int)) + if type(value) is str: + _byte_work(port, 4 * len(value), 1) + return value + + +def _identity(prepared, port): + qualification = ('In-process input has no raw file digest; no canonical object fingerprint is invented.',) + if prepared is None: + return {'source_mode': 'in_process', 'input_contract_version': None, + 'bundle_id': None, 'snapshot_id': None, 'declared_predecessor': None, + 'raw_file_digest': None, 'qualifications': qualification + ( + 'Input identifiers were not retained as accepted metadata.',)} + _require(type(prepared) is _PreparedBundle and prepared.source_mode == 'constructed_value') + metadata = prepared.tree + return {'source_mode': 'in_process', + 'input_contract_version': _field(prepared.tree, 'contract_version', port), + 'bundle_id': _field(metadata, 'bundle_id', port), + 'snapshot_id': _field(metadata, 'snapshot_id', port), + 'declared_predecessor': _plain(_field(metadata, 'predecessor', port), port), + 'raw_file_digest': None, 'qualifications': qualification} + + +def _run(state, completed, diagnostics, tool_version): + _require(type(tool_version) is str and tool_version == '0.1.0.dev0') + unknown = {'state': 'unknown', 'value': None, 'precision': None, + 'reason': 'not_recorded_by_SIT-RP-0.1'} + return {'processing_state': state, 'tool_name': 'Source Integrity Toolkit', + 'tool_version': tool_version, 'input_contract_version': 'sit-bundle/0.1', + 'requested_diagnostic_ids': _c.FAMILIES, 'completed_diagnostic_ids': completed, + 'started_at': unknown, 'finished_at': unknown, 'diagnostics': diagnostics, + 'qualifications': _c._REPORT_RUN_QUALIFICATIONS} + + +def _assemble_report(outcome, selection, port, *, tool_version='0.1.0.dev0'): + """Assemble one logical envelope under the supplied current invocation port.""" + port.check() + port.charge(14) + _require(type(outcome) is _c._AnalyticalOutcome) + _c._validate_selected_report_disclosure(selection, port) + assembly = _Assembly(outcome, selection, port) + for result in outcome.results: + assembly.result(result) + for finding in outcome.findings: + assembly.finding(finding) + assembly.capabilities() + _assemble_witnesses(assembly) + _require(assembly.used == set(assembly.selected)) + assembly.identities_for_rows() + document = {'contract_version': 'sit-report/0.1', 'report_kind': 'audit_report', + 'report_id': 'SIT-RPT-000001', 'input_identity': _identity(outcome.prepared, port), + 'input_validation': {'state': 'accepted', 'diagnostics': ()}, + 'release_limits': _c._REPORT_RELEASE_LIMITS} + completed = [] + for family in _c.FAMILIES: + selected = [result for result in outcome.results if result.ref.diagnostic_id == family] + port.charge(len(outcome.results) + len(selected) + 1) + if selected and all(result.execution_state == 'completed' for result in selected): + completed.append(family) + diagnostics = () + if outcome.execution_state == 'interrupted': + diagnostics = ({'code': 'resource_limit_reached', 'location': None, + 'safe_message': 'Analytical processing stopped at a fixed resource limit.', 'qualifications': ()},) + document['run'] = _run(outcome.execution_state, tuple(completed), diagnostics, tool_version) + for kind, unused in _PREFIXES: + rows = [] + for row in assembly.rows[kind]: + body = assembly.resolve(row['body']) + body['id'] = assembly.resolve_link(row['owner']) + rows.append(body) + document[kind] = tuple(rows) + document['observability_domains'] = assembly.domains() + frozen = _c._freeze_report_document(_document_values(document, port), port) + _c._validate_report_references(frozen, outcome.prepared, port) + port.check() + return frozen + + +def _assemble_diagnostic(stopped, port, *, prepared=None, tool_version='0.1.0.dev0'): + """Safe empty analytical arrays; partial source material is never projected.""" + port.check() + port.charge(24) + _require(type(stopped) in (_PreparationAborted, _AnalysisAborted)) + stop = stopped.stop + _require(prepared is None or (stop.input_state == 'accepted' and type(prepared) is _PreparedBundle)) + rejected = stop.execution_state == 'rejected' + code = stopped.diagnostic_code if rejected else stop.reason_code + qualifications = () + if rejected and stopped.constraint is not None: + qualifications = (stopped.constraint,) + diagnostic = {'code': code, 'location': None, + 'safe_message': 'Input was not accepted.' if rejected else 'Audit processing did not complete.', + 'qualifications': qualifications} + document = {'contract_version': 'sit-report/0.1', + 'report_kind': 'validation_diagnostics' if rejected else 'processing_diagnostics', + 'report_id': 'SIT-RPT-000001', + 'run': _run(stop.execution_state, (), () if rejected else (diagnostic,), tool_version), + 'input_identity': _identity(prepared, port), + 'input_validation': {'state': stop.input_state, 'diagnostics': (diagnostic,) if rejected else ()}, + 'observability_domains': (), 'release_limits': _c._REPORT_RELEASE_LIMITS} + for name, unused in _PREFIXES: + document[name] = () + document['reasons'] = ({'id': 'SIT-RSN-000001', 'code': stop.reason_code, + 'scope_ref': None, 'affected_result_refs': (), 'input_refs': (), + 'detail': 'The invocation did not produce an ordinary analytical report.', + 'classification': 'execution'},) + frozen = _c._freeze_report_document(_document_values(document, port), port) + _c._validate_report_references(frozen, prepared, port) + port.check() + return frozen diff --git a/tests/contract/test_report_assembly.py b/tests/contract/test_report_assembly.py new file mode 100644 index 0000000..0994aa2 --- /dev/null +++ b/tests/contract/test_report_assembly.py @@ -0,0 +1,1177 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W03 assembly controls with an independently authored reference document. + +The selected bodies below are a trusted, case-specific test fixture for the +future disclosure owner. They are read from W02's independent expectations, +never from assembler output. This does not test or implement W04 selection, +public audit delivery, a second production budget, or either renderer. +""" +import copy +from dataclasses import replace +import json +from pathlib import Path + +import pytest + +from source_integrity_toolkit.contracts import report as contract +from source_integrity_toolkit.contracts import results as values +from source_integrity_toolkit.contracts.execution import ( + _AnalysisAborted, _PreparationAborted, _PreparationStop, +) +from source_integrity_toolkit.contracts.results import ( + _BasisRef, _InputRef, _RecordDisclosures, +) +from source_integrity_toolkit.reporting import assemble +from source_integrity_toolkit.runtime.boundary import _analyze_value + + +ROOT = Path(__file__).resolve().parents[2] +ROOT_FIELDS = ( + 'contract_version', 'report_kind', 'report_id', 'run', 'input_identity', + 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', + 'checks', 'observability_domains', 'results', 'findings', 'reasons', + 'release_limits', +) +COLLECTIONS = ('scopes', 'populations', 'basis_index', 'capabilities', 'checks', + 'results', 'findings', 'reasons') +FAMILIES = tuple('SIT-M' + str(index).zfill(3) for index in range(1, 16)) +DOMAIN_LABELS = ( + 'Artifact and contribution inventory', + 'Declared provenance and process metadata', + 'Origin-resolution and scoped process-assessment evidence', + 'Evaluator, correction-route and authority evidence', + 'Boundary-qualified external input, stage histories and documented correction outcomes', +) + + +class RecordingPort: + """Finite test-owned internal port; no public API accepts this object.""" + def __init__(self, stop_after=10_000_000): + assert type(stop_after) is int and 0 <= stop_after <= 10_000_000 + self.units = 0 + self.checks = 0 + self.stop_after = stop_after + + def charge(self, units): + assert type(units) is int and units >= 0 + if self.units + units > self.stop_after: + raise RuntimeError('controlled_assembly_stop') + self.units += units + + def check(self): + self.checks += 1 + + +def _reference_document(): + return json.loads((ROOT / 'tests/golden/phase4_reference_report.json').read_bytes()) + + +def _reference_dossier(): + fixture = json.loads((ROOT / 'tests/fixtures/micro/phase4_public_cases.json').read_bytes()) + assert fixture['cases'][0]['id'] == 'P4-REFERENCE-ONE-ORIGIN' + return fixture['cases'][0]['dossier'] + + +def _reference_outcome(): + outcome = _analyze_value(_reference_dossier()) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + assert len(outcome.plan.jobs) == 22 and len(outcome.results) == 78 + return outcome + + +def _plain(value): + """Test-only readout of the explicit frozen JSON contract, not private data.""" + if type(value) is contract._ReportMapping: + return {name: _plain(value[name]) for name in value} + if type(value) is tuple: + return [_plain(item) for item in value] + assert value is None or type(value) in (str, bool, int) + return value + + +def _source(ref): + assert type(ref) is _InputRef + return {'collection': ref.collection, 'identifier': ref.identifier, + 'selector': ref.selector} + + +def _source_key(value): + return value['collection'], value['identifier'], value['selector'] + + +def _strict_equal(actual, expected, path='$'): + assert type(actual) is type(expected), path + ': type' + if type(expected) is dict: + assert actual.keys() == expected.keys(), path + ': keys' + for key in expected: + _strict_equal(actual[key], expected[key], path + '.' + key) + elif type(expected) is list: + assert len(actual) == len(expected), path + ': length' + for index, item in enumerate(expected): + _strict_equal(actual[index], item, path + '[' + str(index) + ']') + else: + assert actual == expected, path + ': value' + + +def _unique_expected(values): + """Require all matching independent expected bodies to be identical.""" + assert values, 'named reference fixture has no matching selected body' + for other in values[1:]: + _strict_equal(other, values[0]) + return copy.deepcopy(values[0]) + + +def _basis_owners(outcome): + """Enumerate only explicit owner links, never recursively dump a record.""" + owners = [] + for result in outcome.results: + owners.extend(result.basis_refs) + for population in result.population_refs: + owners.extend(population.basis_refs) + for finding in outcome.findings: + owners.extend(finding.basis_refs) + for population in finding.population_refs: + owners.extend(population.basis_refs) + distinct = {} + for owner in owners: + assert type(owner) is _BasisRef + distinct.setdefault(_source_key(_source(owner.source)), owner) + return tuple(distinct.values()) + + +def _selected_basis_entries(outcome, expected): + by_source = {_source_key(row['source']): row for document in expected + for row in document['basis_index']} + selected = [] + for owner in _basis_owners(outcome): + source = _source(owner.source) + row = copy.deepcopy(by_source[_source_key(source)]) + del row['id'] + del row['source'] + # The fixture gives the assembler actual prerequisite objects, not + # preassigned report IDs. OBS16.6: qualification checks for this basis. + checks = [] + for result in outcome.results: + if not any(_source(b.source) == source for b in result.basis_refs): + continue + for check in result.check_refs: + if check.check_id not in ('PC05', 'PC06', 'PC07', 'PC08', 'PC09', 'PC10'): + continue + if any(ref.collection == source['collection'] and + ref.identifier == source['identifier'] for ref in check.input_refs): + checks.append(check) + row['check_refs'] = tuple(checks) + selected.append((owner, row)) + return tuple(selected) + + +def _selected_result_disclosures(outcome, expected): + selected = [] + for result in outcome.results: + if type(result.value) is not _RecordDisclosures: + continue + candidates = [] + for document in expected: + scopes = {row['id']: row for row in document['scopes']} + candidates.extend(row for row in document['results'] + if row['field_key'] == result.ref.field_key and row['value'] is not None and + scopes[row['scope_ref']]['inquiry_ref'] == _source(result.ref.scope.inquiry_ref)) + body = _unique_expected([row['value'] for row in candidates]) + selected.append((result.ref, body)) + return tuple(selected) + + +def _selected_existing_findings(outcome, expected): + selected = [] + for owner in outcome.findings: + candidates = [row['witness'] for document in expected for row in document['findings'] + if row['condition_code'] == owner.condition_code and + row['observation_kind'] == owner.observation_kind and + row['statement'] == owner.statement and + row['interpretation_limit'] == owner.interpretation_limit and + row['witness']['input_refs'] == sorted( + [_source(ref) for ref in owner.witness.input_refs], + key=lambda ref: (ref['collection'], ref['identifier'], ref['selector'] or ''))] + # The ordinary graph Finding is the existing path. The two retained + # owner traces have their separately selected complete_trace bodies. + if owner.condition_code == 'transformation_path_witness': + candidates = [body for body in candidates if + all(component.get('kind') != 'complete_trace' + for component in body['components'])] + selected.append((owner, _unique_expected(candidates))) + return tuple(selected) + + +def _selected_owner_witnesses(outcome, expected): + selected = [] + for owner in outcome.witnesses: + graph = [payload for payload in owner.payload if payload[0] == 'graph_witness'] + if not graph: + continue + assert len(graph) == 1 + payload = graph[0] + documents = [document for document in expected + if any(row['inquiry_ref']['identifier'] == payload[2] + for row in document['scopes'])] + components = [component for document in documents for finding in document['findings'] + for component in finding['witness']['components'] + if component['type'] == 'graph_witness' and + component['kind'] == payload[1] and + component['member_count'] == owner.member_count] + component = _unique_expected(components) + # This selects the already authored payload only. Finding metadata, + # scope, membership and result links must be supplied by the assembler. + input_refs = _unique_expected([finding['witness']['input_refs'] + for document in documents for finding in document['findings'] + if component in finding['witness']['components']]) + selected.append((owner, {'input_refs': input_refs, 'components': [component]})) + return tuple(selected) + + +def _selection_parts(outcome, reference=None): + expected = _reference_document() if reference is None else reference + if type(expected) is not tuple: + expected = (expected,) + return (_selected_basis_entries(outcome, expected), + _selected_result_disclosures(outcome, expected), + _selected_existing_findings(outcome, expected), + _selected_owner_witnesses(outcome, expected)) + + +def _selected_disclosure(outcome, reference=None): + basis, disclosures, findings, witnesses = _selection_parts(outcome, reference) + return contract._capture_report_disclosure(basis, disclosures, findings, + RecordingPort(), owner_witnesses=witnesses) + + +def _assemble(outcome, disclosure=None, port=None): + if disclosure is None: + disclosure = _selected_disclosure(outcome) + return assemble._assemble_report(outcome, disclosure, + RecordingPort() if port is None else port) + + +@pytest.fixture(scope='module') +def reference_outcome(): + return _reference_outcome() + + +@pytest.fixture(scope='module') +def reference_assembly(reference_outcome): + selected = _selected_disclosure(reference_outcome) + port = RecordingPort() + frozen = _assemble(reference_outcome, selected, port) + assert port.units > 0 and port.checks > 0 + return frozen, _plain(frozen), selected, port.units + + +def _assert_partitions(document): + results = {row['id']: row for row in document['results']} + for capability in document['capabilities']: + selected = [results[identifier] for identifier in capability['result_refs']] + assert all(row['diagnostic_id'] == capability['diagnostic_id'] for row in selected) + merged = [] + for state in ('available', 'unavailable', 'not_applicable', 'not_evaluated'): + actual = capability[state + '_result_refs'] + assert actual == [row['id'] for row in selected if row['result_state'] == state] + merged.extend(actual) + assert len(merged) == len(set(merged)) == len(selected) + assert set(merged) == set(capability['result_refs']) + + +def _assert_report_links(document): + """Independent target-kind checks; the test does not call product closure.""" + kinds = {name: {row['id'] for row in document[name]} for name in COLLECTIONS} + all_ids = [identifier for values in kinds.values() for identifier in values] + assert len(all_ids) == len(set(all_ids)) + targets = {'scope_ref': 'scopes', 'scope_refs': 'scopes', + 'population_ref': 'populations', 'population_refs': 'populations', + 'basis_refs': 'basis_index', 'check_refs': 'checks', + 'result_refs': 'results', 'available_result_refs': 'results', + 'unavailable_result_refs': 'results', 'not_applicable_result_refs': 'results', + 'not_evaluated_result_refs': 'results', 'affected_result_refs': 'results', + 'witness_refs': 'findings', 'reason_refs': 'reasons'} + + def visit(value): + if type(value) is dict: + for key, child in value.items(): + if key in targets: + refs = child if type(child) is list else [child] + # Input lifecycle basis_refs remain explicitly typed input + # references; they are not report basis identifiers. + for ref in refs: + if type(ref) is str: + assert ref in kinds[targets[key]], (key, ref) + visit(child) + elif type(value) is list: + for child in value: + visit(child) + visit(document) + + +def test_real_private_reference_assembles_exact_independent_logical_document(reference_assembly): + frozen, actual, _, units = reference_assembly + _strict_equal(actual, _reference_document()) + assert type(frozen) is contract._ReportMapping + assert set(actual) == set(ROOT_FIELDS) + assert 0 < units <= 10_000_000 + assert {name: len(actual[name]) for name in COLLECTIONS} == { + 'scopes': 23, 'populations': 40, 'basis_index': 16, 'capabilities': 15, + 'checks': 671, 'results': 78, 'findings': 22, 'reasons': 38, + } + assert len({row['field_key'] for row in actual['results']}) == 57 + + +def test_reference_partitions_and_target_kinds_are_independently_closed(reference_assembly): + _, actual, _, _ = reference_assembly + _assert_partitions(actual) + _assert_report_links(actual) + assert [row['diagnostic_id'] for row in actual['capabilities']] == list(FAMILIES) + assert actual['run']['requested_diagnostic_ids'] == list(FAMILIES) + assert actual['run']['completed_diagnostic_ids'] == list(FAMILIES) + assert [(row['level_index'], row['label']) for row in actual['observability_domains']] == list(enumerate(DOMAIN_LABELS)) + assert all('not_applicable_result_refs' not in row for row in actual['observability_domains']) + + +def test_owner_only_trace_and_human_review_scan_material_are_preserved(reference_assembly): + _, actual, _, _ = reference_assembly + results = {row['field_key']: row for row in actual['results']} + findings = {row['id']: row for row in actual['findings']} + for field, expected_count in (('single_origin_contribution_hhi', 6), + ('inherited_only_seed_fraction', 5)): + row = results[field] + assert len(row['witness_refs']) == 1 + witness = findings[row['witness_refs'][0]] + assert witness['scope_ref'] == row['scope_ref'] + assert witness['condition_code'] == 'transformation_path_witness' + assert [component['kind'] for component in witness['witness']['components']] == ['path', 'complete_trace'] + trace = witness['witness']['components'][1] + assert trace['member_count'] == expected_count + assert len(trace['observations']) == 1 + assert trace['observations'][0]['source_ref']['identifier'] == 'P4-PARENT' + scan = results['corrective_independence_disclosures']['value']['records'] + assert len(scan) == 1 + assert scan[0]['source'] == {'collection': 'inquiries', 'identifier': 'P4-I001', + 'selector': 'target_object_refs'} + assert scan[0]['fields']['native_record']['target_object_refs'] == [] + assert scan[0]['qualifications'] == [ + 'Actual owner selection/source reference slot; this record does not establish an applicable review or independent process.'] + + +def test_selected_fixture_preserves_required_content_without_private_source_tree(reference_assembly): + frozen, actual, _, _ = reference_assembly + dumped = json.dumps(actual, ensure_ascii=False) + assert 'P4-PRIVATE-DISPLAY-NOT-EXPORTED' not in dumped + assert 'P4-PRIVATE-EXCERPT-NOT-EXPORTED' not in dumped + assert 'Inspect supplied acquisition record; literal ``` is data.' in dumped + assert 'Caller-supplied documentary premise (合成例); no external authentication.' in dumped + assert 'operation_anchor' not in dumped + assert 'native_records' not in dumped + assert 'private_analytical_outcome' not in dumped + with pytest.raises(TypeError): + frozen['results'] = () + with pytest.raises(TypeError): + frozen['results'][0]['value'] = 8 + with pytest.raises(TypeError): + contract.AuditReport() + + +def _renamed(value, identifiers): + """Explicit fixture alpha-renaming; prose/order/numeric values stay intact.""" + if type(value) is str: + return identifiers.get(value, value) + if type(value) is dict: + return {key: _renamed(item, identifiers) for key, item in value.items()} + if type(value) is list: + return [_renamed(item, identifiers) for item in value] + return value + + +def _two_full_reference_inquiry_case(): + """Preserve the larger probe that reached the unchanged 10M work limit.""" + first = _reference_dossier() + identifiers = {row['id']: row['id'].replace('P4-', 'P4B-', 1) + for name in ('inquiries', 'records', 'assertions', 'evidence_references') + for row in first[name]} + second = _renamed(first, identifiers) + for name in ('inquiries', 'records', 'assertions', 'evidence_references'): + first[name].extend(second[name]) + return first, (_reference_document(), _renamed(_reference_document(), identifiers)) + + +# The complete double reference reached the unchanged 10M work limit. +# This separately named legal inventory case still covers all fifteen families +# for each Inquiry, and does not claim successful double-origin analysis. +def _two_compact_inquiry_case(): + first = _reference_dossier() + inquiry = first['inquiries'][0] + inquiry['dependency_dimensions'] = [] + inquiry['coverage_assertion_refs'] = [] + inquiry['seed_evidence_refs'] = [] + first['assertions'] = [] + first['evidence_references'] = [] + first['records'] = [row for row in first['records'] + if row['id'] in ('P4-ACTOR', 'P4-ART', 'P4-CLAIM')] + first['bundle_id'] = 'P4-BUNDLE-COMPACT-TWO' + first['snapshot_id'] = 'P4-SNAPSHOT-COMPACT-TWO-01' + + # Amend only explicit disclosure-input fixture material. No expected report + # or expected local ID is generated from the product's output. + reference = _reference_document() + for result in reference['results']: + if result['field_key'] == 'coverage_disclosures': + result['value'] = {'records': []} + elif result['field_key'] == 'documentary_basis_gap_disclosures': + selected = next(row for row in result['value']['records'] + if row['source']['identifier'] == 'P4-I001') + native = selected['fields']['native_record'] + for key in ('dependency_dimensions', 'coverage_assertion_refs', 'seed_evidence_refs'): + native[key] = [] + + ids = [row['id'] for name in ('inquiries', 'records') for row in first[name]] + names_a = {identifier: identifier for identifier in ids} + names_b = {identifier: identifier.replace('P4-', 'P4B-', 1) for identifier in ids} + document = _renamed(first, names_a) + second = _renamed(first, names_b) + for name in ('inquiries', 'records'): + document[name].extend(second[name]) + return document, (_renamed(reference, names_a), _renamed(reference, names_b)) + + +def test_small_two_inquiries_keep_all_families_and_five_global_domains(): + dossier, references = _two_compact_inquiry_case() + outcome = _analyze_value(dossier) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + assert len(outcome.plan.jobs) == 32 and len(outcome.results) == 120 + selected = _selected_disclosure(outcome, references) + port = RecordingPort() + actual = _plain(_assemble(outcome, selected, port)) + _assert_partitions(actual) + _assert_report_links(actual) + assert len(actual['capabilities']) == 30 + assert len(actual['observability_domains']) == 5 + scopes = {row['id']: row for row in actual['scopes']} + results = {row['id']: row for row in actual['results']} + for inquiry, artifact in (('P4-I001', 'P4-ART'), ('P4B-I001', 'P4B-ART')): + capabilities = [row for row in actual['capabilities'] + if row['inquiry_ref']['identifier'] == inquiry] + assert [row['diagnostic_id'] for row in capabilities] == list(FAMILIES) + for capability in capabilities: + assert all(scopes[results[identifier]['scope_ref']]['inquiry_ref']['identifier'] == inquiry + for identifier in capability['result_refs']) + assert any(member.get('identifier') == artifact + for population in actual['populations'] + if scopes[population['scope_ref']]['inquiry_ref']['identifier'] == inquiry + for member in population['member_refs']) + assert [(row['level_index'], row['label']) for row in actual['observability_domains']] == list(enumerate(DOMAIN_LABELS)) + for domain in actual['observability_domains']: + linked = domain['available_result_refs'] + domain['unavailable_result_refs'] + domain['not_evaluated_result_refs'] + if linked: + assert {scopes[results[identifier]['scope_ref']]['inquiry_ref']['identifier'] + for identifier in linked} == {'P4-I001', 'P4B-I001'} + assert 0 < port.units <= 10_000_000 + + +@pytest.mark.parametrize('allowance', (0, 1, 32, 1024)) +def test_bounded_assembly_propagates_actual_stop_without_partial_return(reference_outcome, + reference_assembly, allowance): + _, _, selected, _ = reference_assembly + port = RecordingPort(stop_after=allowance) + with pytest.raises(RuntimeError, match='^controlled_assembly_stop$'): + _assemble(reference_outcome, selected, port) + assert port.units <= allowance + + +@pytest.mark.parametrize('group', ('basis', 'disclosures', 'findings', 'owner_witnesses')) +def test_required_selected_material_cannot_silently_disappear(reference_outcome, group): + basis, disclosures, findings, witnesses = _selection_parts(reference_outcome) + groups = {'basis': basis, 'disclosures': disclosures, + 'findings': findings, 'owner_witnesses': witnesses} + assert groups[group] + groups[group] = groups[group][1:] + selected = contract._capture_report_disclosure(groups['basis'], groups['disclosures'], + groups['findings'], RecordingPort(), owner_witnesses=groups['owner_witnesses']) + with pytest.raises(TypeError): + _assemble(reference_outcome, selected) + + +@pytest.mark.parametrize('mutation', ( + 'dangling_result_scope', 'dangling_result_population', 'dangling_result_reason', + 'dangling_result_finding', 'dangling_basis_check', 'dangling_reason_result', + 'dangling_population_member', 'missing_source_selector', + 'wrong_capability_partition', 'wrong_domain_state', 'foreign_result_scope', + 'borrowed_check', 'foreign_reason_target', 'count_member_mismatch', + 'fraction_denominator_mismatch', 'hhi_denominator_mismatch', + 'missing_required_leaf_with_closed_links', 'duplicate_pc_with_closed_links', + 'graph_node_kind_disagrees_with_actual_input', +)) +def test_reference_validator_rejects_independent_single_reference_mutants(reference_outcome, + reference_assembly, mutation): + frozen, baseline, _, _ = reference_assembly + contract._validate_report_references(frozen, reference_outcome.prepared, RecordingPort()) + changed = copy.deepcopy(baseline) + if mutation == 'dangling_result_scope': + changed['results'][0]['scope_ref'] = 'SIT-SCP-999999' + elif mutation == 'dangling_result_population': + changed['results'][0]['population_refs'][0] = 'SIT-POP-999999' + elif mutation == 'dangling_result_reason': + next(row for row in changed['results'] if row['reason_refs'])['reason_refs'][0] = 'SIT-RSN-999999' + elif mutation == 'dangling_result_finding': + next(row for row in changed['results'] if row['witness_refs'])['witness_refs'][0] = 'SIT-FND-999999' + elif mutation == 'dangling_basis_check': + next(row for row in changed['basis_index'] if row['check_refs'])['check_refs'][0] = 'SIT-CHK-999999' + elif mutation == 'dangling_reason_result': + changed['reasons'][0]['affected_result_refs'][0] = 'SIT-RES-999999' + elif mutation == 'dangling_population_member': + changed['populations'][0]['member_refs'][0]['identifier'] = 'P4-NOT-SUPPLIED' + elif mutation == 'missing_source_selector': + changed['basis_index'][0]['source']['selector'] = 'data.never_supplied' + elif mutation == 'wrong_capability_partition': + capability = next(row for row in changed['capabilities'] if row['available_result_refs']) + target = capability['available_result_refs'].pop() + capability['unavailable_result_refs'].append(target) + elif mutation == 'wrong_domain_state': + domain = next(row for row in changed['observability_domains'] if row['available_result_refs']) + target = domain['available_result_refs'].pop() + domain['unavailable_result_refs'].append(target) + elif mutation == 'foreign_result_scope': + row = changed['results'][0] + row['scope_ref'] = next(scope['id'] for scope in changed['scopes'] + if scope['id'] != row['scope_ref']) + elif mutation == 'borrowed_check': + row = changed['results'][0] + row['check_refs'][0] = next(check['id'] for check in changed['checks'] + if check['scope_ref'] != row['scope_ref']) + elif mutation == 'foreign_reason_target': + reason = changed['reasons'][0] + reason['affected_result_refs'][0] = next(row['id'] for row in changed['results'] + if row['scope_ref'] != reason['scope_ref']) + elif mutation == 'count_member_mismatch': + changed['results'][0]['value'] = 2 + elif mutation == 'fraction_denominator_mismatch': + next(row for row in changed['results'] if row['field_key'] == + 'documentary_origin_resolution_fraction')['value']['denominator'] = 2 + elif mutation == 'hhi_denominator_mismatch': + next(row for row in changed['results'] if row['field_key'] == + 'single_origin_contribution_hhi')['value']['denominator'] = 2 + elif mutation == 'missing_required_leaf_with_closed_links': + # A deliberately compound mutation tests one semantic obligation: + # the required leaf must exist even if all remaining links are closed. + row = next(row for row in changed['results'] + if row['field_key'] == 'claim_artifact_record_count') + removed_result, removed_checks = row['id'], set(row['check_refs']) + assert row['reason_refs'] == [] and row['witness_refs'] == [] + changed['results'].remove(row) + changed['checks'] = [check for check in changed['checks'] + if check['id'] not in removed_checks] + for collection in ('capabilities', 'observability_domains', 'basis_index'): + for entry in changed[collection]: + for name, values in entry.items(): + if name in ('result_refs', 'available_result_refs', 'check_refs'): + entry[name] = [ref for ref in values if ref != removed_result and + ref not in removed_checks] + _assert_partitions(changed) + _assert_report_links(changed) + elif mutation == 'duplicate_pc_with_closed_links': + # Add a second ID for the same scoped PC and update its navigation. + # All foreign targets exist; only the repeated prerequisite is wrong. + row = changed['results'][0] + original = next(check for check in changed['checks'] if check['id'] == row['check_refs'][0]) + duplicated = copy.deepcopy(original) + duplicated['id'] = 'SIT-CHK-000672' + changed['checks'].append(duplicated) + row['check_refs'].append(duplicated['id']) + for capability in changed['capabilities']: + if row['id'] in capability['result_refs']: + capability['check_refs'].append(duplicated['id']) + _assert_partitions(changed) + _assert_report_links(changed) + elif mutation == 'graph_node_kind_disagrees_with_actual_input': + node = next(node for finding in changed['findings'] + for component in finding['witness']['components'] + if component['type'] == 'graph_witness' + for node in component['nodes'] + if node['ref']['identifier'] == 'P4-E1') + assert node['kind'] == 'evidence_item' + node['kind'] = 'artifact' + # Both kinds legally use the records collection. Only actual input + # reconciliation can reject this well-shaped, existing input ref. + contract._freeze_report_document(changed, RecordingPort()) + with pytest.raises(TypeError): + candidate = contract._freeze_report_document(changed, RecordingPort()) + contract._validate_report_references(candidate, reference_outcome.prepared, RecordingPort()) + + +def test_selected_capture_detaches_mutable_container_occurrences(reference_outcome): + basis, disclosures, findings, owners = _selection_parts(reference_outcome) + selected = contract._capture_report_disclosure(basis, disclosures, findings, + RecordingPort(), owner_witnesses=owners) + expected_basis = tuple(basis[0][1]['qualifications']) + body = next(value for _, value in disclosures if value['records']) + selected_body = next(value for _, value in selected.disclosures if value['records']) + expected_native = selected_body['records'][0]['fields']['native_record']['id'] + basis[0][1]['qualifications'].append('UNSELECTED-MUTATION') + body['records'][0]['fields']['native_record']['id'] = 'UNSELECTED-MUTATION' + assert selected.basis_entries[0][1]['qualifications'] == expected_basis + assert selected_body['records'][0]['fields']['native_record']['id'] == expected_native + + +@pytest.mark.parametrize('mutation', ('unknown_member', 'raw_source_object', + 'unknown_typed_leaf', 'duplicate_owner')) +def test_selected_capture_rejects_noncontract_material_without_protocol_calls(reference_outcome, + mutation): + from source_integrity_toolkit.contracts.bundle import _Object + + class Hostile: + def __repr__(self): + raise AssertionError('unknown leaf repr called') + + def __str__(self): + raise AssertionError('unknown leaf str called') + + def __iter__(self): + raise AssertionError('unknown leaf iteration called') + + basis, disclosures, findings, owners = _selection_parts(reference_outcome) + if mutation == 'unknown_member': + basis[0][1]['unregistered_member'] = None + elif mutation == 'raw_source_object': + basis[0][1]['method'] = _Object(()) + elif mutation == 'unknown_typed_leaf': + basis[0][1]['method'] = Hostile() + else: + basis = basis + (basis[0],) + with pytest.raises(TypeError): + contract._capture_report_disclosure(basis, disclosures, findings, + RecordingPort(), owner_witnesses=owners) + + +@pytest.mark.parametrize('processing,input_state,kind', ( + ('rejected', 'rejected', 'validation_diagnostics'), + ('interrupted', 'not_completed', 'processing_diagnostics'), + ('failed', 'not_completed', 'processing_diagnostics'), + ('failed', 'accepted', 'processing_diagnostics'), +)) +def test_constructed_safe_stop_projection_has_no_analytical_salvage(reference_outcome, + processing, input_state, kind): + # These are explicitly constructed owner transports, not a claim that a + # real public invocation or resource interruption has already been wired. + code = {'rejected': 'input_not_accepted', 'interrupted': 'resource_limit_reached', + 'failed': 'execution_failed'}[processing] + stop = _PreparationStop(input_state, processing, code) + if processing == 'rejected': + cause = _PreparationAborted(stop, diagnostic_code='missing_required_field') + elif processing == 'interrupted': + cause = _PreparationAborted(stop, limit_id='WU9-L01') + else: + cause = _AnalysisAborted(stop) + prepared = reference_outcome.prepared if input_state == 'accepted' else None + frozen = assemble._assemble_diagnostic(cause, RecordingPort(), prepared=prepared) + actual = _plain(frozen) + assert actual['report_kind'] == kind + assert actual['run']['processing_state'] == processing + assert actual['input_validation']['state'] == input_state + assert actual['run']['completed_diagnostic_ids'] == [] + for field in COLLECTIONS[:-1] + ('observability_domains',): + assert actual[field] == [], field + assert all(reason['scope_ref'] is None and reason['affected_result_refs'] == [] and + reason['input_refs'] == [] for reason in actual['reasons']) + for field in ('started_at', 'finished_at'): + assert actual['run'][field] == {'state': 'unknown', 'value': None, + 'precision': None, 'reason': 'not_recorded_by_SIT-RP-0.1'} + if input_state == 'accepted': + assert actual['input_identity']['bundle_id'] == 'P4-BUNDLE-REFERENCE' + assert actual['input_identity']['snapshot_id'] == 'P4-SNAPSHOT-REFERENCE-01' + else: + assert actual['input_identity']['bundle_id'] is None + assert actual['input_identity']['snapshot_id'] is None + + + +def _two_hop_dossier(): + dossier = _reference_dossier() + records = {row['id']: row for row in dossier['records']} + second = copy.deepcopy(records['P4-E1']) + second['id'] = 'P4-E2' + second['data']['locator'] = 'sample-2' + second['data']['description'] = 'Explicit intermediate contribution in a two-hop path.' + dossier['records'].append(second) + assertions = {row['id']: row for row in dossier['assertions']} + last = copy.deepcopy(assertions['P4-PARENT']) + last['id'] = 'P4-PARENT2' + last['data']['from_ref'] = 'P4-E2' + dossier['assertions'].append(last) + assertions['P4-PARENT']['data'].update(predicate='derived_from', to_ref='P4-E2') + coverage = assertions['P4-COVER']['data']['details'] + coverage['member_refs'] = ['P4-E1', 'P4-E2', 'P4-O1'] + coverage['scope_note'] = 'Exactly these three records and all their permitted acquisition-parent predicates.' + return dossier + + +def _fixture_replace_strings(value, substitutions): + """Exact names in an independently selected fixture, never product output.""" + if type(value) is str: + return substitutions.get(value, value) + if type(value) is list: + return [_fixture_replace_strings(item, substitutions) for item in value] + if type(value) is dict: + return {key: _fixture_replace_strings(item, substitutions) for key, item in value.items()} + return value + + +def _two_hop_graph_bodies(): + def ref(identifier): + collection = ('evidence_references' if identifier == 'P4-SUPPORT' + else 'assertions' if identifier.startswith('P4-PARENT') else 'records') + return {'collection': collection, 'identifier': identifier, 'selector': None} + + def node(identifier): + return {'kind': 'origin_event' if identifier == 'P4-O1' else 'evidence_item', + 'ref': ref(identifier)} + + def edge(identifier, source, target, predicate): + return {'source': node(source), 'target': node(target), + 'source_ref': ref(identifier), 'predicate': predicate, + 'eligible': True, 'reason_codes': []} + + first = edge('P4-PARENT', 'P4-E1', 'P4-E2', 'derived_from') + second = edge('P4-PARENT2', 'P4-E2', 'P4-O1', 'originates_from') + + def component(kind, count, **fields): + body = {'type': 'graph_witness', 'kind': kind, 'member_count': count, + 'nodes': [], 'edges': [], 'members': [], 'internal_edges': [], + 'exit_edges': [], 'starts': [], 'target': None, + 'examined_nodes': [], 'examined_edges': [], 'frontiers': [], + 'terminals': [], 'observations': []} + body.update(fields) + return body + + def witness(ids, body): + return {'input_refs': sorted([ref(identifier) for identifier in ids], + key=lambda item: (item['collection'], item['identifier'])), + 'components': [body]} + + first_path = component('path', 3, nodes=[node('P4-E1'), node('P4-E2')], edges=[first]) + last_path = component('path', 3, nodes=[node('P4-E2'), node('P4-O1')], edges=[second]) + path = component('path', 5, nodes=[node('P4-E1'), node('P4-E2'), node('P4-O1')], + edges=[first, second]) + full_trace = component('complete_trace', 9, starts=[node('P4-E1')], + examined_nodes=[node('P4-E1'), node('P4-E2'), node('P4-O1')], + examined_edges=[first, second], terminals=[node('P4-O1')], observations=[first, second]) + immediate_trace = component('complete_trace', 5, starts=[node('P4-E1')], + examined_nodes=[node('P4-E1'), node('P4-E2')], examined_edges=[first], observations=[first]) + all_inputs = ('P4-PARENT', 'P4-PARENT2', 'P4-SUPPORT', 'P4-E1', 'P4-E2', 'P4-O1') + first_inputs = ('P4-PARENT', 'P4-SUPPORT', 'P4-E1', 'P4-E2') + return { + 'first_path': witness(first_inputs, first_path), + 'last_path': witness(('P4-PARENT2', 'P4-SUPPORT', 'P4-E2', 'P4-O1'), last_path), + 'path': witness(all_inputs, path), + 'full_trace': witness(all_inputs, full_trace), + 'immediate_trace': witness(first_inputs, immediate_trace), + } + + +def _two_hop_case(): + dossier = _two_hop_dossier() + outcome = _analyze_value(dossier) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + assert len(outcome.results) == 87 and len(outcome.plan.jobs) == 25 + selected = _reference_document() + + # P4-E2 and P4-PARENT2 intentionally copy the reference's explicit supplied + # provenance. Their input identities remain distinct basis objects. + for old, new in [('P4-E1', 'P4-E2'), ('P4-PARENT', 'P4-PARENT2')]: + source = next(row for row in selected['basis_index'] + if row['source']['identifier'] == old and row['source']['selector'] is None) + selected['basis_index'].append(_fixture_replace_strings(source, {old: new})) + + # The selected native coverage record is the one amended input assertion. + coverage = next(row for row in dossier['assertions'] if row['id'] == 'P4-COVER') + for row in selected['results']: + if row['field_key'] == 'coverage_disclosures': + body = row['value']['records'][0]['fields']['native_record'] + body['data']['details']['member_refs'] = list(coverage['data']['details']['member_refs']) + body['data']['details']['scope_note'] = coverage['data']['details']['scope_note'] + + # Existing private Findings cover each actual single edge and each exact + # assurance query. The longer retained owner path has no equal private + # Finding; that distinction is the purpose of this regression case. + graph = _two_hop_graph_bodies() + old_path = next(row for row in selected['findings'] + if row['condition_code'] == 'transformation_path_witness' and + len(row['witness']['components']) == 1) + last_path = copy.deepcopy(old_path) + old_path['witness'] = copy.deepcopy(graph['first_path']) + last_path['witness'] = copy.deepcopy(graph['last_path']) + selected['findings'].append(last_path) + assurance = next(row for row in selected['findings'] + if row['condition_code'] == 'scoped_no_witness' and + any(ref['identifier'] == 'P4-PARENT' for ref in row['witness']['input_refs'])) + selected['findings'].append(_fixture_replace_strings(assurance, {'P4-PARENT': 'P4-PARENT2'})) + + basis = _selected_basis_entries(outcome, (selected,)) + disclosures = _selected_result_disclosures(outcome, (selected,)) + findings = _selected_existing_findings(outcome, (selected,)) + owners = [] + for owner in outcome.witnesses: + if owner.payload[0][0] != 'graph_witness': + continue + kind = owner.payload[0][1] + if kind == 'path': + assert owner.member_count == 5 + body = graph['path'] + elif owner.refs[0].anchor[0] == 'complete_trace': + assert kind == 'complete_trace' and owner.member_count == 9 + body = graph['full_trace'] + else: + assert owner.refs[0].anchor[0] == 'immediate_complete_trace' + assert kind == 'complete_trace' and owner.member_count == 5 + body = graph['immediate_trace'] + owners.append((owner, copy.deepcopy(body))) + assert len(owners) == 3 + return dossier, outcome, (basis, disclosures, findings, tuple(owners)) + + +def _assert_two_hop_material(document): + """Semantic expectations authored from E1 -> E2 -> O1, not report IDs.""" + findings = {row['id']: row for row in document['findings']} + row = next(row for row in document['results'] if row['field_key'] == 'single_origin_contribution_hhi') + assert row['execution_state'] == 'completed' and row['result_state'] == 'available' + assert row['value'] == {'numerator': 1, 'denominator': 1} + assert row['witness_refs'] + components = [component for ref in row['witness_refs'] + for component in findings[ref]['witness']['components']] + path = next(component for component in components + if component.get('kind') == 'path' and len(component['edges']) == 2) + assert [node['ref']['identifier'] for node in path['nodes']] == ['P4-E1', 'P4-E2', 'P4-O1'] + assert [edge['source_ref']['identifier'] for edge in path['edges']] == ['P4-PARENT', 'P4-PARENT2'] + trace = next(component for component in components if component.get('kind') == 'complete_trace') + assert trace['member_count'] == 9 + assert [node['ref']['identifier'] for node in trace['examined_nodes']] == ['P4-E1', 'P4-E2', 'P4-O1'] + assert [edge['source_ref']['identifier'] for edge in trace['observations']] == ['P4-PARENT', 'P4-PARENT2'] + basis_ids = {(entry['source']['collection'], entry['source']['identifier']) + for entry in document['basis_index']} + assert {('records', 'P4-E1'), ('records', 'P4-E2'), + ('assertions', 'P4-PARENT'), ('assertions', 'P4-PARENT2')} <= basis_ids + for result in document['results']: + if result['diagnostic_id'] in ('SIT-M002', 'SIT-M004', 'SIT-M005', 'SIT-M006', 'SIT-M007'): + assert result['witness_refs'], result['field_key'] + assert all(findings[ref]['scope_ref'] == result['scope_ref'] + for ref in result['witness_refs']) + inherited = next(row for row in document['results'] + if row['field_key'] == 'inherited_only_seed_fraction') + assert inherited['value'] == {'numerator': 1, 'denominator': 1} + + +def test_two_hop_retained_owner_path_does_not_require_an_equal_private_finding(): + _, outcome, parts = _two_hop_case() + basis, disclosures, findings, owners = parts + selected = contract._capture_report_disclosure(basis, disclosures, findings, + RecordingPort(), owner_witnesses=owners) + actual = _plain(_assemble(outcome, selected)) + _assert_two_hop_material(actual) + _assert_partitions(actual) + _assert_report_links(actual) + + +# The following are explicitly constructed trusted component controls. They +# exercise value projection and linking, not a complete analytical envelope. +def _interval_component(reference_outcome): + scope = next(result.ref.scope for result in reference_outcome.results + if result.ref.field_key == 'stage_occurrence_completion_interval') + members = tuple(values._InputRef('records', 'COMPONENT-MEMBER-' + str(index)) + for index in range(6)) + population = values._Population(scope, 'pipeline_member', members, + 'Explicit six-member constructed component cohort.') + partition = values._Partition(population, ( + values._PartitionCategory('U', members[4:], 2), + values._PartitionCategory('Y', members[:2], 2), + values._PartitionCategory('F', members[2:4], 2), + )) + interval = values._CompletionInterval(values._Fraction(2, 6, population), + values._Fraction(4, 6, population), 'finite_cohort_completion', partition) + result = values._Result(values._ResultRef('SIT-M010', + 'stage_occurrence_completion_interval', scope), (population,), 'completed', + 'available', 'attributed_record', 'completion_interval', interval, + (), (), (), (), 'Constructed finite cohort; not a probability interval.') + return result + + +def test_available_completion_interval_uses_exact_shared_population(reference_outcome): + result = _interval_component(reference_outcome) + port = RecordingPort() + selection = contract._capture_report_disclosure((), (), (), port) + state = assemble._Assembly(reference_outcome, selection, port) + state.result(result) + state.identities_for_rows() + projected = state.resolve(state.rows['results'][0]['body']) + interval = projected['value'] + assert interval['lower'] == {'numerator': 2, 'denominator': 6} + assert interval['upper'] == {'numerator': 4, 'denominator': 6} + assert interval['interval_kind'] == 'finite_cohort_completion' + assert interval['population_ref'] == interval['partition']['population_ref'] + assert projected['population_refs'] == (interval['population_ref'],) + population = state.resolve(state.rows['populations'][0]['body']) + assert len(population['member_refs']) == interval['partition']['total'] == 6 + categories = interval['partition']['categories'] + assert [(row['label'], row['count']) for row in categories] == [('U', 2), ('Y', 2), ('F', 2)] + all_members = [row['identifier'] for category in categories for row in category['member_refs']] + assert len(all_members) == len(set(all_members)) == 6 + assert set(all_members) == {row['identifier'] for row in population['member_refs']} + assert 0 < port.units < 10_000_000 + + +def test_completion_interval_projection_rejects_unregistered_population(reference_outcome): + result = _interval_component(reference_outcome) + port = RecordingPort() + selection = contract._capture_report_disclosure((), (), (), port) + state = assemble._Assembly(reference_outcome, selection, port) + projected = state.value(result) + state.identities_for_rows() + with pytest.raises(contract._ReportContractError): + state.resolve(projected) + + +def _witness_collection_component(reference_outcome, *, retain=True): + scope = next(result.ref.scope for result in reference_outcome.results + if result.ref.field_key == 'evaluator_overlap_witnesses') + members = (values._InputRef('records', 'COMPONENT-LEFT'), + values._InputRef('records', 'COMPONENT-RIGHT')) + population = values._Population(scope, 'record', members, + 'Explicit two-member constructed witness component.') + ref = values._ResultRef('SIT-M008', 'evaluator_overlap_witnesses', scope) + witness_ref = values._WitnessRef(scope, 'member_set', ('constructed_overlap',)) + result = values._Result(ref, (population,), 'completed', 'available', + 'graph_derivation', 'witness_collection', values._WitnessCollection((witness_ref,)), + (), (), (witness_ref,), (), 'Constructed typed witness projection only.') + payload = (('selected_members', members, 2),) + record = contract._WitnessRecord((witness_ref,), payload, (), 2) + finding = contract._PrivateFinding('positive_witness', + 'evaluator_overlap_witness', ('SIT-M008',), ('SIT-TH006',), scope, + (population,), (), contract._DetachedFindingWitness(members, payload, 4), + (), (), (ref,), 'These two represented members form this constructed witness.', + 'Component-only check; no source authenticity or global independence conclusion.', ()) + selected_body = {'input_refs': [_source(member) for member in members], + 'components': [{'type': 'selected_members', + 'members': [_source(member) for member in members], + 'member_count': 2}]} + port = RecordingPort() + selection = contract._capture_report_disclosure((), (), + ((finding, selected_body),), port) + outcome = replace(reference_outcome, results=(result,), findings=(finding,), + witnesses=(record,) if retain else (), capabilities=(), domains=()) + state = assemble._Assembly(outcome, selection, port) + state.result(result) + state.finding(finding) + assemble._assemble_witnesses(state) + state.identities_for_rows() + return state, finding, port + + +def test_available_witness_collection_links_same_actual_finding(reference_outcome): + state, finding, port = _witness_collection_component(reference_outcome) + projected = state.resolve(state.rows['results'][0]['body']) + identifier = state.resolve_link(finding) + assert projected['value'] == {'witness_refs': (identifier,)} + assert projected['witness_refs'] == (identifier,) + assert identifier.startswith('SIT-FND-') + proof = state.resolve(state.rows['findings'][0]['body']) + assert proof['witness']['components'][0]['member_count'] == 2 + assert [item['identifier'] for item in proof['witness']['components'][0]['members']] == [ + 'COMPONENT-LEFT', 'COMPONENT-RIGHT'] + assert 0 < port.units < 10_000_000 + + +def test_witness_collection_projection_rejects_missing_retained_witness(reference_outcome): + state, unused, unused_port = _witness_collection_component(reference_outcome, retain=False) + with pytest.raises(contract._ReportContractError): + state.resolve(state.rows['results'][0]['body']) + + +# Constructed typed witness components below share one exact scope on purpose. +# Additional input identities are fixture-only; this is not a full dossier test. +def _same_scope_witness_component(reference_outcome, *, unrelated=False): + scope = next(result.ref.scope for result in reference_outcome.results + if result.ref.field_key == 'single_origin_contribution_hhi') + input_specs = { + 'P4-E1': ('records', 'evidence_item', 'P4-E1'), + 'P4-O1': ('records', 'origin_event', 'P4-O1'), + 'P4-PARENT': ('assertions', None, 'P4-PARENT'), + 'P4-E2': ('records', 'evidence_item', 'P4-E1'), + 'P4-O2': ('records', 'origin_event', 'P4-O1'), + 'P4-PARENT2': ('assertions', None, 'P4-PARENT'), + 'P4-E3': ('records', 'evidence_item', 'P4-E1'), + 'P4-O3': ('records', 'origin_event', 'P4-O1'), + 'P4-BOUND': ('assertions', None, 'P4-BOUND'), + 'P4-COVER': ('assertions', None, 'P4-COVER'), + 'P4-ACTOR': ('records', 'actor', 'P4-ACTOR'), + } + + def ref(identifier): + return values._InputRef(input_specs[identifier][0], identifier) + + def node(identifier): + return ('node', ref(identifier), input_specs[identifier][1]) + + def public_node(identifier): + return {'ref': _source(ref(identifier)), 'kind': input_specs[identifier][1]} + + def edge(source, target, assertion): + return ('edge', node(source), node(target), + ('assertions', assertion, '', 'records', target), ref(assertion), + 'originates_from', True, ()) + + def public_edge(source, target, assertion): + return {'source': public_node(source), 'target': public_node(target), + 'source_ref': _source(ref(assertion)), + 'predicate': 'originates_from', 'eligible': True, 'reason_codes': []} + + def bodies(kind, start, target, assertion=None): + private = {name: () for name in ('nodes', 'edges', 'members', 'internal_edges', + 'exit_edges', 'starts', 'examined_nodes', 'examined_edges', 'frontiers', + 'terminals', 'observations')} + private['target'] = None + public = {name: [] for name in private if name != 'target'} + public['target'] = None + if kind == 'path': + private.update(nodes=(node(start), node(target)), edges=(edge(start, target, assertion),)) + public.update(nodes=[public_node(start), public_node(target)], + edges=[public_edge(start, target, assertion)]) + count = 3 + elif kind == 'complete_trace': + private.update(starts=(node(start),), examined_nodes=(node(start), node(target)), + examined_edges=(edge(start, target, assertion),), terminals=(node(target),), + observations=(edge(start, target, assertion),)) + public.update(starts=[public_node(start)], examined_nodes=[public_node(start), public_node(target)], + examined_edges=[public_edge(start, target, assertion)], terminals=[public_node(target)], + observations=[public_edge(start, target, assertion)]) + count = 6 + else: + assert kind == 'no_witness_in_examined_view' + private.update(starts=(node(start),), examined_nodes=(node(start),), + terminals=(node(start),), target=node(target)) + public.update(starts=[public_node(start)], examined_nodes=[public_node(start)], + terminals=[public_node(start)], target=public_node(target)) + count = 4 + payload = ('graph_witness', kind, scope.inquiry_ref.identifier, + tuple(ref.identifier for ref in scope.claim_refs), + scope.dependency_dimension, scope.graph_view, scope.operation_anchor, + tuple(private.items()), count) + public.update(type='graph_witness', kind=kind, member_count=count) + return payload, public + + specifications = [ + ('SIT-M002', 'origin_boundary_disclosures', 'P4-E1', 'P4-O1', 'P4-PARENT', 'P4-BOUND'), + ('SIT-M007', 'ancestry_gap_disclosures', 'P4-E2', 'P4-O2', 'P4-PARENT2', 'P4-COVER'), + ] + if unrelated: + specifications.append(('SIT-M014', 'anomaly_context_disclosures', + 'P4-E3', 'P4-O3', None, 'P4-ACTOR')) + results, records, selected_owners, selected_disclosures = [], [], [], [] + needed_basis = set() + for family, field, start, target, assertion, marker in specifications: + inputs = (start, target) if assertion is None else (start, target, assertion) + needed_basis.update(inputs + (marker,)) + links = [] + kinds = ('no_witness_in_examined_view',) if assertion is None else ('path', 'complete_trace') + for kind in kinds: + payload, selected = bodies(kind, start, target, assertion) + link = values._WitnessRef(scope, 'path' if kind == 'path' else 'member_set', + ('component', family, kind, ref(start))) + record = contract._WitnessRecord((link,), (payload,), (), payload[-1]) + records.append(record) + links.append(link) + selected_owners.append((record, {'input_refs': [_source(ref(name)) + for name in sorted(inputs)], 'components': [selected]})) + result_ref = values._ResultRef(family, field, scope) + result = values._Result(result_ref, (), 'completed', 'available', 'attributed_record', + 'record_disclosures', values._RecordDisclosures(()), (), + (values._BasisRef(ref(marker)),), tuple(links), (), + 'Constructed component composition; no real-world qualification is asserted.') + results.append(result) + selected_disclosures.append((result_ref, {'records': []})) + + expected = _reference_document() + selected_basis = [] + for identifier in sorted(needed_basis): + template = input_specs[identifier][2] + row = copy.deepcopy(next(item for item in expected['basis_index'] + if item['source']['identifier'] == template and item['source']['selector'] is None)) + del row['id'] + del row['source'] + row['check_refs'] = () + selected_basis.append((values._BasisRef(ref(identifier)), row)) + port = RecordingPort() + selection = contract._capture_report_disclosure(tuple(selected_basis), + tuple(selected_disclosures), (), port, owner_witnesses=tuple(selected_owners)) + outcome = replace(reference_outcome, results=tuple(results), findings=(), + witnesses=tuple(records), capabilities=(), domains=()) + state = assemble._Assembly(outcome, selection, port) + for result in results: + state.result(result) + assemble._assemble_witnesses(state) + state.identities_for_rows() + projected_results = {row['owner'].ref.diagnostic_id: state.resolve(row['body']) + for row in state.rows['results']} + projected_findings = {state.resolve_link(row['owner']): state.resolve(row['body']) + for row in state.rows['findings']} + projected_basis = {state.resolve_link(row['owner']): state.resolve(row['body'])['source']['identifier'] + for row in state.rows['basis_index']} + return projected_results, projected_findings, projected_basis, port.units + + +def test_two_same_scope_path_trace_pairs_keep_distinct_supporting_metadata(reference_outcome): + results, findings, basis, units = _same_scope_witness_component(reference_outcome) + assert len(findings) == 2 + assert 0 < units < 10_000_000 + expected = { + 'SIT-M002': ('P4-E1', 'P4-O1', 'P4-PARENT', 'P4-BOUND'), + 'SIT-M007': ('P4-E2', 'P4-O2', 'P4-PARENT2', 'P4-COVER'), + } + identifiers = [] + for family, (start, target, assertion, marker) in expected.items(): + links = results[family]['witness_refs'] + assert len(links) == 1 + identifiers.extend(links) + finding = findings[links[0]] + assert finding['diagnostic_refs'] == (family,) + assert {basis[identifier] for identifier in finding['basis_refs']} == { + start, target, assertion, marker} + components = finding['witness']['components'] + assert [component['kind'] for component in components] == ['path', 'complete_trace'] + path, trace = components + assert [node['ref']['identifier'] for node in path['nodes']] == [start, target] + assert path['edges'][0]['source_ref']['identifier'] == assertion + assert trace['starts'][0]['ref']['identifier'] == start + assert trace['examined_edges'][0]['source_ref']['identifier'] == assertion + assert trace['observations'][0]['source_ref']['identifier'] == assertion + assert len(set(identifiers)) == 2 + + +def test_unrelated_same_scope_absence_keeps_own_material_family_and_basis(reference_outcome): + results, findings, basis, units = _same_scope_witness_component(reference_outcome, unrelated=True) + assert len(findings) == 3 + assert 0 < units < 10_000_000 + absent_links = results['SIT-M014']['witness_refs'] + assert len(absent_links) == 1 + finding = findings[absent_links[0]] + assert finding['diagnostic_refs'] == ('SIT-M014',) + assert finding['condition_code'] == 'scoped_no_witness' + assert finding['observation_kind'] == 'no_witness_in_examined_view' + assert finding['threat_family_refs'] == () + assert {basis[identifier] for identifier in finding['basis_refs']} == {'P4-E3', 'P4-O3', 'P4-ACTOR'} + components = finding['witness']['components'] + assert len(components) == 1 and components[0]['kind'] == 'no_witness_in_examined_view' + assert components[0]['starts'][0]['ref']['identifier'] == 'P4-E3' + assert components[0]['target']['ref']['identifier'] == 'P4-O3' + assert components[0]['examined_edges'] == () and components[0]['observations'] == () + for family in ('SIT-M002', 'SIT-M007'): + links = results[family]['witness_refs'] + assert len(links) == 1 and absent_links[0] not in links + assert findings[links[0]]['diagnostic_refs'] == (family,) + assert all(component['kind'] in ('path', 'complete_trace') + for component in findings[links[0]]['witness']['components']) diff --git a/tests/contract/test_report_identity.py b/tests/contract/test_report_identity.py new file mode 100644 index 0000000..718bafb --- /dev/null +++ b/tests/contract/test_report_identity.py @@ -0,0 +1,577 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W03 semantic identity controls at the trusted logical-assembly boundary. + +Architecture 18.1 and governance 22.5 specify the expectations here. These +tests construct finite private fixtures; they do not claim a public audit ran +or turn the producer's output into an expected golden document. +""" +import copy +from dataclasses import fields, is_dataclass, replace +from types import SimpleNamespace + +import pytest + +from source_integrity_toolkit.contracts import report, results as r +from source_integrity_toolkit.reporting import assemble as assembly_product +from source_integrity_toolkit.runtime import boundary +from test_report_assembly import ( + RecordingPort, _assemble, _plain, _reference_dossier, _reference_outcome, + _selected_disclosure, +) + + +@pytest.fixture(scope='module') +def reference(): + """One actual analysis supplies immutable inputs, never cached verdicts.""" + outcome = _reference_outcome() + return outcome, _selected_disclosure(outcome) + + +def _document(reference, *, outcome=None, selection=None, port=None): + original, selected = reference + return _plain(_assemble(original if outcome is None else outcome, + selected if selection is None else selection, + port=port)) + + +def _result_pair(outcome): + first = next(row for row in outcome.results + if row.ref.diagnostic_id == 'SIT-M001' and + row.result_state == 'available') + second = next(row for row in outcome.results + if row is not first and row.ref.scope is first.ref.scope and + row.result_state == 'available') + return first, second + + +def _with_results(outcome, replacements): + """Update actual navigation while retaining distinct Reason bodies. + + Private Reason._key deliberately excludes affected_result_refs. Object + identity here only avoids adding the *same* fixture node twice; expected + public identity is asserted from its full specified contents below. + """ + rows = tuple(replacements.get(id(row), row) for row in outcome.results) + by_slot = {row.ref._key(): row for row in rows} + + def reasons(links, originals): + result = list(originals) + present = {id(reason) for reason in result} + for link in links: + for reason in by_slot[link._key()].reason_refs: + if id(reason) not in present: + result.append(reason) + present.add(id(reason)) + return tuple(result) + + capabilities = tuple(replace(cap, reason_refs=reasons(cap.result_refs, + cap.reason_refs)) + for cap in outcome.capabilities) + domains = tuple(replace(domain, reason_refs=reasons(domain.result_refs, + domain.reason_refs)) + for domain in outcome.domains) + return replace(outcome, results=rows, capabilities=capabilities, + domains=domains) + + +def _selection_plain(value): + """Detach selected JSON containers while preserving explicit typed links.""" + if type(value) is report._ReportMapping: + return {name: _selection_plain(value[name]) for name in value} + if type(value) in (tuple, list): + return [_selection_plain(item) for item in value] + if type(value) is dict: + return {name: _selection_plain(item) for name, item in value.items()} + assert value is None or type(value) in ( + str, bool, int, r._InputRef, r._Scope, r._Population, r._BasisRef, + r._ResultRef, r._WitnessRef, r._Reason, r._PrerequisiteCheck, + ) + return value + + +def _selected_again(selection, *, basis_entries=None, disclosures=None, + finding_witnesses=None): + + return report._capture_report_disclosure( + tuple((owner, _selection_plain(value)) for owner, value in + (selection.basis_entries if basis_entries is None else basis_entries)), + tuple((owner, _selection_plain(value)) for owner, value in + (selection.disclosures if disclosures is None else disclosures)), + tuple((owner, _selection_plain(value)) for owner, value in + (selection.finding_witnesses if finding_witnesses is None else finding_witnesses)), + RecordingPort(), + owner_witnesses=tuple((owner, _selection_plain(value)) + for owner, value in selection.owner_witnesses), + ) + + +def _rewrite_fixture(value, replacements, memo=None): + """Rebuild only known trusted fixture nodes with coherent shared links. + + This is a test data operation. It never inspects the immutable prepared + source or analysis plan and cannot supply a production projection rule. + """ + if memo is None: + memo = {} + if id(value) in replacements: + return replacements[id(value)] + if id(value) in memo: + return memo[id(value)] + if type(value) is tuple: + items = tuple(_rewrite_fixture(item, replacements, memo) for item in value) + result = value if all(new is old for old, new in zip(value, items)) else items + elif type(value) is list: + items = [_rewrite_fixture(item, replacements, memo) for item in value] + result = value if all(new is old for old, new in zip(value, items)) else items + elif type(value) is dict: + items = {name: _rewrite_fixture(item, replacements, memo) + for name, item in value.items()} + result = value if all(items[name] is old for name, old in value.items()) else items + elif is_dataclass(value) and ( + type(value).__module__ == r.__name__ or type(value) in ( + report._AnalyticalOutcome, report._Capability, + report._DomainOutcome, report._PrivateFinding, + report._JobOutcome, report._WitnessRecord, report._ReportMapping)): + changes = { + field.name: _rewrite_fixture(getattr(value, field.name), replacements, memo) + for field in fields(value) + } + # Private Result constructors require their own Scope/Population/ + # WitnessRef links to share object identity. Keep untouched fixture + # nodes, especially a Scope shared by several Results, exactly intact. + result = (value if all(child is getattr(value, name) + for name, child in changes.items()) + else replace(value, **changes)) + else: + return value + memo[id(value)] = result + return result + + +def _coherent_changed_result(reference, original, changed): + outcome, selected = reference + replacements = {id(original): changed, id(original.ref): changed.ref} + for old, new in zip(original.check_refs, changed.check_refs): + replacements[id(old)] = new + for old, new in zip(original.witness_refs, changed.witness_refs): + replacements[id(old)] = new + memo = {} + rebuilt = _rewrite_fixture(outcome, replacements, memo) + parts = [_rewrite_fixture(getattr(selected, name), replacements, memo) + for name in ('basis_entries', 'disclosures', 'finding_witnesses', + 'owner_witnesses')] + selected = report._capture_report_disclosure( + tuple((owner, _selection_plain(value)) for owner, value in parts[0]), + tuple((owner, _selection_plain(value)) for owner, value in parts[1]), + tuple((owner, _selection_plain(value)) for owner, value in parts[2]), + RecordingPort(), + owner_witnesses=tuple((owner, _selection_plain(value)) for owner, value in parts[3]), + ) + return rebuilt, selected + + +def test_each_local_collection_has_its_own_sequential_identity(reference): + document = _document(reference) + assert document['report_id'] == 'SIT-RPT-000001' + for collection, prefix in ( + ('scopes', 'SIT-SCP-'), ('populations', 'SIT-POP-'), + ('basis_index', 'SIT-BAS-'), ('capabilities', 'SIT-CAP-'), + ('checks', 'SIT-CHK-'), ('results', 'SIT-RES-'), + ('findings', 'SIT-FND-'), ('reasons', 'SIT-RSN-')): + rows = document[collection] + assert rows, collection + assert [row['id'] for row in rows] == [ + prefix + str(number).zfill(6) for number in range(1, len(rows) + 1) + ], collection + all_ids = [row['id'] for key in ('scopes', 'populations', 'basis_index', + 'capabilities', 'checks', 'results', + 'findings', 'reasons') + for row in document[key]] + assert len(all_ids) == len(set(all_ids)) + + +def test_discovery_order_does_not_allocate_report_ids(reference): + outcome, selected = reference + reordered = replace(outcome, + results=tuple(reversed(outcome.results)), + findings=tuple(reversed(outcome.findings)), + witnesses=tuple(reversed(outcome.witnesses)), + capabilities=tuple(reversed(outcome.capabilities)), + domains=tuple(reversed(outcome.domains)), + jobs=tuple(reversed(outcome.jobs))) + selection = _selected_again( + selected, basis_entries=tuple(reversed(selected.basis_entries)), + disclosures=tuple(reversed(selected.disclosures)), + finding_witnesses=tuple(reversed(selected.finding_witnesses))) + assert _document(reference, outcome=reordered, selection=selection) == _document(reference) + + +def test_input_entity_permutation_preserves_same_logical_report(reference): + dossier = _reference_dossier() + original = copy.deepcopy(dossier) + for collection in ('inquiries', 'records', 'assertions', 'evidence_references'): + dossier[collection].reverse() + assert dossier != original + outcome = boundary._analyze_value(dossier) + assert outcome.input_state == 'accepted' and outcome.execution_state == 'completed' + assert _document(reference, outcome=outcome, + selection=_selected_disclosure(outcome)) == _document(reference) + # The assembler did not reorder the caller's mutable input in place. + for collection in ('inquiries', 'records', 'assertions', 'evidence_references'): + assert dossier[collection] == list(reversed(original[collection])) + + +def test_identical_result_and_explanatory_nodes_share_existing_ids(reference): + outcome, selected = reference + extra_result = replace(outcome.results[0]) + original_finding = outcome.findings[0] + extra_finding = replace(original_finding) + assert extra_result is not outcome.results[0] and extra_finding is not original_finding + witness = next(body for owner, body in selected.finding_witnesses + if owner is original_finding) + selection = _selected_again(selected, + finding_witnesses=selected.finding_witnesses + ((extra_finding, witness),)) + duplicate = replace(outcome, results=outcome.results + (extra_result,), + findings=outcome.findings + (extra_finding,)) + assert _document(reference, outcome=duplicate, selection=selection) == _document(reference) + + +def test_unequal_semantic_body_for_one_result_slot_is_an_error(reference): + outcome, unused = reference + assert _document(reference)['results'], 'unchanged baseline must assemble first' + original = outcome.results[0] + conflicting = replace(original, interpretation_limit= + original.interpretation_limit + ' Different limitation.') + conflicting_outcome = replace(outcome, results=outcome.results + (conflicting,)) + with pytest.raises(report._ReportContractError, match='invalid_report_contract'): + _document(reference, outcome=conflicting_outcome) + + +def test_same_reason_anchor_keeps_different_affected_result_bodies(reference): + outcome, unused = reference + first, second = _result_pair(outcome) + detail = 'Identity fixture: the exact affected Result set is part of this Reason.' + one = r._Reason('premise_disputed', first.ref.scope, (first.ref,), (), + detail, 'conflict') + two = r._Reason('premise_disputed', second.ref.scope, (second.ref,), (), + detail, 'conflict') + assert one._key() == two._key() + changed = _with_results(outcome, { + id(first): replace(first, reason_refs=first.reason_refs + (one,)), + id(second): replace(second, reason_refs=second.reason_refs + (two,)), + }) + document = _document(reference, outcome=changed) + reasons = [row for row in document['reasons'] if row['detail'] == detail] + assert len(reasons) == 2 + assert reasons[0]['id'] != reasons[1]['id'] + expected = {row['id'] for row in document['results'] + if row['diagnostic_id'] == first.ref.diagnostic_id and + row['field_key'] in (first.ref.field_key, second.ref.field_key)} + assert {tuple(row['affected_result_refs']) for row in reasons} == { + (identifier,) for identifier in expected + } + for reason in reasons: + result = next(row for row in document['results'] + if row['id'] == reason['affected_result_refs'][0]) + assert reason['id'] in result['reason_refs'] + + +def test_same_scope_anchor_keeps_different_qualification_bodies(reference): + outcome, unused = reference + first, second = _result_pair(outcome) + marker = 'Identity fixture: this scope retains a distinct qualification.' + old_scope = second.ref.scope + new_scope = replace(old_scope, qualifications=old_scope.qualifications + (marker,)) + assert new_scope._key() == old_scope._key() + changed = _rewrite_fixture(second, {id(old_scope): new_scope}) + rebuilt, selected = _coherent_changed_result(reference, second, changed) + document = _document(reference, outcome=rebuilt, selection=selected) + rows = {row['field_key']: row for row in document['results'] + if row['diagnostic_id'] == first.ref.diagnostic_id} + first_id = rows[first.ref.field_key]['scope_ref'] + second_id = rows[second.ref.field_key]['scope_ref'] + assert first_id != second_id + scopes = {row['id']: row for row in document['scopes']} + assert marker not in scopes[first_id]['qualifications'] + assert scopes[second_id]['qualifications'] == list(new_scope.qualifications) + + +def test_same_population_anchor_keeps_different_qualification_bodies(reference): + outcome, unused = reference + first = next(row for row in outcome.results + if row.value_kind == 'incidence' and row.result_state == 'available') + second = next(row for row in outcome.results + if row is not first and row.value_kind == 'incidence' and + row.result_state == 'available' and + row.value.population is first.value.population) + original_population = second.value.population + marker = 'Identity fixture: this population retains a distinct qualification.' + changed_population = replace(original_population, + qualifications=original_population.qualifications + (marker,)) + assert changed_population._key() == original_population._key() + changed = _rewrite_fixture(second, { + id(original_population): changed_population, + id(second.ref.scope): second.ref.scope, + }) + rebuilt, selected = _coherent_changed_result(reference, second, changed) + document = _document(reference, outcome=rebuilt, selection=selected) + rows = {row['field_key']: row for row in document['results'] + if row['diagnostic_id'] == first.ref.diagnostic_id} + first_id = rows[first.ref.field_key]['value']['population_ref'] + second_id = rows[second.ref.field_key]['value']['population_ref'] + assert first_id != second_id + populations = {row['id']: row for row in document['populations']} + assert marker not in populations[first_id]['qualifications'] + assert populations[second_id]['qualifications'] == list(changed_population.qualifications) + + +def test_reason_result_cycles_close_without_recursive_body_naming(reference): + outcome, unused = reference + first, second = _result_pair(outcome) + refs = (first.ref, second.ref) + left = r._Reason('premise_disputed', first.ref.scope, refs, (), + 'Identity cycle left.', 'conflict') + right = r._Reason('premise_disputed', first.ref.scope, refs, (), + 'Identity cycle right.', 'conflict') + changed = _with_results(outcome, { + id(first): replace(first, reason_refs=first.reason_refs + (left, right)), + id(second): replace(second, reason_refs=second.reason_refs + (left, right)), + }) + port = RecordingPort(stop_after=10_000_000) + document = _document(reference, outcome=changed, port=port) + assert 0 < port.units <= 10_000_000 and port.checks > 0 + reasons = [row for row in document['reasons'] + if row['detail'] in ('Identity cycle left.', 'Identity cycle right.')] + assert len(reasons) == 2 + assert reasons[0]['affected_result_refs'] == reasons[1]['affected_result_refs'] + assert len(reasons[0]['affected_result_refs']) == 2 + linked = set(reasons[0]['affected_result_refs']) + for row in document['results']: + if row['id'] in linked: + assert {reason['id'] for reason in reasons} <= set(row['reason_refs']) + reversed_left = replace(left, affected_result_refs=tuple(reversed(refs))) + reversed_right = replace(right, affected_result_refs=tuple(reversed(refs))) + reversed_outcome = _with_results(outcome, { + id(first): replace(first, reason_refs=first.reason_refs + + (reversed_right, reversed_left)), + id(second): replace(second, reason_refs=second.reason_refs + + (reversed_right, reversed_left)), + }) + reversed_outcome = replace(reversed_outcome, + results=tuple(reversed(reversed_outcome.results))) + assert _document(reference, outcome=reversed_outcome) == document + + +def test_registered_families_sort_numerically_and_null_scope_fields_first(reference): + document = _document(reference) + assert [row['diagnostic_id'] for row in document['capabilities']] == [ + 'SIT-M' + str(number).zfill(3) for number in range(1, 16) + ] + family_numbers = [int(row['diagnostic_id'][5:]) for row in document['results']] + assert family_numbers == sorted(family_numbers) + first_scope = document['scopes'][0] + assert first_scope['dependency_dimension'] is None + assert first_scope['graph_view'] is None + assert first_scope['requested_time'] is None + assert any(row['dependency_dimension'] is not None for row in document['scopes']) + # Hold the Inquiry, claims, targets and remaining scope fields fixed so + # the null-vs-text comparison is decisive, rather than merely incidental + # to unrelated earlier components of the reference's scope keys. + outcome, unused = reference + first, second = _result_pair(outcome) + assert first.ref.scope.dependency_dimension is None + qualified = replace(second.ref.scope, dependency_dimension='acquisition') + changed = _rewrite_fixture(second, {id(second.ref.scope): qualified}) + rebuilt, selected = _coherent_changed_result(reference, second, changed) + document = _document(reference, outcome=rebuilt, selection=selected) + rows = {row['field_key']: row for row in document['results'] + if row['diagnostic_id'] == first.ref.diagnostic_id} + null_id = rows[first.ref.field_key]['scope_ref'] + text_id = rows[second.ref.field_key]['scope_ref'] + assert null_id < text_id + scopes = {row['id']: row for row in document['scopes']} + assert scopes[null_id]['dependency_dimension'] is None + assert scopes[text_id]['dependency_dimension'] == 'acquisition' + + +def test_distinct_input_ids_do_not_merge_identical_selected_basis_bodies(reference): + outcome, selection = reference + # These two independently named source records already carry exactly the + # same selected declaration body in the reference; no evidence is altered + # merely to make this identity control pass. + first = next(pair for pair in selection.basis_entries + if pair[0].source.identifier == 'P4-ACTOR' and + pair[0].source.selector is None) + second_owner, second_body = next(pair for pair in selection.basis_entries + if pair[0].source.identifier == 'P4-CLAIM' and + pair[0].source.selector is None) + assert _selection_plain(first[1]) == _selection_plain(second_body) + document = _document(reference) + sources = {(first[0].source.collection, first[0].source.identifier, + first[0].source.selector), + (second_owner.source.collection, second_owner.source.identifier, + second_owner.source.selector)} + rows = [row for row in document['basis_index'] + if (row['source']['collection'], row['source']['identifier'], + row['source']['selector']) in sources] + assert len(rows) == 2 + assert rows[0]['id'] != rows[1]['id'] + assert {row['source']['identifier'] for row in rows} == { + first[0].source.identifier, second_owner.source.identifier + } + assert {key: value for key, value in rows[0].items() if key not in ('id', 'source')} == { + key: value for key, value in rows[1].items() if key not in ('id', 'source') + } + + +@pytest.mark.parametrize('marker', ( + ['z native first', 'a native second', 'z native first'], + ['witness_links', 'literal'], +)) +def test_selected_native_qualification_sequence_is_not_sorted_or_deduplicated(reference, + marker): + outcome, selection = reference + owner, frozen = selection.disclosures[0] + payload = _selection_plain(frozen) + assert payload['records'] + payload['records'][0]['qualifications'] = marker + selected = _selected_again(selection, + disclosures=((owner, payload),) + selection.disclosures[1:]) + document = _document(reference, selection=selected) + found = [] + + def walk(value): + if type(value) is dict: + if value.get('qualifications') == marker: + found.append(value) + for nested in value.values(): + walk(nested) + elif type(value) is list: + for nested in value: + walk(nested) + + walk(document) + assert found, 'native sequence and duplicate occurrence must survive assembly' + + +def _small_trace_homes(*, same_home, reverse, alias_scope=False): + """Exercise retained-trace bookkeeping without a fabricated full audit. + + Two trusted immutable trace payloads contain different starts. The tiny + container deliberately is not _AnalyticalOutcome and cannot enter the + report entry point; only the isolated internal witness composition runs. + Every expected member below is independently stated in this fixture. + """ + inquiry = r._InputRef('inquiries', 'IDENTITY-I') + scope = r._Scope(inquiry, (), (), None, 'claim_origin', + 'snapshot_structural', None, (), ('Finite identity fixture.',)) + source_refs = [r._InputRef('records', 'IDENTITY-' + name) for name in ('A', 'B')] + witness_refs = [r._WitnessRef(scope, 'member_set', ('complete_trace', name)) + for name in ('A', 'B')] + owners, selections = [], [] + for source, witness_ref in zip(source_refs, witness_refs): + node = ('node', source, 'evidence_item') + material = {name: () for name in ('nodes', 'edges', 'members', 'internal_edges', + 'exit_edges', 'starts', 'examined_nodes', 'examined_edges', + 'frontiers', 'terminals', 'observations')} + material.update(starts=(node,), examined_nodes=(node,), target=None) + payload = ('graph_witness', 'complete_trace', inquiry, (), None, + 'claim_origin', (), tuple(material.items()), 2) + retained_ref = (replace(witness_ref, scope=replace(scope)) + if alias_scope else witness_ref) + owner = report._WitnessRecord((retained_ref,), (payload,), (source,), 2) + owners.append(owner) + public_node = {'kind': 'evidence_item', 'ref': { + 'collection': 'records', 'identifier': source.identifier, 'selector': None}} + body = {name: [] for name in ('nodes', 'edges', 'members', 'internal_edges', + 'exit_edges', 'starts', 'examined_nodes', 'examined_edges', + 'frontiers', 'terminals', 'observations')} + body.update(type='graph_witness', kind='complete_trace', member_count=2, + starts=[public_node], examined_nodes=[public_node], target=None) + selections.append((owner, {'input_refs': [source], 'components': [body]})) + refs = [r._ResultRef('SIT-M008', 'evaluator_overlap_witnesses', scope)] + if not same_home: + refs.append(r._ResultRef('SIT-M011', 'declared_correction_route_witnesses', scope)) + results, findings, finding_selections = [], [], [] + for index, ref in enumerate(refs): + links = tuple(witness_refs) if same_home else (witness_refs[index],) + result = r._Result(ref, (), 'completed', 'available', 'graph_derivation', + 'witness_collection', r._WitnessCollection(links), (), (), links, (), + 'Trusted witness composition fixture; no analytical execution claim.') + results.append(result) + finding = report._PrivateFinding('qualification_gap', 'verification_scope_limitation', + (ref.diagnostic_id,), (), scope, (), (), + report._DetachedFindingWitness((inquiry,), + (('selected_members', (inquiry,), 1),), 2), (), (), (ref,), + 'Existing fixture finding ' + str(index), 'Finite internal scope only.', ()) + findings.append(finding) + finding_selections.append((finding, {'input_refs': [inquiry], 'components': [{ + 'type': 'selected_members', 'members': [inquiry], 'member_count': 1}]})) + if reverse: + owners.reverse() + results.reverse() + findings.reverse() + selections.reverse() + finding_selections.reverse() + selected = report._capture_report_disclosure((), (), tuple(finding_selections), + RecordingPort(), owner_witnesses=tuple(selections)) + container = SimpleNamespace(results=tuple(results), findings=tuple(findings), + witnesses=tuple(owners)) + port = RecordingPort(stop_after=10_000_000) + state = assembly_product._Assembly(container, selected, port) + for result in container.results: + state.result(result) + for finding in container.findings: + state.finding(finding) + assembly_product._assemble_witnesses(state) + state.identities_for_rows() + actual = {} + for collection in ('results', 'findings'): + actual[collection] = [] + for row in state.rows[collection]: + body = state.resolve(row['body']) + body['id'] = state.resolve_link(row['owner']) + actual[collection].append(_selection_plain(body)) + assert 0 < port.units <= 10_000_000 + return actual + + +def test_small_trace_homes_keep_own_result_links_across_discovery_orders(): + forward = _small_trace_homes(same_home=False, reverse=False) + backward = _small_trace_homes(same_home=False, reverse=True) + assert backward == forward + findings = {row['id']: row for row in forward['findings']} + assert len(findings) == 2 + for result in forward['results']: + assert len(result['witness_refs']) == 1 + finding = findings[result['witness_refs'][0]] + traces = [component for component in finding['witness']['components'] + if component.get('kind') == 'complete_trace'] + assert len(traces) == 1 + expected = 'IDENTITY-A' if result['diagnostic_id'] == 'SIT-M008' else 'IDENTITY-B' + assert [node['ref']['identifier'] for node in traces[0]['starts']] == [expected] + assert [node['ref']['identifier'] for node in traces[0]['examined_nodes']] == [expected] + assert finding['diagnostic_refs'] == [result['diagnostic_id']] + + +def test_small_same_finding_keeps_both_sequentially_appended_traces(): + forward = _small_trace_homes(same_home=True, reverse=False) + backward = _small_trace_homes(same_home=True, reverse=True) + assert backward == forward + assert len(forward['findings']) == len(forward['results']) == 1 + finding = forward['findings'][0] + assert forward['results'][0]['witness_refs'] == [finding['id']] + components = finding['witness']['components'] + assert components[0]['type'] == 'selected_members' + traces = [component for component in components if component.get('kind') == 'complete_trace'] + assert len(traces) == 2 + assert {node['ref']['identifier'] for trace in traces for node in trace['starts']} == { + 'IDENTITY-A', 'IDENTITY-B'} + assert all(trace['member_count'] == 2 for trace in traces) + + +def test_small_retained_witness_scope_alias_is_value_equal(): + original = _small_trace_homes(same_home=False, reverse=False) + aliases = _small_trace_homes(same_home=False, reverse=False, alias_scope=True) + assert aliases == original From ea96496b43365e5c5f5f7f4869945be4f5ea085f Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 01:06:58 -0700 Subject: [PATCH 09/21] Reuse source analysis within each current module verification call The W03 Windows 3.11 suite reached its unchanged 2400-second timeout, while Windows 3.13 completed with only seconds remaining. Current module verification repeatedly parsed and walked the same active sources for dependencies, effects and cycles. Share one freshly parsed, read-only AST and its import targets only within the current call, while retaining every rule and fresh later reads. Preserve all existing verification tests and add direct source-mutation and combined-diagnostic controls. Record the incomplete hosted result and pending post-commit validation without changing workflow, test scope or budgets. SIT-Phase-Unit: P4-W01 --- phase4/implementation_evidence.json | 2411 +++++++++--------- tests/contract/test_verification_boundary.py | 61 + tools/check_scaffold_boundary.py | 59 +- 3 files changed, 1366 insertions(+), 1165 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 8fa9bf6..6ea6c0b 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,11 +1,23 @@ { "phase": "P4", "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -17,269 +29,76 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." - }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." - ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" - ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 - }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" - }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } - }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] - } - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] - } - } + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" - }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } - }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." }, - "failures_and_repairs": [ - { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] - }, - { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] - }, - { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] - }, + "changes": [ { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." }, { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." }, { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." } ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" + ], + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { @@ -293,797 +112,269 @@ "post_merge_run": 38164028893 }, "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." }, "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." - }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." - }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." ], + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 - }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 - }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" - } + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" } }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" - }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 - }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" - }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } - }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } - ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" - }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" - } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" } - } + }, + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." }, "failures_and_repairs": [ { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" ] }, { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" ] }, { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" ] }, { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" ] }, { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" ] }, { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" - ] - }, - { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } - ] - }, - { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" ] } ], "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -1095,225 +386,1033 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 + }, + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + }, + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, "package_boundary": { "result": "passed", - "stage": 1, + "activation_stage": 2, "checked_modules": 48, - "byte_protected_modules": 48 + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + }, + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] + }, + { + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] + }, + { + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] + }, + { + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] + }, + { + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." } ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" } diff --git a/tests/contract/test_verification_boundary.py b/tests/contract/test_verification_boundary.py index 26ef1d1..e9626bd 100644 --- a/tests/contract/test_verification_boundary.py +++ b/tests/contract/test_verification_boundary.py @@ -1332,3 +1332,64 @@ def test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit(repo): merged = git(repo, 'rev-parse', 'HEAD').decode().strip() with pytest.raises(ValueError, match='^current_unit_out_of_order$'): guard.current_history(repo, ANCHOR, merged) + + +def test_current_source_checks_parse_fresh_after_mutation_and_restoration(current_stage, monkeypatch): + sources = module_sources() + path = 'contracts/report.py' + marker = 'fresh_source_observation_for_guard' + good = sources[path] + ('\n# ' + marker + '\n').encode() + bad = good + b'\ndef prohibited_probe():\n return open("private")\n' + observed = [] + original_parse = guard.ast.parse + + def parse(source, *args, **kwargs): + if isinstance(source, str) and marker in source: + observed.append('bad' if 'prohibited_probe' in source else 'good') + return original_parse(source, *args, **kwargs) + + monkeypatch.setattr(guard.ast, 'parse', parse) + for raw, expected, observation in ( + (good, [], 'good'), + (bad, [(path, 'forbidden_effect')], 'bad'), + (good, [], 'good'), + ): + sources[path] = raw + first = len(observed) + assert guard.current_module_issues(sources, stage=current_stage) == expected + assert observed[first:] and set(observed[first:]) == {observation} + first = len(observed) + assert guard.current_live_issues(path, raw.decode(), stage=current_stage) == [ + code for unused, code in expected] + assert observed[first:] and set(observed[first:]) == {observation} + + # A previous acyclic result must not authorize the next source mapping. + graph = {'reporting/escaping.py': '', 'reporting/json_report.py': 'from . import escaping\n'} + assert guard.phase3_import_cycle_issues(graph) == [] + graph['reporting/escaping.py'] = 'from . import json_report\n' + assert guard.phase3_import_cycle_issues(graph) == ['import_cycle'] + graph['reporting/escaping.py'] = '' + assert guard.phase3_import_cycle_issues(graph) == [] + + +def test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics(current_stage): + sources = module_sources() + assert guard.current_module_issues(sources, stage=current_stage) == [] + changed = dict(sources) + changed['contracts/report.py'] = b'import socket\n\ndef prohibited_probe():\n return open("private")\n' + changed['cli.py'] = b'import socket\n' + unchanged_scaffold_failures = { + ('cli.py', 'accepted_blob_changed'), + ('cli.py', 'non_scaffold_body'), + ('cli.py', 'unapproved_import'), + } + assert set(guard.current_module_issues(changed, stage=current_stage)) == unchanged_scaffold_failures | { + ('contracts/report.py', 'forbidden_effect'), + ('contracts/report.py', 'unapproved_import'), + } + changed['contracts/report.py'] = b'def (\n' + assert set(guard.current_module_issues(changed, stage=current_stage)) == unchanged_scaffold_failures | { + ('contracts/report.py', 'invalid_python'), + ('src/source_integrity_toolkit', 'invalid_python'), + } + assert guard.current_module_issues(sources, stage=current_stage) == [] diff --git a/tools/check_scaffold_boundary.py b/tools/check_scaffold_boundary.py index 0b5002f..8906d2c 100644 --- a/tools/check_scaffold_boundary.py +++ b/tools/check_scaffold_boundary.py @@ -273,6 +273,12 @@ def _dependency_issues(path, source, active, prefix="", *, stage=1): except (SyntaxError, ValueError, RecursionError): return ["invalid_python"] targets, issues = phase3_import_targets(path, tree) + return _dependency_target_issues(path, targets, issues, active, prefix, stage=stage) + + +def _dependency_target_issues(path, targets, import_issues, active, prefix="", *, stage=1): + """Apply every dependency rule to targets parsed by the current caller.""" + issues = list(import_issues) by_name = {module_name(p): p for p in EXPECTED_PATHS} for target in targets: if target in SAFE_IMPORTS or (path == "runtime/resources.py" and target == "time"): @@ -296,14 +302,20 @@ def _dependency_issues(path, source, active, prefix="", *, stage=1): def phase3_import_cycle_issues(sources): - by_name = {module_name(p): p for p in sources} - dependencies = {} + targets_by_path = {} for path, source in sources.items(): try: targets, _ = phase3_import_targets(path, ast.parse(source)) except (SyntaxError, ValueError, RecursionError): return ["invalid_python"] - dependencies[path] = {by_name[t] for t in targets if t in by_name} + targets_by_path[path] = targets + return _import_target_cycle_issues(targets_by_path) + + +def _import_target_cycle_issues(targets_by_path): + by_name = {module_name(p): p for p in targets_by_path} + dependencies = {path: {by_name[t] for t in targets if t in by_name} + for path, targets in targets_by_path.items()} try: tuple(TopologicalSorter(dependencies).static_order()) except CycleError: @@ -313,11 +325,16 @@ def phase3_import_cycle_issues(sources): def _source_effect_issues(path, source): """Conservative static effect checks, independent of development stage.""" - issues = [] try: tree = ast.parse(source) except (SyntaxError, ValueError, RecursionError): return ["invalid_python"] + return _source_tree_effect_issues(path, tree) + + +def _source_tree_effect_issues(path, tree): + """Read-only checks on this invocation's freshly parsed source tree.""" + issues = [] for node in ast.walk(tree): if isinstance(node, ast.Name) and node.id in FORBIDDEN_NAMES: issues.append("forbidden_effect") @@ -993,7 +1010,13 @@ def current_live_issues(path, source, stage=1): active = current_active(stage) if path not in active: return ["unapproved_live_module"] - return sorted(set(_dependency_issues(path, source, active, stage=stage) + _source_effect_issues(path, source))) + try: + tree = ast.parse(source) + except (SyntaxError, ValueError, RecursionError): + return ["invalid_python"] + targets, import_issues = phase3_import_targets(path, tree) + return sorted(set(_dependency_target_issues(path, targets, import_issues, active, stage=stage) + + _source_tree_effect_issues(path, tree))) def current_layer_issues(path, source, stage=1): active = current_active(stage) @@ -1003,7 +1026,10 @@ def current_layer_issues(path, source, stage=1): def current_module_issues(sources, stage=1): """All 48 baseline bodies stay pinned until their explicit activation stage.""" active = current_active(stage) - issues, decoded = [], {} + # Trees and targets exist only within this call. Every source is read and + # parsed anew on the next invocation; no authorization verdict is cached. + issues, decoded, targets_by_path = [], {}, {} + invalid_cycle_source = False for path in sorted(set(sources) | set(EXPECTED_PATHS)): if path not in EXPECTED_PATHS: issues.append((path, "unexpected_module")); continue @@ -1019,8 +1045,21 @@ def current_module_issues(sources, stage=1): except UnicodeDecodeError: issues.append((path, "invalid_utf8")); continue decoded[path] = source - codes = (current_live_issues(path, source, stage) - if path in active else _phase2_layer_issues(path, source) + form_issues(path, source)) + try: + tree = ast.parse(source) + except (SyntaxError, ValueError, RecursionError): + invalid_cycle_source = True + codes = ["invalid_python"] + else: + targets, import_issues = phase3_import_targets(path, tree) + targets_by_path[path] = targets + if path in active: + codes = (_dependency_target_issues(path, targets, import_issues, active, stage=stage) + + _source_tree_effect_issues(path, tree)) + else: + # Scaffold comparison removes docstrings from its own parse; + # never let it mutate the tree used for dependency inspection. + codes = _phase2_layer_issues(path, source) + form_issues(path, source) issues.extend((path, code) for code in codes) if stage >= 8 and "__init__.py" in decoded: try: @@ -1037,7 +1076,9 @@ def current_module_issues(sources, stage=1): issues.append(("api.py", "accepted_audit_file_changed")) except (SyntaxError, ValueError): issues.append(("api.py", "invalid_python")) - issues.extend(("src/" + PACKAGE, code) for code in phase3_import_cycle_issues(decoded)) + cycle_issues = (["invalid_python"] if invalid_cycle_source + else _import_target_cycle_issues(targets_by_path)) + issues.extend(("src/" + PACKAGE, code) for code in cycle_issues) return sorted(set(issues)) From dfbbbac7a187cbb7a37d775ea7fbc786b82d1110 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 01:07:05 -0700 Subject: [PATCH 10/21] Select bounded report disclosures with explicit privacy-preserving fields Connect the real selected-field producer to logical assembly through one supplied internal port. Preserve native attribution, support, qualifications, ordered owner material and unresolved or protected relationships while excluding unselected source content. Recognize retained correction components in their already validated Finding homes. Add actual-selector and privacy preservation controls, keep independent goldens and public entry-point refusals, and record the separately owned verification repair and actual local results. Hosted final-candidate status remains external. SIT-Phase-Unit: P4-W04 --- phase4/implementation_evidence.json | 3304 +++++++++++------ phase4/report_contract_coverage.json | 123 +- .../reporting/assemble.py | 20 +- .../runtime/disclosure.py | 709 +++- tests/contract/test_report_assembly.py | 209 +- .../adversarial/phase4_report_cases.json | 1789 +++++++++ tests/security/test_report_disclosure.py | 327 ++ 7 files changed, 5223 insertions(+), 1258 deletions(-) create mode 100644 tests/fixtures/adversarial/phase4_report_cases.json create mode 100644 tests/security/test_report_disclosure.py diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 6ea6c0b..70f6803 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,105 +1,862 @@ { "phase": "P4", - "current_unit": "P4-W03", - "active_repair_owner_unit": "P4-W01", - "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", + "current_unit": "P4-W04", + "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", "owner_authorization": { "instruction": "W04继续", - "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", - "owner_unit": "P4-W01", - "activation_stage": 3, - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "previous_checkpoint": { "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "local_targeted_tests": 5982, - "hosted_run": 40170942968, - "attempt": 1, - "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + "W03_local_targeted_tests": 5982, + "hosted_result": { + "run_id": 40170942968, + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "attempt": 1, + "run_status": "completed", + "run_conclusion": "failure", + "failed_profile": { + "matrix": "windows-2025 / Python 3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "artifact_bytes": 244690, + "raw_files": 47, + "pytest_exit": { + "error_type": "TimeoutExpired", + "exit_code": null, + "incomplete": true, + "interrupted": false, + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "timed_out": true, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "TimeoutExpired", + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "collection_count": 9653, + "junit_present": false, + "test_record_present": false, + "source_after_present": false, + "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." + }, + "comparison_profile": { + "matrix": "windows-2025 / Python 3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "artifact_bytes": 363913, + "pytest_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", + "timing": "windows313-timing-focused.json", + "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + }, + "diagnostic_profile": "guard-single-call-profile.json", + "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", + "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + }, + "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + }, + "inherited_W01_repair": { + "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", + "owner": "P4-W01", + "activation_stage": 3, + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "tests/scaffold/test_imports.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_module_manifest.py", + "tests/security/test_preparation_inertness.py", + "tests/scaffold/test_ci_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + ], + "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "started_at_utc": "2026-10-25T07:57:05.151778+00:00", + "elapsed_seconds": 259.7052340929986, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_count": 224, + "source_hashes_unchanged": true, + "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "576", + "time": "259.471", + "timestamp": "2026-10-25T01:57:05.272902-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_verification_boundary": 213, + "tests.scaffold.test_imports": 50, + "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, + "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, + "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, + "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, + "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, + "tests.security.test_preparation_inertness": 39, + "tests.scaffold.test_ci_contract.CiContractTests": 14, + "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, + "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + }, + "collection_preservation": { + "before_exit": 0, + "after_exit": 0, + "before_count": 211, + "after_count": 213, + "original_211_ordered_cases_unchanged": true, + "added": [ + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "before_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + ], + "after_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ] + }, + "same_source_timing": { + "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "module_sha256": { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", + "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + }, + "guard_sha256": { + "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", + "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + }, + "seconds": { + "before": [ + 1.170046082999761, + 1.182108517998131, + 1.114261736998742 + ], + "after": [ + 0.6021103010025399, + 0.5637806820013793, + 0.5558995499995945 + ] + }, + "median_seconds": { + "before": 1.170046082999761, + "after": 0.5637806820013793 + }, + "same_empty_issues": { + "before": [], + "after": [] + }, + "after_parse_counts": { + "current_module_issues": 48, + "_phase2_layer_issues": 18, + "executable_ast": 36 + } + }, + "raw_directory": "p4w04-w01-repair", + "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" + "changes": [ + "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", + "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", + "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", + "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", + "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + ], + "changed_scope": { + "W04": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/runtime/disclosure.py", + "tests/contract/test_report_assembly.py", + "tests/security/test_report_disclosure.py", + "tests/fixtures/adversarial/phase4_report_cases.json", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "separate_W01": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" }, - "failure_diagnosis": { - "failed_profile": "windows-2025 Python3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "raw_files": 47, - "pytest": { - "exit_code": null, - "error_type": "TimeoutExpired", - "timeout_seconds": 2400, - "timed_out": true, - "incomplete": true, - "junit_present": false + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" }, - "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", - "comparison": { - "profile": "windows-2025 Python3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "passed_tests": 9653, - "successful_subtests": 533, - "pytest_seconds": 2397.33, - "junit_seconds": 2397.258, - "testcase_seconds": 2388.211, - "V02_seconds": 668.918, - "largest_V02_case_seconds": 145.581, - "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 }, - "raw_directory": "p4w04-prior-ci-diagnosis", - "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + }, + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + }, + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + }, + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + } + }, + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } }, - "changes": [ + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 4, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 17, + "entry_byte_protected_modules": 44, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "failure": "Initial product reference differed only in the set order of Finding input references.", + "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", + "raw": "p4w04-product-reference-01" + }, { - "path": "tools/check_scaffold_boundary.py", - "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", + "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", + "raw": [ + "p4w04-security-001", + "p4w04-product-frontier-01" + ] }, { - "path": "tests/contract/test_verification_boundary.py", - "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", + "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", + "raw": [ + "p4w04-correction-home-diagnosis.json", + "p4w04-security-001", + "p4w04-security-002" + ] }, { - "path": "phase4/implementation_evidence.json", - "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", + "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", + "raw": [ + "p4w04-n02-full-01", + "p4w04-scan-fixture-trace-01", + "p4w04-security-001" + ] } ], - "preserved_guarantees": [ - "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", - "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", - "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", - "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", - "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." - ], - "validation": { - "state": "pending after this locally reviewable commit", - "original_V02_definitions": 62, - "changed_existing_V02_definitions": [], - "added_V02_tests": [ - "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", - "test_current_source_checks_parse_fresh_after_mutation_and_restoration" - ], - "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." + "remaining": { + "W05_W06": "JSON and Markdown product encoders pending", + "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", + "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", + "W09_W10": "Full public obligation execution and final phase acceptance pending", + "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", + "file_native_cli_release": "Deferred" }, "historical_records": [ { "phase": "P4", "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -111,269 +868,76 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." - }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." - ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" - ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 - }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" - }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] - } - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] - } - } + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" - }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } - }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." }, - "failures_and_repairs": [ - { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] - }, - { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] - }, - { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] - }, + "changes": [ { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." }, { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." }, { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." } ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" + ], + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { @@ -387,797 +951,269 @@ "post_merge_run": 38164028893 }, "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." }, "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." - }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." - }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." ], + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 - }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 - }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" - } + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" } }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" - }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 - }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" - }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } - }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } - ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" - }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" - } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" } - } - }, - "failures_and_repairs": [ - { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + }, + "failures_and_repairs": [ { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" ] }, { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" ] }, { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" ] }, { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" ] }, { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" ] }, { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" ] } ], "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -1189,230 +1225,1038 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 + }, + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + }, + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, "package_boundary": { "result": "passed", - "stage": 1, + "activation_stage": 2, "checked_modules": 48, - "byte_protected_modules": 48 + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + }, + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] + }, + { + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." + }, + { + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." + }, + { + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] + }, + { + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." } ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" } ], - "authority_notice": "Review-only evidence, not authority, product input or test selection.", - "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", - "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" + "authority_notice": "Review-only evidence; not product input or authorization policy.", + "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", + "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index 9880070..0d2875d 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,12 +1,12 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W03", - "status": "W03 bounded internal assembly, semantic identity and reference closure verified; public pipeline/rendering obligations remain pending", + "unit": "P4-W04", + "status": "W04 actual internal selected-field disclosure and assembly verified on bounded real outcomes; public delivery and rendering remain pending", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", "sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "owner_authorization": "Exact plan approved; user instructed 很好,继续 W03. Execution authorized through P4-W03 only." + "owner_authorization": "User instructed W04继续; approved plan permits necessary repairs under their original owner scope. No W05+, merge or release authorization." }, "accepted_core_baseline": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -11818,7 +11818,7 @@ "required_behavior": "Aggregate private per-inquiry domains into exactly five report-global audit entries; preserve the six named domain members and avoid adding a not_applicable domain field.", "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", "actual_test_nodes": [ - "tests/contract/test_report_assembly.py::test_two_independent_inquiries_keep_thirty_capabilities_but_five_global_domains" + "tests/contract/test_report_assembly.py::test_small_two_inquiries_keep_all_families_and_five_global_domains" ], "execution_evidence": [ "p4w03-targeted-002.log", @@ -11833,7 +11833,7 @@ "status": "W03 internal assembly verified by actual targeted execution; public runtime projection remains pending W04/W07/W08", "actual_test_nodes": [ "tests/contract/test_report_assembly.py::test_reference_partitions_and_target_kinds_are_independently_closed", - "tests/contract/test_report_assembly.py::test_two_independent_inquiries_keep_thirty_capabilities_but_five_global_domains", + "tests/contract/test_report_assembly.py::test_small_two_inquiries_keep_all_families_and_five_global_domains", "tests/contract/test_report_assembly.py::test_reference_validator_rejects_independent_single_reference_mutants" ], "execution_evidence": [ @@ -11846,9 +11846,15 @@ "source": "OBSERVABILITY_AND_REPORTING.md §16.6; PRIVACY_AND_DATA_HANDLING.md §4.2", "planned_unit": "P4-W04", "required_behavior": "Bounded explicit selection of source-native basis, attestor/asserter, method, support, availability, time/lifecycle and qualifications with actual checks; no requalification or full-record export.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W04 actual internal selector and assembly verified; public invocation remains pending W07/W08", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_runtime_disclosure_assembles_exact_independent_reference", + "tests/security/test_report_disclosure.py::test_required_basis_attribution_support_availability_and_limits_remain" + ], + "execution_evidence": [ + "p4w04-targeted-001.log", + "p4w04-targeted-001.xml" + ] }, { "clause": "witness_finding_links", @@ -11874,9 +11880,20 @@ "source": "PRIVACY_AND_DATA_HANDLING.md §§4.1–4.4; PHASE_4_PLAN.md §4.4", "planned_unit": "P4-W04", "required_behavior": "One explicit projection feeds both formats; exclude automatic full records, excerpts, contact/display names, identity keys, extensions and local paths; preserve required IDs, context, method, native outcomes and qualifications.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "W04 actual internal selector and assembly verified; public invocation remains pending W07/W08", + "actual_test_nodes": [ + "tests/security/test_report_disclosure.py::test_excluded_source_values_are_absent_from_complete_report", + "tests/security/test_report_disclosure.py::test_selected_fragments_do_not_export_full_source_containers", + "tests/security/test_report_disclosure.py::test_required_context_method_and_ordered_qualifications_remain", + "tests/security/test_report_disclosure.py::test_native_correction_outcomes_keep_attribution_and_do_not_set_run_state", + "tests/security/test_report_disclosure.py::test_two_protected_seed_paths_preserve_one_common_origin", + "tests/security/test_report_disclosure.py::test_withheld_frontier_does_not_become_an_independent_or_unrelated_origin", + "tests/contract/test_report_assembly.py::test_runtime_review_scan_and_repeated_source_slots_keep_owner_order" + ], + "execution_evidence": [ + "p4w04-targeted-001.log", + "p4w04-targeted-001.xml" + ] }, { "clause": "canonical_json", @@ -15030,5 +15047,89 @@ "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + }, + "w04_verification": { + "targeted": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + }, + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + }, + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + }, + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + } + }, + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } + }, + "evidence_pointer_correction": { + "old": "tests/contract/test_report_assembly.py::test_two_independent_inquiries_keep_thirty_capabilities_but_five_global_domains", + "actual": "tests/contract/test_report_assembly.py::test_small_two_inquiries_keep_all_families_and_five_global_domains", + "meaning": "Corrects a stale W03 evidence pointer only. The actual accepted compact-case test is unchanged." + }, + "static_mapping_review": "47 concrete native/time field rules and five variant dispatch maps match the frozen schema. This mapping review does not claim actual execution of every public obligation or every variant.", + "implementation": "All nineteen registered disclosure field branches and six retained witness forms use explicit selected fields. No runtime schema or generic source-record export.", + "pending": "All 228 public-pipeline/rendering obligation rows remain pending W09; W07 shared invocation and W08 public delivery are not represented by these component tests." } } diff --git a/src/source_integrity_toolkit/reporting/assemble.py b/src/source_integrity_toolkit/reporting/assemble.py index 65a7aa5..f5a13ac 100644 --- a/src/source_integrity_toolkit/reporting/assemble.py +++ b/src/source_integrity_toolkit/reporting/assemble.py @@ -866,7 +866,7 @@ def _assemble_witnesses(assembly): if len(consumed[id(record)]) != len(record.payload): selected_records.append((record, related, selected, canonical, targets)) else: - _witness_home(record, related, assembly) + _witness_home(record, related, assembly, consumed[id(record)]) for ref in record.refs: key = _anchor(ref, port) _charge_key(key, port) @@ -1033,7 +1033,7 @@ def _material_refs(value, port): return tuple(refs) -def _witness_home(record, related, assembly): +def _witness_home(record, related, assembly, represented=()): """Owner material has explicit homes, without inventing carrier Findings.""" port = assembly.port allowed = ('inventory_witness', 'comparison_witness', 'selected_members', @@ -1056,10 +1056,18 @@ def _witness_home(record, related, assembly): for row in _field(selected, 'records', port): homes.append(_as_input(_field(row, 'source', port), port)) keys = _ref_keys(homes, port) - for ref in _material_refs(record.payload, port): - key = _anchor(ref, port) - _charge_key((key, keys), port) - _require(key in keys) + for index, payload in enumerate(record.payload): + port.charge(2) + # These indices come from exact same-Scope matches to owner components + # in Findings whose selected witnesses were already checked in finding(). + # Their ordered source slots have that concrete public home, including + # nullable correction-case fields absent from a Result's root references. + if index in represented: + continue + for ref in _material_refs((payload,), port): + key = _anchor(ref, port) + _charge_key((key, keys), port) + _require(key in keys) def _trace_home(group, assembly): diff --git a/src/source_integrity_toolkit/runtime/disclosure.py b/src/source_integrity_toolkit/runtime/disclosure.py index b543c75..a0550e0 100644 --- a/src/source_integrity_toolkit/runtime/disclosure.py +++ b/src/source_integrity_toolkit/runtime/disclosure.py @@ -1,10 +1,707 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Non-operational Phase 1 slot: runtime/disclosure. +"""Bounded explicit report disclosure selection over accepted private owners. -Owner: RUNTIME_BOUNDARY. -Authority: REPOSITORY_ARCHITECTURE.md sections 5-10 and 16-20; -PHASE_1_PLAN.md sections 4 and 6. -Specification adopted; scaffold slot present; behavior unimplemented. -No validation, traversal, scoring, rendering, I/O or native binding is provided. +Owner: RUNTIME_BOUNDARY. The literal named-field selections below implement +PRIVACY_AND_DATA_HANDLING section 4 and the approved SelectedNative fragments. +Unlisted source values are never recursively copied or inspected for content. +This module does not anonymize inputs, qualify premises, or activate public APIs. """ +from ..contracts import report as _c +from ..contracts import results as _r +from ..contracts.bundle import _Object, _Array, _Number +from ..contracts.evidence import _PreparedBundle +from ..contracts.execution import _byte_work +from ..reporting import assemble as _a + +# Explicit source-field allowlists, transcribed from the frozen Selected* and +# TimeValue/TimeWindow definitions. Only these named fields are read into output; +# optional fields retain actual absence. This is not a source-record serializer. +_SHAPES = {'TimeValue': (('state', 'scalar', True), + ('value', ('nullable', 'scalar'), True), + ('precision', ('nullable', 'scalar'), True), + ('reason', 'scalar', False)), + 'TimeWindow': (('start', 'TimeValue', True), ('end', 'TimeValue', True), ('note', 'scalar', False)), + 'SelectedProvenance': (('attributed_to_ref', ('nullable', 'scalar'), True), + ('basis_kind', 'scalar', True), + ('evidence_ref_ids', ('array', 'scalar'), True), + ('method', ('nullable', 'scalar'), True), + ('qualifications', ('array', 'scalar'), True)), + 'SelectedGap': (('field', 'scalar', True), ('reason', 'scalar', True), ('detail', 'scalar', True)), + 'SelectedEvidenceReference': (('id', 'scalar', True), + ('reference_kind', 'scalar', True), + ('availability', 'scalar', True), + ('artifact_ref', ('nullable', 'scalar'), True), + ('record_ref', ('nullable', 'scalar'), True), + ('provided_by_ref', ('nullable', 'scalar'), True), + ('attestor_ref', ('nullable', 'scalar'), True), + ('scope_note', 'scalar', True), + ('gaps', ('array', 'SelectedGap'), False)), + 'SelectedInquiry': (('id', 'scalar', True), + ('target_claim_refs', ('array', 'scalar'), True), + ('target_object_refs', ('array', 'scalar'), True), + ('seed_artifact_refs', ('array', 'scalar'), True), + ('seed_evidence_refs', ('array', 'scalar'), True), + ('boundary', 'SelectedBoundary', True), + ('time_window', 'TimeWindow', True), + ('as_of', 'TimeValue', True), + ('dependency_dimensions', ('array', 'scalar'), True), + ('coverage_assertion_refs', ('array', 'scalar'), True), + ('provenance', 'SelectedProvenance', True), + ('gaps', ('array', 'SelectedGap'), False)), + 'SelectedBoundary': (('description', 'scalar', True), + ('criterion', 'scalar', True), + ('system_refs', ('array', 'scalar'), True)), + 'SelectedRecord': (('id', 'scalar', True), + ('kind', 'scalar', True), + ('data', 'SelectedRecordData', True), + ('provenance', 'SelectedProvenance', True), + ('gaps', ('array', 'SelectedGap'), False)), + 'SelectedClaimData': (('claim_key', 'scalar', True), + ('version_label', ('nullable', 'scalar'), True), + ('content_evidence_ref', 'scalar', False), + ('context', 'scalar', True)), + 'SelectedArtifactData': (('artifact_kind', 'scalar', True), + ('version_label', ('nullable', 'scalar'), True), + ('published_at', 'TimeValue', True), + ('retrieved_at', 'TimeValue', True), + ('content_evidence_refs', ('array', 'scalar'), True)), + 'SelectedActorData': (('actor_kind', 'scalar', True), ('identity_disclosure', 'scalar', True)), + 'SelectedEvidenceItemData': (('claim_ref', 'scalar', True), + ('artifact_ref', 'scalar', True), + ('epistemic_type', 'scalar', True), + ('description', 'scalar', True)), + 'SelectedOriginEventData': (('event_kind', 'scalar', True), + ('event_key', ('nullable', 'scalar'), True), + ('performed_by_refs', ('array', 'scalar'), True), + ('method_ref', ('nullable', 'scalar'), True), + ('occurred_at', 'TimeValue', True), + ('description', 'scalar', True)), + 'SelectedModelData': (('model_key', 'scalar', True), + ('version_label', ('nullable', 'scalar'), True), + ('family_label', ('nullable', 'scalar'), True), + ('provider_ref', ('nullable', 'scalar'), True)), + 'SelectedEvaluationData': (('evaluation_kind', 'scalar', True), + ('target_refs', ('array', 'scalar'), True), + ('role_bindings', ('array', 'SelectedRoleBinding'), True), + ('result_refs', ('array', 'scalar'), True), + ('occurred_at', 'TimeValue', True), + ('review_contribution', ('nullable', 'scalar'), True)), + 'SelectedRoleBinding': (('role', 'scalar', True), + ('object_ref', 'scalar', True), + ('evidence_ref_ids', ('array', 'scalar'), True), + ('qualifications', ('array', 'scalar'), True)), + 'SelectedCorrectionChannelData': (('owner_refs', ('array', 'scalar'), True), + ('target_refs', ('array', 'scalar'), True), + ('declared_action_types', ('array', 'scalar'), True), + ('valid_window', 'TimeWindow', True)), + 'SelectedCorrectionEventData': (('event_kind', 'scalar', True), + ('case_ref', ('nullable', 'scalar'), True), + ('channel_ref', ('nullable', 'scalar'), True), + ('target_refs', ('array', 'scalar'), True), + ('occurred_at', 'TimeValue', True), + ('details', 'SelectedCorrectionDetails', True)), + 'SelectedSubmissionDetails': (('submission_kind', 'scalar', True), ('summary', 'scalar', True)), + 'SelectedHandlingDetails': (('outcome', 'scalar', True), ('reason', ('nullable', 'scalar'), True)), + 'SelectedChangeDetails': (('action_type', 'scalar', True), + ('before_ref', 'scalar', True), + ('after_ref', ('nullable', 'scalar'), True), + ('after_absence_reason', ('nullable', 'scalar'), True), + ('linkage_description', 'scalar', True)), + 'SelectedPipelineRecordData': (('subject_ref', 'scalar', True), + ('run_key', 'scalar', True), + ('stage_key', 'scalar', True), + ('stage', 'scalar', True), + ('state', 'scalar', True), + ('output_refs', ('array', 'scalar'), True), + ('observed_at', 'TimeValue', True), + ('linkage_kind', 'scalar', True), + ('detail', 'scalar', True)), + 'SelectedAnomalyData': (('inquiry_refs', ('array', 'scalar'), True), + ('claim_ref', ('nullable', 'scalar'), True), + ('original_context', ('nullable', 'scalar'), True), + ('context_evidence_ref', ('nullable', 'scalar'), True), + ('classification_state', 'scalar', True), + ('caller_label', ('nullable', 'scalar'), True), + ('comparison_note', ('nullable', 'scalar'), True)), + 'SelectedUnresolvedReferenceData': (('expected_kinds', ('array', 'scalar'), True), + ('reason', 'scalar', True), + ('description', 'scalar', True)), + 'SelectedAssertion': (('id', 'scalar', True), + ('assertion_kind', 'scalar', True), + ('scope', 'SelectedAssertionScope', True), + ('provenance', 'SelectedProvenance', True), + ('asserted_at', 'TimeValue', True), + ('lifecycle_state', 'scalar', True), + ('lifecycle_basis_ref_ids', ('array', 'scalar'), True), + ('data', 'SelectedAssertionData', True), + ('gaps', ('array', 'SelectedGap'), False)), + 'SelectedAssertionScope': (('inquiry_refs', ('array', 'scalar'), True), + ('claim_refs', ('array', 'scalar'), True), + ('effective_window', 'TimeWindow', True)), + 'SelectedRelationData': (('predicate', 'scalar', True), + ('from_ref', 'scalar', True), + ('to_ref', 'scalar', True), + ('polarity', 'scalar', True), + ('dimension', ('nullable', 'scalar'), True), + ('details', 'SelectedRelationDetails', True)), + 'SelectedStanceDetails': (('note', 'scalar', False),), + 'SelectedCitationDetails': (('note', 'scalar', False),), + 'SelectedTransformationDetails': (('transformer_ref', 'scalar', False), + ('method_ref', 'scalar', False), + ('occurred_at', 'TimeValue', False), + ('portion_note', 'scalar', False)), + 'SelectedOriginDetails': (('dependency_note', 'scalar', False), ('portion_note', 'scalar', False)), + 'SelectedAgentDetails': (('role_note', 'scalar', False), ('valid_window', 'TimeWindow', False)), + 'SelectedModelDetails': (('stage_note', 'scalar', False), + ('subset_descriptor', 'scalar', False), + ('occurred_at', 'TimeValue', False)), + 'SelectedRetrievalDetails': (('retrieval_time', 'TimeValue', False), ('portion_note', 'scalar', False)), + 'SelectedRouteDetails': (('action_type', 'scalar', True), + ('valid_window', 'TimeWindow', True), + ('route_note', 'scalar', False)), + 'SelectedSupersessionDetails': (('reason', 'scalar', True), ('effective_at', 'TimeValue', False)), + 'SelectedIdentityDetails': (('identity_level', 'scalar', True), ('identity_note', 'scalar', False)), + 'SelectedAssessmentData': (('assessment_kind', 'scalar', True), + ('subject_refs', ('array', 'scalar'), True), + ('details', 'SelectedAssessmentDetails', True)), + 'SelectedOriginBoundaryDetails': (('dimension', 'scalar', True), + ('boundary_role', 'scalar', True), + ('coverage_ref', ('nullable', 'scalar'), True), + ('termination_reason', 'scalar', True)), + 'SelectedIndependenceDetails': (('comparison_form', 'scalar', True), + ('dimension', 'scalar', True), + ('conclusion', 'scalar', True), + ('examined_dependency_refs', ('array', 'scalar'), True), + ('unexamined_dimensions', ('array', 'scalar'), True), + ('coverage_ref', ('nullable', 'scalar'), True), + ('scope_note', 'scalar', True)), + 'SelectedCoverageDetails': (('coverage_kind', 'scalar', True), + ('state', 'scalar', True), + ('relation_types', ('array', 'scalar'), True), + ('dimensions', ('array', 'scalar'), True), + ('member_refs', ('array', 'scalar'), True), + ('omitted_refs', ('array', 'scalar'), True), + ('universe_enumerated', 'scalar', True), + ('scope_note', 'scalar', True)), + 'SelectedClassificationDetails': (('axis', 'scalar', True), + ('labels', ('array', 'scalar'), True), + ('verification_assessment_refs', ('array', 'scalar'), True), + ('scope_note', 'scalar', True)), + 'SelectedVerificationDetails': (('verification_scope', 'scalar', True), + ('evaluation_ref', ('nullable', 'scalar'), True), + ('reported_outcome', 'scalar', True), + ('valid_window', 'TimeWindow', True), + ('scope_note', 'scalar', True)), + 'SelectedExternalityDetails': (('boundary_inquiry_ref', 'scalar', True), + ('conclusion', 'scalar', True), + ('grounding_basis', ('nullable', 'scalar'), True), + ('relevant_time', 'TimeValue', True)), + 'SelectedAuthorityDetails': (('target_refs', ('array', 'scalar'), True), + ('action_types', ('array', 'scalar'), True), + ('valid_window', 'TimeWindow', True), + ('authorized_by_ref', 'scalar', True), + ('grant_state', 'scalar', True), + ('authority_basis', ('nullable', 'scalar'), True), + ('coverage_ref', ('nullable', 'scalar'), True)), + 'SelectedCapacityDetails': (('reported_capacity', ('nullable', 'scalar'), True), + ('unit', ('nullable', 'scalar'), True), + ('horizon', 'TimeWindow', True), + ('reported_load', ('nullable', 'scalar'), True), + ('scope_note', 'scalar', True)), + 'SelectedConflictDetails': (('conflict_kind', 'scalar', True), + ('resolution_state', 'scalar', True), + ('resolution_evaluation_ref', ('nullable', 'scalar'), True), + ('scope_note', 'scalar', True))} + +_DISCRIMINATORS = { + 'SelectedRecord': ('kind', 'data', { + 'claim': 'SelectedClaimData', 'artifact': 'SelectedArtifactData', + 'actor': 'SelectedActorData', 'evidence_item': 'SelectedEvidenceItemData', + 'origin_event': 'SelectedOriginEventData', 'model': 'SelectedModelData', + 'evaluation': 'SelectedEvaluationData', 'correction_channel': 'SelectedCorrectionChannelData', + 'correction_event': 'SelectedCorrectionEventData', 'pipeline_record': 'SelectedPipelineRecordData', + 'anomaly': 'SelectedAnomalyData', 'unresolved_reference': 'SelectedUnresolvedReferenceData'}), + 'SelectedAssertion': ('assertion_kind', 'data', { + 'relation': 'SelectedRelationData', 'assessment': 'SelectedAssessmentData'}), + 'SelectedCorrectionEventData': ('event_kind', 'details', { + 'submission': 'SelectedSubmissionDetails', 'handling': 'SelectedHandlingDetails', + 'change': 'SelectedChangeDetails'}), + 'SelectedRelationData': ('predicate', 'details', { + 'supports': 'SelectedStanceDetails', 'contradicts': 'SelectedStanceDetails', + 'describes': 'SelectedStanceDetails', 'qualifies': 'SelectedStanceDetails', + 'contextualizes': 'SelectedStanceDetails', 'corroborates': 'SelectedStanceDetails', + 'cites': 'SelectedCitationDetails', 'derived_from': 'SelectedTransformationDetails', + 'copies': 'SelectedTransformationDetails', 'syndicated_from': 'SelectedTransformationDetails', + 'summarizes': 'SelectedTransformationDetails', 'translates': 'SelectedTransformationDetails', + 'quotes': 'SelectedTransformationDetails', 'originates_from': 'SelectedOriginDetails', + 'depends_on': 'SelectedOriginDetails', 'generated_by': 'SelectedAgentDetails', + 'published_by': 'SelectedAgentDetails', 'owned_by': 'SelectedAgentDetails', + 'model_derived_from': 'SelectedModelDetails', 'trained_on': 'SelectedModelDetails', + 'retrieved_from': 'SelectedRetrievalDetails', 'propagates_to': 'SelectedRouteDetails', + 'supersedes': 'SelectedSupersessionDetails', 'same_identity_as': 'SelectedIdentityDetails'}), + 'SelectedAssessmentData': ('assessment_kind', 'details', { + 'origin_boundary': 'SelectedOriginBoundaryDetails', 'independence': 'SelectedIndependenceDetails', + 'coverage': 'SelectedCoverageDetails', 'classification': 'SelectedClassificationDetails', + 'verification': 'SelectedVerificationDetails', 'externality': 'SelectedExternalityDetails', + 'authority': 'SelectedAuthorityDetails', 'capacity': 'SelectedCapacityDetails', + 'conflict': 'SelectedConflictDetails'}), +} +_DISCLOSURE_FIELDS = ( + 'origin_boundary_disclosures', 'ancestry_gap_disclosures', 'independence_assessment_disclosures', + 'evaluator_overlap_disclosures', 'externality_assessment_disclosures', 'externality_stage_links', + 'pipeline_stage_disclosures', 'cohort_transition_disclosures', 'correction_route_disclosures', + 'correction_case_disclosures', 'correction_target_change_disclosures', 'reported_capacity_disclosures', + 'corrective_independence_disclosures', 'human_contribution_disclosures', 'anomaly_context_disclosures', + 'contestation_disclosures', 'tail_stage_result_links', 'coverage_disclosures', + 'documentary_basis_gap_disclosures') +_SCAN_QUALIFICATION = ('Examined assessment only; this scan does not establish applicability ' + 'or qualification for the selected review scope.') +_SOURCE_QUALIFICATION = ('Actual owner selection/source reference slot; this record does not ' + 'establish an applicable review or independent process.') + + +def _require(ok): + _c._report_require(ok) + + +def _fields(value, port): + """Index one trusted field bag without traversing unselected child values.""" + _require(type(value) is _Object) + port.charge(2 * len(value.items) + 2) + result = {} + for name, child in value.items: + _require(type(name) is str) + _byte_work(port, 4 * len(name), 2) + _require(name not in result) + result[name] = child + return result + + +def _scalar(value, port): + port.charge(2) + if type(value) is str: + _byte_work(port, 4 * len(value), 1) + return value + if value is None or type(value) is bool: + return value + if type(value) is _Number: + _require(value.exponent >= 0 and len(value.coefficient) + value.exponent <= 16) + _byte_work(port, 17, 5) + value = value.sign * int(value.coefficient) * 10 ** value.exponent + _require(type(value) is int and -9007199254740991 <= value <= 9007199254740991) + port.charge(2) + return value + + +def _array(value, port): + _require(type(value) in (_Array, tuple)) + values = value.items if type(value) is _Array else value + port.charge(len(values) + 1) + return values + + +def _shape(value, shape, port): + """Follow only a named closed field rule; source keys never select output.""" + port.charge(3) + if type(shape) is tuple: + kind, child = shape + if kind == 'nullable': + return None if value is None else _shape(value, child, port) + _require(kind == 'array') + return tuple(_shape(item, child, port) for item in _array(value, port)) + if shape == 'scalar': + return _scalar(value, port) + _require(shape in _SHAPES) + fields, selected = _fields(value, port), {} + dispatch = _DISCRIMINATORS.get(shape) + child_field = child_shape = None + if dispatch is not None: + discriminator, child_field, choices = dispatch + tag = _scalar(fields[discriminator], port) + _require(type(tag) is str and tag in choices) + child_shape = choices[tag] + for name, child, required in _SHAPES[shape]: + _byte_work(port, 4 * len(name), 3) + if name not in fields: + _require(not required) + continue + selected[name] = _shape(fields[name], child_shape if name == child_field else child, port) + return selected + + +def _native(value, port): + fields = _fields(value, port) + if 'kind' in fields: + shape = 'SelectedRecord' + elif 'assertion_kind' in fields: + shape = 'SelectedAssertion' + elif 'reference_kind' in fields: + shape = 'SelectedEvidenceReference' + else: + _require('target_claim_refs' in fields and 'boundary' in fields) + shape = 'SelectedInquiry' + return _shape(value, shape, port) + + +def _key(ref, port): + _require(type(ref) is _r._InputRef) + _c._charge_input_ref(ref, port) + port.charge(3) + return ref.collection, ref.identifier, ref.selector + + +def _ref(value, collection, port): + if type(value) is _r._InputRef: + _require(value.collection == collection) + _c._charge_input_ref(value, port) + return value + _require(type(value) is str) + _byte_work(port, 4 * len(value), 5) + return _r._InputRef(collection, value) + + +def _refs(value, collection, port): + return tuple(_ref(item, collection, port) for item in _array(value, port)) + + +def _input_fields(value, port): + """The one explicit private InputRef-shaped field bag used by gap rows.""" + if type(value) is _r._InputRef: + _c._charge_input_ref(value, port) + return value + fields = _fields(value, port) + _require(set(fields) == {'collection', 'identifier', 'selector'}) + port.charge(7) + collection, identifier, selector = ( + _scalar(fields[name], port) for name in ('collection', 'identifier', 'selector')) + # Private SourceAddress spells the whole-entity selector as an empty + # string. Public InputRef has one representation for that same slot. + return _r._InputRef(collection, identifier, None if selector == '' else selector) + + +def _source(ref, index, port): + _c._resolve_input(ref, index, port) + port.charge(2) + return index[(ref.collection, ref.identifier)].node.fields + + +def _unique_refs(refs, port): + found = {} + for ref in refs: + key = _key(ref, port) + port.charge(2) + found.setdefault(key, ref) + port.charge(4 * len(found) + 1) + keys = _a._sort([(a, b, '' if c is None else c) for a, b, c in found], port) + port.charge(len(keys) + 1) + return tuple(found[(a, b, None if c == '' else c)] for a, b, c in keys) + + +def _basis(owner, index, checks, port): + source = owner.source + fields = _fields(_source(source, index, port), port) + port.charge(14) + body = {'basis_kind': None, 'asserter_ref': None, 'attestor_ref': None, + 'method': None, 'support_refs': (), 'availability': None, 'scope': None, + 'time': {}, 'lifecycle': None, 'qualifications': (), 'check_refs': checks} + if source.collection == 'evidence_references': + for name, source_name in (('asserter_ref', 'provided_by_ref'), ('attestor_ref', 'attestor_ref')): + value = fields[source_name] + body[name] = None if value is None else _ref(value, 'records', port) + body['availability'] = _scalar(fields['availability'], port) + body['qualifications'] = (_scalar(fields['scope_note'], port),) + return body + provenance = _fields(fields['provenance'], port) + body['basis_kind'] = _scalar(provenance['basis_kind'], port) + attributed = provenance['attributed_to_ref'] + body['asserter_ref'] = None if attributed is None else _ref(attributed, 'records', port) + body['method'] = _scalar(provenance['method'], port) + body['support_refs'] = _refs(provenance['evidence_ref_ids'], 'evidence_references', port) + body['qualifications'] = _shape(provenance['qualifications'], ('array', 'scalar'), port) + time_fields = fields + if source.collection == 'assertions': + scope = _fields(fields['scope'], port) + body['scope'] = {'inquiry_refs': _refs(scope['inquiry_refs'], 'inquiries', port), + 'claim_refs': _refs(scope['claim_refs'], 'records', port), + 'effective_window': _shape(scope['effective_window'], 'TimeWindow', port)} + body['lifecycle'] = {'state': _scalar(fields['lifecycle_state'], port), + 'basis_refs': _refs(fields['lifecycle_basis_ref_ids'], 'evidence_references', port)} + elif source.collection == 'records': + time_fields = _fields(fields['data'], port) + for name in ('asserted_at', 'occurred_at', 'observed_at', 'published_at', 'retrieved_at', + 'as_of', 'valid_window', 'time_window'): + _byte_work(port, 4 * len(name), 2) + if name in time_fields: + body['time'][name] = _shape(time_fields[name], + 'TimeWindow' if name in ('valid_window', 'time_window') else 'TimeValue', port) + return body + + +def _add_fields(target, fields, names, port): + for name in names: + _byte_work(port, 4 * len(name), 3) + _require(name in fields) + target[name] = _shape(fields[name], ('array', 'scalar') if name.endswith('reason_codes') + or name in ('roles', 'matching_family_labels') else 'scalar', port) + + +def _ancestry(fields, port): + port.charge(10) + body = {'seed_ref': _ref(fields['seed_ref'], 'records', port), + 'dimension': _scalar(fields['dimension'], port), 'gaps': [], 'frontiers': [], + 'coverage': [], 'witness_paths': []} + for value in _array(fields['gaps'], port): + row = _fields(value, port) + body['gaps'].append({'source': _input_fields(row['source'], port), + 'reason_codes': _shape(row['reason_codes'], ('array', 'scalar'), port)}) + for value in _array(fields['frontiers'], port): + body['frontiers'].append(_native(value, port)) + for value in _array(fields['coverage'], port): + row = _fields(value, port) + selected = {'coverage_ref': _ref(row['coverage_ref'], 'assertions', port)} + _add_fields(selected, row, ('qualification_state', 'reason_codes'), port) + body['coverage'].append(selected) + for value in _array(fields['witness_paths'], port): + row = _fields(value, port) + body['witness_paths'].append({'nodes': _refs(row['nodes'], 'records', port), + 'assertions': _refs(row['assertions'], 'assertions', port)}) + return body + + +def _disclosure_fields(field, row, index, port): + fields = _fields(row.fields, port) + if field == 'tail_stage_result_links': + _require(type(row.source) is _r._ResultRef) + selected = {} + _add_fields(selected, fields, ('source_result_state', 'source_value_kind'), port) + return selected + _require(type(row.source) is _r._InputRef) + if field == 'ancestry_gap_disclosures': + return _ancestry(fields, port) + selected = {'native_record': _native(_source(row.source, index, port), port)} + if field in ('origin_boundary_disclosures', 'coverage_disclosures', + 'documentary_basis_gap_disclosures', 'pipeline_stage_disclosures'): + _add_fields(selected, fields, ('qualification_state', 'reason_codes'), port) + elif field in ('independence_assessment_disclosures', 'corrective_independence_disclosures'): + if 'process_qualification_state' in fields: + _add_fields(selected, fields, ('process_qualification_state', 'origin_qualification_state', + 'reason_codes'), port) + elif 'contribution_status' in fields: + _require(field == 'corrective_independence_disclosures') + _add_fields(selected, fields, ('contribution_status', 'documentary_state', + 'identity_state', 'reason_codes'), port) + elif field == 'human_contribution_disclosures': + if 'contribution_status' in fields: + _add_fields(selected, fields, ('contribution_status', 'documentary_state', + 'identity_state', 'reason_codes'), port) + elif field == 'externality_assessment_disclosures': + if 'qualification_state' in fields: + _add_fields(selected, fields, ('qualification_state', 'qualified_externality', 'reason_codes'), port) + elif field == 'externality_stage_links': + _add_fields(selected, fields, ('qualification_state', 'reason_codes'), port) + selected['externality_subject_refs'] = _refs(fields['externality_subject_refs'], 'records', port) + selected['mapping_assertion_refs'] = _refs(fields['mapping_assertion_refs'], 'assertions', port) + elif field == 'cohort_transition_disclosures': + anchor = _array(fields['stage_anchor'], port) + _require(len(anchor) in (0, 3)) + selected['stage_anchor'] = None if not anchor else { + name: _scalar(value, port) for name, value in zip(('run_key', 'stage_key', 'stage'), anchor)} + _add_fields(selected, fields, ('cohort_qualification_state', 'transition_qualification_state', + 'reason_codes'), port) + elif field == 'correction_route_disclosures': + if 'target_ref' in fields: + selected['target_ref'] = _ref(fields['target_ref'], 'records', port) + _add_fields(selected, fields, ('action_type', 'declared_route_recorded', + 'authorized_route_recorded', 'authorized_route_state', 'absence_description'), port) + elif 'grant_qualification_state' in fields: + _add_fields(selected, fields, ('grant_qualification_state', 'grant_matches_tuple', + 'grant_reason_codes'), port) + elif field in ('correction_case_disclosures', 'reported_capacity_disclosures'): + if 'documentary_state' in fields: + _add_fields(selected, fields, ('documentary_state', 'reason_codes'), port) + if field == 'correction_case_disclosures': + _add_fields(selected, fields, ('explicit_removal',), port) + elif field == 'correction_target_change_disclosures': + cases = [] + for value in _array(fields['case_rows'], port): + item = _fields(value, port) + case = {'case_ref': _ref(item['case_ref'], 'records', port)} + for name in ('change_event_refs', 'qualified_change_event_refs'): + case[name] = _refs(item[name], 'records', port) + _add_fields(case, item, ('declared', 'selected', 'documentary_state', + 'requested_effect_state', 'reason_codes'), port) + cases.append(case) + selected['case_rows'] = cases + elif field in ('anomaly_context_disclosures', 'contestation_disclosures'): + selected['context_records'] = tuple(_native(value, port) + for value in _array(fields['context_records'], port)) + _add_fields(selected, fields, ('reason_codes',), port) + elif field == 'evaluator_overlap_disclosures': + if 'roles' in fields: + _add_fields(selected, fields, ('roles', 'matching_family_labels', 'roles_complete'), port) + for name in ('left_object_refs', 'right_object_refs', 'shared_object_refs', + 'common_ancestor_refs', 'missing_family_model_refs'): + selected[name] = _refs(fields[name], 'records', port) + pairs = [] + for value in _array(fields['one_sided_ancestry'], port): + item = _fields(value, port) + pairs.append({'from_ref': _ref(item['from_ref'], 'records', port), + 'to_ref': _ref(item['to_ref'], 'records', port)}) + selected['one_sided_ancestry'] = pairs + else: + _require(False) + return selected + + +def _disclosures(result, outcome, index, port): + field = result.ref.field_key + _require(field in _DISCLOSURE_FIELDS and type(result.value) is _r._RecordDisclosures) + port.charge(4) + selected = [] + for row in result.value.records: + port.charge(5) + selected.append({'source': row.source, 'fields': _disclosure_fields(field, row, index, port), + 'qualifications': _shape(row.qualifications, ('array', 'scalar'), port)}) + if field == 'corrective_independence_disclosures': + wanted = _a._ref_keys(result.witness_refs, port) + for record in outcome.witnesses: + matches = False + for ref in record.refs: + key = _a._anchor(ref, port) + _a._charge_key((key, wanted), port) + if key in wanted: + matches = True + if not matches: + continue + for payload in record.payload: + port.charge(2) + if payload[0] != 'human_review_witness': + continue + _require(len(payload) == 5) + for refs, qualification in ((payload[2], _SCAN_QUALIFICATION), + (payload[3], _SOURCE_QUALIFICATION)): + for ref in refs: + port.charge(5) + selected.append({'source': ref, + 'fields': {'native_record': _native(_source(ref, index, port), port)}, + 'qualifications': (qualification,)}) + return {'records': selected} + + +def _graph_inputs(record, components, index, port): + """Select retained material and its explicit documentary reference IDs. + + This is field projection, not premise qualification or a new graph search. + Native support remains attributable even when its availability is unknown. + """ + port.charge(len(record.input_refs) + 1) + refs = list(record.input_refs) + for component in components: + port.charge(12) + for name in ('nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals'): + for node in component[name]: + port.charge(2) + refs.append(node['ref']) + if component['target'] is not None: + port.charge(2) + refs.append(component['target']['ref']) + for name in ('edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations'): + for edge in component[name]: + port.charge(10) + refs.extend((edge['source']['ref'], edge['target']['ref'], edge['source_ref'])) + material = _unique_refs(refs, port) + for ref in material: + fields = _fields(_source(ref, index, port), port) + if 'provenance' in fields: + provenance = _fields(fields['provenance'], port) + support = _refs(provenance['evidence_ref_ids'], 'evidence_references', port) + port.charge(len(support) + 1) + refs.extend(support) + return _unique_refs(refs, port) + + +def _basis_links(outcome, port): + port.charge(3) + owners, checks = {}, {} + for result in outcome.results: + port.charge(2) + relevant = {} + for check in result.check_refs: + port.charge(2) + if check.check_id not in ('PC05', 'PC06', 'PC07', 'PC08', 'PC09', 'PC10'): + continue + seen = set() + for ref in check.input_refs: + key = _key(ref, port)[:2] + port.charge(3) + if key not in seen: + relevant.setdefault(key, []).append(check) + seen.add(key) + for owner in result.basis_refs: + key = _key(owner.source, port) + port.charge(4) + owners.setdefault(key, owner) + group = relevant.get(key[:2], ()) + port.charge(len(group) + 1) + checks.setdefault(key, []).extend(group) + for population in result.population_refs: + port.charge(1) + for owner in population.basis_refs: + key = _key(owner.source, port) + port.charge(2) + owners.setdefault(key, owner) + for finding in outcome.findings: + port.charge(2) + groups = [finding.basis_refs] + for population in finding.population_refs: + port.charge(1) + groups.append(population.basis_refs) + for group in groups: + for owner in group: + key = _key(owner.source, port) + port.charge(2) + owners.setdefault(key, owner) + return owners, checks + + +def _select_report_disclosure(outcome, port): + """The product's explicit selected-field source for logical assembly.""" + port.check() + _require(type(outcome) is _c._AnalyticalOutcome and type(outcome.prepared) is _PreparedBundle) + index = _c._input_index(outcome.prepared, port) + owners, checks = _basis_links(outcome, port) + port.charge(8) + basis, disclosures, findings, witnesses = [], [], [], [] + for key, owner in owners.items(): + port.charge(4) + linked = _c._paid_tuple(checks.get(key, ()), port) + basis.append((owner, _basis(owner, index, linked, port))) + for result in outcome.results: + port.charge(2) + if type(result.value) is _r._RecordDisclosures: + disclosures.append((result.ref, _disclosures(result, outcome, index, port))) + for finding in outcome.findings: + port.charge(len(finding.witness.owner_witnesses) + 5) + components = tuple(_a._selected_component(payload, port) + for payload in finding.witness.owner_witnesses) + findings.append((finding, {'input_refs': _unique_refs(finding.witness.input_refs, port), + 'components': components})) + for record in outcome.witnesses: + port.charge(len(record.payload) + 2) + if record.payload and all(payload[0] == 'graph_witness' for payload in record.payload): + port.charge(len(record.payload) + 1) + components = tuple(_a._selected_component(payload, port) for payload in record.payload) + witnesses.append((record, {'input_refs': _graph_inputs(record, components, index, port), + 'components': components})) + selection = _c._capture_report_disclosure(_c._paid_tuple(basis, port), + _c._paid_tuple(disclosures, port), _c._paid_tuple(findings, port), port, + owner_witnesses=_c._paid_tuple(witnesses, port)) + port.check() + return selection + + +def _assemble_selected_report(outcome, port, *, tool_version='0.1.0.dev0'): + """Select and assemble under the same caller-owned bounded internal port.""" + selected = _select_report_disclosure(outcome, port) + return _a._assemble_report(outcome, selected, port, tool_version=tool_version) diff --git a/tests/contract/test_report_assembly.py b/tests/contract/test_report_assembly.py index 0994aa2..56be351 100644 --- a/tests/contract/test_report_assembly.py +++ b/tests/contract/test_report_assembly.py @@ -1,11 +1,12 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""W03 assembly controls with an independently authored reference document. +"""W03 assembly and W04 disclosure integration with an independent reference. The selected bodies below are a trusted, case-specific test fixture for the -future disclosure owner. They are read from W02's independent expectations, -never from assembler output. This does not test or implement W04 selection, -public audit delivery, a second production budget, or either renderer. +W03 assembly controls. They are read from W02's independent expectations, +never from assembler output. Separate W04 controls use the actual runtime +selector and assembler under one supplied finite component port. Neither +path claims public audit delivery, whole-invocation integration or rendering. """ import copy from dataclasses import replace @@ -23,6 +24,7 @@ _BasisRef, _InputRef, _RecordDisclosures, ) from source_integrity_toolkit.reporting import assemble +from source_integrity_toolkit.runtime import disclosure as disclosure_runtime from source_integrity_toolkit.runtime.boundary import _analyze_value @@ -267,6 +269,15 @@ def reference_assembly(reference_outcome): return frozen, _plain(frozen), selected, port.units +@pytest.fixture(scope='module') +def runtime_reference_assembly(reference_outcome): + """Actual W04 selection and W03 assembly, with no expected bodies as input.""" + port = RecordingPort() + frozen = disclosure_runtime._assemble_selected_report(reference_outcome, port) + assert port.units > 0 and port.checks > 0 + return frozen, _plain(frozen), port.units + + def _assert_partitions(document): results = {row['id']: row for row in document['results']} for capability in document['capabilities']: @@ -313,6 +324,10 @@ def visit(value): def test_real_private_reference_assembles_exact_independent_logical_document(reference_assembly): frozen, actual, _, units = reference_assembly + _assert_complete_reference(frozen, actual, units) + + +def _assert_complete_reference(frozen, actual, units): _strict_equal(actual, _reference_document()) assert type(frozen) is contract._ReportMapping assert set(actual) == set(ROOT_FIELDS) @@ -324,6 +339,26 @@ def test_real_private_reference_assembles_exact_independent_logical_document(ref assert len({row['field_key'] for row in actual['results']}) == 57 +def test_runtime_disclosure_assembles_exact_independent_reference(runtime_reference_assembly): + frozen, actual, units = runtime_reference_assembly + _assert_complete_reference(frozen, actual, units) + _assert_partitions(actual) + _assert_report_links(actual) + + +@pytest.mark.parametrize('allowance', (0, 1024)) +def test_runtime_disclosure_and_assembly_obey_supplied_port(reference_outcome, + runtime_reference_assembly, + allowance): + # The same real outcome first completed through the conforming runtime + # path above. A finite stop must propagate instead of allocating a fresh + # report port or returning a partially selected document. + port = RecordingPort(stop_after=allowance) + with pytest.raises(RuntimeError, match='^controlled_assembly_stop$'): + disclosure_runtime._assemble_selected_report(reference_outcome, port) + assert port.units <= allowance + + def test_reference_partitions_and_target_kinds_are_independently_closed(reference_assembly): _, actual, _, _ = reference_assembly _assert_partitions(actual) @@ -449,6 +484,10 @@ def test_small_two_inquiries_keep_all_families_and_five_global_domains(): selected = _selected_disclosure(outcome, references) port = RecordingPort() actual = _plain(_assemble(outcome, selected, port)) + _assert_two_inquiry_material(actual, port.units) + + +def _assert_two_inquiry_material(actual, units): _assert_partitions(actual) _assert_report_links(actual) assert len(actual['capabilities']) == 30 @@ -472,7 +511,18 @@ def test_small_two_inquiries_keep_all_families_and_five_global_domains(): if linked: assert {scopes[results[identifier]['scope_ref']]['inquiry_ref']['identifier'] for identifier in linked} == {'P4-I001', 'P4B-I001'} - assert 0 < port.units <= 10_000_000 + assert 0 < units <= 10_000_000 + + +def test_runtime_disclosure_preserves_two_independent_inquiry_selections(): + dossier, _ = _two_compact_inquiry_case() + outcome = _analyze_value(dossier) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + assert len(outcome.plan.jobs) == 32 and len(outcome.results) == 120 + port = RecordingPort() + actual = _plain(disclosure_runtime._assemble_selected_report(outcome, port)) + _assert_two_inquiry_material(actual, port.units) @pytest.mark.parametrize('allowance', (0, 1, 32, 1024)) @@ -878,6 +928,19 @@ def test_two_hop_retained_owner_path_does_not_require_an_equal_private_finding() _assert_report_links(actual) +def test_runtime_disclosure_retains_actual_two_hop_owner_proof(): + outcome = _analyze_value(_two_hop_dossier()) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + assert len(outcome.plan.jobs) == 25 and len(outcome.results) == 87 + port = RecordingPort() + actual = _plain(disclosure_runtime._assemble_selected_report(outcome, port)) + _assert_two_hop_material(actual) + _assert_partitions(actual) + _assert_report_links(actual) + assert 0 < port.units <= 10_000_000 + + # The following are explicitly constructed trusted component controls. They # exercise value projection and linking, not a complete analytical envelope. def _interval_component(reference_outcome): @@ -1175,3 +1238,139 @@ def test_unrelated_same_scope_absence_keeps_own_material_family_and_basis(refere assert findings[links[0]]['diagnostic_refs'] == (family,) assert all(component['kind'] in ('path', 'complete_trace') for component in findings[links[0]]['witness']['components']) + + +def _review_scan_dossier(): + """Small actual input with two assessments and repeated review role slots.""" + dossier = _reference_dossier() + dossier['bundle_id'] = 'W04-BUNDLE-SCAN-SLOTS' + dossier['snapshot_id'] = 'W04-SNAPSHOT-SCAN-SLOTS' + actor = next(row for row in dossier['records'] if row['id'] == 'P4-ACTOR') + other = copy.deepcopy(actor) + other['id'] = 'W04-OTHER' + dossier['records'].append(other) + role = {'role': 'human_reviewer', 'object_ref': 'P4-ACTOR', + 'evidence_ref_ids': ['P4-SUPPORT'], + 'qualifications': ['Repeated original owner role slot; no additional human is inferred.']} + dossier['records'].append({ + 'id': 'W04-REVIEW', 'kind': 'evaluation', + 'data': {'evaluation_kind': 'human_review', 'target_refs': ['P4-ART'], + 'role_bindings': [copy.deepcopy(role), dict(copy.deepcopy(role), role='judge')], + 'result_refs': [], 'occurred_at': copy.deepcopy(dossier['recorded_at']), + 'review_contribution': 'Recorded review contribution with two supplied role slots.'}, + 'provenance': copy.deepcopy(actor['provenance']), + }) + dossier['inquiries'][0]['target_object_refs'] = ['W04-REVIEW'] + original = next(row for row in dossier['assertions'] if row['id'] == 'P4-BOUND') + for suffix in ('B', 'A'): + assessment = copy.deepcopy(original) + assessment['id'] = 'W04-SCAN-' + suffix + assessment['data'] = { + 'assessment_kind': 'independence', 'subject_refs': ['P4-ACTOR', 'W04-OTHER'], + 'details': {'comparison_form': 'pairwise', 'dimension': 'organizational_control', + 'conclusion': 'unknown', 'examined_dependency_refs': [], + 'unexamined_dimensions': ['acquisition'], 'coverage_ref': None, + 'scope_note': 'Supplied scan context only; no applicable acquisition assessment.'}, + } + assessment['gaps'] = [{'field': 'data.details.coverage_ref', 'reason': 'not_examined', + 'detail': 'No coverage assessment is supplied for this other dimension.'}] + dossier['assertions'].append(assessment) + return dossier + + +@pytest.fixture(scope='module') +def review_scan_outcome(): + dossier = _review_scan_dossier() + original = copy.deepcopy(dossier) + outcome = _analyze_value(dossier) + assert dossier == original + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + return outcome + + +def _reverse_review_payload(payload): + if payload[0] != 'human_review_witness': + return payload + kind, members, assessments, slots, count = payload + return kind, members, tuple(reversed(assessments)), tuple(reversed(slots)), count + + +def _selected_input_value(value): + """Read only this selected component's frozen JSON and typed input links.""" + if type(value) is _InputRef: + return _source(value) + if type(value) is contract._ReportMapping: + return {name: _selected_input_value(value[name]) for name in value} + if type(value) is tuple: + return [_selected_input_value(item) for item in value] + assert value is None or type(value) in (str, bool, int) + return value + + +@pytest.mark.parametrize('owner_order', ('actual', 'reversed_component')) +def test_runtime_review_scan_and_repeated_source_slots_keep_owner_order(review_scan_outcome, + owner_order): + outcome = review_scan_outcome + if owner_order == 'reversed_component': + # Explicit trusted detached-owner component variant, backed by the + # same real prepared input. This alternative order is not attributed + # to the current analytical implementation or reservation ledger. + witnesses = tuple(replace(row, payload=tuple(_reverse_review_payload(part) + for part in row.payload)) for row in outcome.witnesses) + findings = tuple(replace(row, witness=replace(row.witness, + owner_witnesses=tuple(_reverse_review_payload(part) + for part in row.witness.owner_witnesses))) for row in outcome.findings) + outcome = replace(outcome, witnesses=witnesses, findings=findings) + owner = next(row for row in outcome.witnesses + if any(part[0] == 'human_review_witness' for part in row.payload)) + payload = next(part for part in owner.payload if part[0] == 'human_review_witness') + _, members, assessments, slots, count = payload + assert [ref.identifier for ref in members] == ['W04-REVIEW'] + expected_scan = ['W04-SCAN-A', 'W04-SCAN-B'] + expected_slots = [ + {'collection': 'inquiries', 'identifier': 'P4-I001', 'selector': 'target_object_refs'}, + {'collection': 'records', 'identifier': 'W04-REVIEW', 'selector': None}, + {'collection': 'records', 'identifier': 'P4-ACTOR', 'selector': None}, + {'collection': 'records', 'identifier': 'P4-ACTOR', 'selector': None}, + ] + if owner_order == 'reversed_component': + expected_scan.reverse() + expected_slots.reverse() + assert [ref.identifier for ref in assessments] == expected_scan + assert [_source(ref) for ref in slots] == expected_slots + assert count == len(members) + len(assessments) + len(slots) == 7 + original = next(row for row in outcome.results + if row.ref.field_key == 'corrective_independence_disclosures') + port = RecordingPort() + selected = disclosure_runtime._select_report_disclosure(outcome, port) + body = next(body for ref, body in selected.disclosures + if ref.field_key == 'corrective_independence_disclosures') + rows = _selected_input_value(body)['records'] + primary_count = len(original.value.records) + assert [row['source'] for row in rows[:primary_count]] == [ + _source(row.source) for row in original.value.records] + scan_rows = rows[primary_count:primary_count + 2] + source_rows = rows[primary_count + 2:] + assert [row['source'] for row in scan_rows] == [ + {'collection': 'assertions', 'identifier': identifier, 'selector': None} + for identifier in expected_scan] + assert [row['source'] for row in source_rows] == expected_slots + assert all(row['qualifications'] == [ + 'Examined assessment only; this scan does not establish applicability or qualification for the selected review scope.'] + for row in scan_rows) + assert all(row['qualifications'] == [ + 'Actual owner selection/source reference slot; this record does not establish an applicable review or independent process.'] + for row in source_rows) + for row in scan_rows + source_rows: + assert set(row['fields']) == {'native_record'} + assert row['fields']['native_record']['id'] == row['source']['identifier'] + actor_rows = [row for row in source_rows if row['source']['identifier'] == 'P4-ACTOR'] + assert len(actor_rows) == 2 and actor_rows[0] == actor_rows[1] + review_row = next(row for row in source_rows if row['source']['identifier'] == 'W04-REVIEW') + roles = review_row['fields']['native_record']['data']['role_bindings'] + assert [role['role'] for role in roles] == ['human_reviewer', 'judge'] + assert [role['object_ref'] for role in roles] == ['P4-ACTOR', 'P4-ACTOR'] + assert roles[0]['qualifications'] == [ + 'Repeated original owner role slot; no additional human is inferred.'] + assert 0 < port.units <= 10_000_000 diff --git a/tests/fixtures/adversarial/phase4_report_cases.json b/tests/fixtures/adversarial/phase4_report_cases.json new file mode 100644 index 0000000..38d3214 --- /dev/null +++ b/tests/fixtures/adversarial/phase4_report_cases.json @@ -0,0 +1,1789 @@ +{ + "description": "W04 independently authored finite disclosure/privacy dossiers; no source output was used to generate expected values.", + "sources": [ + "PHASE_4_PLAN.md P4-W04", + "PRIVACY_AND_DATA_HANDLING.md sections 3.3 and 4.1-4.4", + "OBSERVABILITY_AND_REPORTING.md sections 16-19", + "schemas/report/README.md Selected native fields", + "DEFINITIONS_AND_UNITS.md sections 27.2-27.3", + "tests/unit/test_origins.py protected-attestation source oracle" + ], + "base_fixture": "tests/fixtures/micro/phase4_public_cases.json / P4-REFERENCE-ONE-ORIGIN", + "cases": [ + { + "id": "P4-W04-EXPLICIT-SELECTION", + "derivation": "Keep reference semantics; add synthetic excluded values only to input fields that the approved SelectedNative mapping omits. Required context/method/scope note and ordered duplicate qualifications are explicitly retained. Input assertions and evidence linkage remain unchanged.", + "dossier": { + "contract_version": "sit-bundle/0.1", + "bundle_id": "P4-W04-SELECTED", + "snapshot_id": "P4-W04-SELECTED-01", + "recorded_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "predecessor": null, + "inquiries": [ + { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "label": "P4-W04-PRIVATE-SOURCE-LABEL", + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + } + } + ], + "records": [ + { + "id": "P4-ACTOR", + "kind": "actor", + "data": { + "actor_kind": "human", + "identity_disclosure": "pseudonymous", + "display_name": "P4-W04-PRIVATE-DISPLAY-NAME", + "identity_key": "P4-W04-PRIVATE-IDENTITY-KEY" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + }, + "label": "P4-W04-PRIVATE-SOURCE-LABEL" + }, + { + "id": "P4-ART", + "kind": "artifact", + "data": { + "artifact_kind": "document", + "work_key": "P4-W04-PRIVATE-WORK-KEY", + "version_label": "v1", + "locators": [ + "/private/P4-W04-PRIVATE-LOCAL-PATH.txt" + ], + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "content_evidence_refs": [], + "checksums": [ + { + "algorithm": "SHA-256", + "value": "P4-W04-PRIVATE-FULL-CHECKSUM", + "covered_material": "P4-W04-PRIVATE-CHECKSUM-COVERAGE" + } + ] + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + }, + "label": "P4-W04-PRIVATE-SOURCE-LABEL" + }, + { + "id": "P4-CLAIM", + "kind": "claim", + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "version_label": "v1", + "text": "P4-W04-PRIVATE-CLAIM-TEXT", + "context": "P4-W04-REQUIRED-CONTEXT: exact fictional Claim context." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + }, + "label": "P4-W04-PRIVATE-SOURCE-LABEL" + }, + { + "id": "P4-E1", + "kind": "evidence_item", + "data": { + "claim_ref": "P4-CLAIM", + "artifact_ref": "P4-ART", + "locator": "C:\\private\\P4-W04-PRIVATE-LOCAL-PATH.txt", + "epistemic_type": "fictional_example", + "description": "One explicitly supplied contribution." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + }, + "label": "P4-W04-PRIVATE-SOURCE-LABEL" + }, + { + "id": "P4-O1", + "kind": "origin_event", + "data": { + "event_kind": "data_collection", + "event_key": "P4-ACQUISITION", + "performed_by_refs": [ + "P4-ACTOR" + ], + "method_ref": "P4-ART", + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "description": "One represented documentary acquisition boundary." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + }, + "label": "P4-W04-PRIVATE-SOURCE-LABEL" + } + ], + "assertions": [ + { + "id": "P4-BOUND", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-REQUIRED-METHOD: inspect the supplied literal ``` and 合成材料.", + "qualifications": [ + "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication.", + "P4-W04-REQUIRED-QUALIFICATION-B: shared provenance remains shared.", + "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "origin_boundary", + "subject_refs": [ + "P4-O1" + ], + "details": { + "dimension": "acquisition", + "boundary_role": "documented_origin", + "coverage_ref": "P4-COVER", + "termination_reason": "This supplied finite acquisition record terminates here." + } + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + } + }, + { + "id": "P4-COVER", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-REQUIRED-METHOD: inspect the supplied literal ``` and 合成材料.", + "qualifications": [ + "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication.", + "P4-W04-REQUIRED-QUALIFICATION-B: shared provenance remains shared.", + "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "coverage", + "subject_refs": [ + "P4-I001" + ], + "details": { + "coverage_kind": "upstream_history", + "state": "complete_for_scope", + "relation_types": [ + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on" + ], + "dimensions": [ + "acquisition" + ], + "member_refs": [ + "P4-E1", + "P4-O1" + ], + "omitted_refs": [], + "universe_enumerated": true, + "scope_note": "Exactly these two records and all their permitted acquisition-parent predicates." + } + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + } + }, + { + "id": "P4-PARENT", + "assertion_kind": "relation", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-REQUIRED-METHOD: inspect the supplied literal ``` and 合成材料.", + "qualifications": [ + "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication.", + "P4-W04-REQUIRED-QUALIFICATION-B: shared provenance remains shared.", + "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "predicate": "originates_from", + "from_ref": "P4-E1", + "to_ref": "P4-O1", + "polarity": "affirmed", + "dimension": "acquisition", + "details": {} + }, + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + } + } + ], + "evidence_references": [ + { + "id": "P4-SUPPORT", + "reference_kind": "supplied_excerpt", + "availability": "supplied", + "artifact_ref": "P4-ART", + "record_ref": null, + "locator": "file:///private/P4-W04-PRIVATE-EVIDENCE-LOCATOR.txt", + "excerpt": "P4-W04-PRIVATE-SOURCE-EXCERPT", + "provided_by_ref": "P4-ACTOR", + "attestor_ref": null, + "scope_note": "P4-W04-REQUIRED-SCOPE-NOTE: exact supplied support only.", + "extensions": { + "test:native_only": { + "method": "P4-W04-PRIVATE-NATIVE-EXTENSION", + "marker": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + } + } + ], + "extensions": { + "test:report_override": { + "marker": "P4-W04-PRIVATE-ROOT-EXTENSION", + "release_limits": [ + "P4-W04-PRIVATE-PUBLICATION-APPROVAL" + ], + "native_record": { + "fields": "P4-W04-PRIVATE-NATIVE-EXTENSION" + } + } + } + }, + "expected": { + "excluded_values": [ + "P4-W04-PRIVATE-DISPLAY-NAME", + "P4-W04-PRIVATE-IDENTITY-KEY", + "P4-W04-PRIVATE-SOURCE-EXCERPT", + "P4-W04-PRIVATE-ROOT-EXTENSION", + "P4-W04-PRIVATE-NATIVE-EXTENSION", + "P4-W04-PRIVATE-SOURCE-LABEL", + "P4-W04-PRIVATE-CLAIM-TEXT", + "P4-W04-PRIVATE-WORK-KEY", + "P4-W04-PRIVATE-FULL-CHECKSUM", + "P4-W04-PRIVATE-CHECKSUM-COVERAGE", + "/private/P4-W04-PRIVATE-LOCAL-PATH.txt", + "C:\\private\\P4-W04-PRIVATE-LOCAL-PATH.txt", + "file:///private/P4-W04-PRIVATE-EVIDENCE-LOCATOR.txt", + "P4-W04-PRIVATE-PUBLICATION-APPROVAL" + ], + "required": { + "method": "P4-W04-REQUIRED-METHOD: inspect the supplied literal ``` and 合成材料.", + "context": "P4-W04-REQUIRED-CONTEXT: exact fictional Claim context.", + "qualification_a": "P4-W04-REQUIRED-QUALIFICATION-A: opaque attribution is not authentication.", + "qualification_b": "P4-W04-REQUIRED-QUALIFICATION-B: shared provenance remains shared.", + "scope_note": "P4-W04-REQUIRED-SCOPE-NOTE: exact supplied support only." + }, + "private_result_count": 78 + } + }, + { + "id": "P4-W04-NATIVE-CORRECTION", + "derivation": "Keep Actor/Artifact/Claim, use no acquisition seeds, and append one channel, one submission and three handling events. No linked change is supplied; accepted/failed/unknown remain source-native states, with one shared case and target.", + "dossier": { + "contract_version": "sit-bundle/0.1", + "bundle_id": "P4-W04-CORRECTION", + "snapshot_id": "P4-W04-CORRECTION-01", + "recorded_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "predecessor": null, + "inquiries": [ + { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [], + "coverage_assertion_refs": [], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + ], + "records": [ + { + "id": "P4-ACTOR", + "kind": "actor", + "data": { + "actor_kind": "human", + "identity_disclosure": "protected", + "display_name": null, + "identity_key": "P4-W04-PRIVATE-CORRECTION-IDENTITY" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "gaps": [ + { + "field": "data.display_name", + "reason": "withheld", + "detail": "This synthetic actor remains an opaque supplied reference." + } + ] + }, + { + "id": "P4-ART", + "kind": "artifact", + "data": { + "artifact_kind": "document", + "work_key": "P4-WORK", + "version_label": "v1", + "locators": [], + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "content_evidence_refs": [] + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-CLAIM", + "kind": "claim", + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "version_label": "v1", + "text": "A fictional sample was recorded.", + "context": "Only the supplied finite example." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-W04-CHANNEL", + "kind": "correction_channel", + "data": { + "owner_refs": [ + "P4-ACTOR" + ], + "target_refs": [ + "P4-CLAIM" + ], + "contact_locator": "mailto:P4-W04-PRIVATE-CONTACT@example.invalid", + "declared_action_types": [ + "amend" + ], + "valid_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-CORRECTION-METHOD: read this supplied process log.", + "qualifications": [ + "P4-W04-CORRECTION-LIMIT: native process reports do not establish successful correction." + ] + }, + "extensions": { + "test:private": "P4-W04-PRIVATE-CORRECTION-EXTENSION" + } + }, + { + "id": "P4-W04-CASE", + "kind": "correction_event", + "data": { + "event_kind": "submission", + "case_ref": null, + "channel_ref": "P4-W04-CHANNEL", + "target_refs": [ + "P4-CLAIM" + ], + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "details": { + "submission_kind": "proposed_correction", + "summary": "P4-W04-REQUIRED-SUBMISSION: review this exact fictional Claim." + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-CORRECTION-METHOD: read this supplied process log.", + "qualifications": [ + "P4-W04-CORRECTION-LIMIT: native process reports do not establish successful correction." + ] + }, + "extensions": { + "test:private": "P4-W04-PRIVATE-CORRECTION-EXTENSION" + } + }, + { + "id": "P4-W04-HANDLING-ACCEPTED", + "kind": "correction_event", + "data": { + "event_kind": "handling", + "case_ref": "P4-W04-CASE", + "channel_ref": "P4-W04-CHANNEL", + "target_refs": [ + "P4-CLAIM" + ], + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "details": { + "outcome": "accepted", + "reason": "P4-W04-REQUIRED-NATIVE-ACCEPTED: attributed process state only." + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-CORRECTION-METHOD: read this supplied process log.", + "qualifications": [ + "P4-W04-CORRECTION-LIMIT: native process reports do not establish successful correction." + ] + }, + "extensions": { + "test:private": "P4-W04-PRIVATE-CORRECTION-EXTENSION" + } + }, + { + "id": "P4-W04-HANDLING-FAILED", + "kind": "correction_event", + "data": { + "event_kind": "handling", + "case_ref": "P4-W04-CASE", + "channel_ref": "P4-W04-CHANNEL", + "target_refs": [ + "P4-CLAIM" + ], + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "details": { + "outcome": "failed", + "reason": "P4-W04-REQUIRED-NATIVE-FAILED: attributed process state only." + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-CORRECTION-METHOD: read this supplied process log.", + "qualifications": [ + "P4-W04-CORRECTION-LIMIT: native process reports do not establish successful correction." + ] + }, + "extensions": { + "test:private": "P4-W04-PRIVATE-CORRECTION-EXTENSION" + } + }, + { + "id": "P4-W04-HANDLING-UNKNOWN", + "kind": "correction_event", + "data": { + "event_kind": "handling", + "case_ref": "P4-W04-CASE", + "channel_ref": "P4-W04-CHANNEL", + "target_refs": [ + "P4-CLAIM" + ], + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "details": { + "outcome": "unknown", + "reason": "P4-W04-REQUIRED-NATIVE-UNKNOWN: attributed process state only." + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "P4-W04-CORRECTION-METHOD: read this supplied process log.", + "qualifications": [ + "P4-W04-CORRECTION-LIMIT: native process reports do not establish successful correction." + ] + }, + "extensions": { + "test:private": "P4-W04-PRIVATE-CORRECTION-EXTENSION" + } + } + ], + "assertions": [], + "evidence_references": [ + { + "id": "P4-SUPPORT", + "reference_kind": "supplied_excerpt", + "availability": "supplied", + "artifact_ref": "P4-ART", + "record_ref": null, + "locator": null, + "excerpt": "P4-W04-PRIVATE-CORRECTION-EXCERPT", + "provided_by_ref": "P4-ACTOR", + "attestor_ref": null, + "scope_note": "Supplied fictional material; external authenticity is not examined." + } + ] + }, + "expected": { + "excluded_values": [ + "mailto:P4-W04-PRIVATE-CONTACT@example.invalid", + "P4-W04-PRIVATE-CORRECTION-EXTENSION", + "P4-W04-PRIVATE-CORRECTION-IDENTITY", + "P4-W04-PRIVATE-CORRECTION-EXCERPT" + ], + "case_count": 1, + "handling_count": 3, + "linked_change_count": 0, + "native_outcomes": [ + "accepted", + "failed", + "unknown" + ] + } + }, + { + "id": "P4-W04-PROTECTED-COMMON", + "derivation": "Two distinct seeds point to the same opaque protected OriginEvent. Visible supplied protected attestation supports that single boundary; pseudonyms never create a second origin.", + "dossier": { + "contract_version": "sit-bundle/0.1", + "bundle_id": "P4-W04-PROTECTED-COMMON", + "snapshot_id": "P4-W04-PROTECTED-COMMON-01", + "recorded_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "predecessor": null, + "inquiries": [ + { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1", + "P4-E2" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + ], + "records": [ + { + "id": "P4-ACTOR", + "kind": "actor", + "data": { + "actor_kind": "human", + "identity_disclosure": "protected", + "display_name": null, + "identity_key": "P4-PRIVATE-IDENTITY-CANARY" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "gaps": [ + { + "field": "data.display_name", + "reason": "withheld", + "detail": "Identity intentionally opaque." + } + ] + }, + { + "id": "P4-ART", + "kind": "artifact", + "data": { + "artifact_kind": "document", + "work_key": "P4-WORK", + "version_label": "v1", + "locators": [], + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "content_evidence_refs": [] + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-CLAIM", + "kind": "claim", + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "version_label": "v1", + "text": "A fictional sample was recorded.", + "context": "Only the supplied finite example." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-E1", + "kind": "evidence_item", + "data": { + "claim_ref": "P4-CLAIM", + "artifact_ref": "P4-ART", + "locator": "sample-1", + "epistemic_type": "fictional_example", + "description": "One explicitly supplied contribution." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + }, + { + "id": "P4-O1", + "kind": "origin_event", + "data": { + "event_kind": "data_collection", + "event_key": "P4-ACQUISITION", + "performed_by_refs": [ + "P4-ACTOR" + ], + "method_ref": "P4-ART", + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "description": "One represented documentary acquisition boundary." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + }, + { + "id": "P4-E2", + "kind": "evidence_item", + "data": { + "claim_ref": "P4-CLAIM", + "artifact_ref": "P4-ART", + "locator": "sample-2", + "epistemic_type": "fictional_example", + "description": "One explicitly supplied contribution." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + } + ], + "assertions": [ + { + "id": "P4-BOUND", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "protected_attestation", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Underlying identity is withheld; one shared opaque acquisition is attested." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "origin_boundary", + "subject_refs": [ + "P4-O1" + ], + "details": { + "dimension": "acquisition", + "boundary_role": "documented_origin", + "coverage_ref": "P4-COVER", + "termination_reason": "This supplied finite acquisition record terminates here." + } + } + }, + { + "id": "P4-COVER", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "coverage", + "subject_refs": [ + "P4-I001" + ], + "details": { + "coverage_kind": "upstream_history", + "state": "complete_for_scope", + "relation_types": [ + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on" + ], + "dimensions": [ + "acquisition" + ], + "member_refs": [ + "P4-E1", + "P4-E2", + "P4-O1" + ], + "omitted_refs": [], + "universe_enumerated": true, + "scope_note": "Exactly two supplied contributions share one opaque acquisition." + } + } + }, + { + "id": "P4-PARENT", + "assertion_kind": "relation", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "predicate": "originates_from", + "from_ref": "P4-E1", + "to_ref": "P4-O1", + "polarity": "affirmed", + "dimension": "acquisition", + "details": {} + } + }, + { + "id": "P4-PARENT2", + "assertion_kind": "relation", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "predicate": "originates_from", + "from_ref": "P4-E2", + "to_ref": "P4-O1", + "polarity": "affirmed", + "dimension": "acquisition", + "details": {} + } + } + ], + "evidence_references": [ + { + "id": "P4-SUPPORT", + "reference_kind": "protected_attestation", + "availability": "supplied", + "artifact_ref": "P4-ART", + "record_ref": null, + "locator": null, + "excerpt": "Supplied scoped attestation of one shared acquisition. Underlying identity remains withheld.", + "provided_by_ref": "P4-ACTOR", + "attestor_ref": "P4-ACTOR", + "scope_note": "Supplied fictional material; external authenticity is not examined." + } + ] + }, + "expected": { + "reached_origin_record_count": 1, + "documentary_origin_boundary_record_count": 1, + "unresolved_frontier_reference_count": 0, + "resolution": { + "numerator": 2, + "denominator": 2 + }, + "hhi": { + "numerator": 4, + "denominator": 4 + }, + "seed_ids": [ + "P4-E1", + "P4-E2" + ], + "origin_id": "P4-O1", + "excluded_values": [ + "P4-PRIVATE-IDENTITY-CANARY" + ] + } + }, + { + "id": "P4-W04-UNKNOWN-FRONTIER", + "derivation": "One seed points to an explicitly withheld typed unresolved origin. Remove the qualified boundary and mark coverage partial; the old unrelated O1 remains in the dossier but is not an ancestry endpoint.", + "dossier": { + "contract_version": "sit-bundle/0.1", + "bundle_id": "P4-W04-UNKNOWN", + "snapshot_id": "P4-W04-UNKNOWN-01", + "recorded_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "predecessor": null, + "inquiries": [ + { + "id": "P4-I001", + "target_claim_refs": [ + "P4-CLAIM" + ], + "target_object_refs": [], + "seed_artifact_refs": [ + "P4-ART" + ], + "seed_evidence_refs": [ + "P4-E1" + ], + "boundary": { + "description": "One fictional acquisition and its supplied contribution.", + "criterion": "Only the supplied finite record identities and typed bindings.", + "system_refs": [] + }, + "time_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + }, + "as_of": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "dependency_dimensions": [ + "acquisition" + ], + "coverage_assertion_refs": [ + "P4-COVER" + ], + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + ], + "records": [ + { + "id": "P4-ACTOR", + "kind": "actor", + "data": { + "actor_kind": "human", + "identity_disclosure": "protected", + "display_name": null, + "identity_key": "P4-PRIVATE-IDENTITY-CANARY" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + }, + "gaps": [ + { + "field": "data.display_name", + "reason": "withheld", + "detail": "Identity intentionally opaque." + } + ] + }, + { + "id": "P4-ART", + "kind": "artifact", + "data": { + "artifact_kind": "document", + "work_key": "P4-WORK", + "version_label": "v1", + "locators": [], + "published_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "retrieved_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "content_evidence_refs": [] + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-CLAIM", + "kind": "claim", + "data": { + "claim_key": "P4-CLAIM-FAMILY", + "version_label": "v1", + "text": "A fictional sample was recorded.", + "context": "Only the supplied finite example." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + }, + { + "id": "P4-E1", + "kind": "evidence_item", + "data": { + "claim_ref": "P4-CLAIM", + "artifact_ref": "P4-ART", + "locator": "sample-1", + "epistemic_type": "fictional_example", + "description": "One explicitly supplied contribution." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + }, + { + "id": "P4-O1", + "kind": "origin_event", + "data": { + "event_kind": "data_collection", + "event_key": "P4-ACQUISITION", + "performed_by_refs": [ + "P4-ACTOR" + ], + "method_ref": "P4-ART", + "occurred_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "description": "One represented documentary acquisition boundary." + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + } + }, + { + "id": "P4-UNKNOWN", + "kind": "unresolved_reference", + "data": { + "expected_kinds": [ + "origin_event" + ], + "reason": "withheld", + "description": "The concealed ancestry has no disclosed count or resolved source identity.", + "protected_key": "P4-PRIVATE-FRONTIER-CANARY" + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "declaration", + "evidence_ref_ids": [], + "method": "Independently authored finite Phase 4 reference case.", + "qualifications": [ + "Supplied declaration; no external authentication." + ] + } + } + ], + "assertions": [ + { + "id": "P4-COVER", + "assertion_kind": "assessment", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "assessment_kind": "coverage", + "subject_refs": [ + "P4-I001" + ], + "details": { + "coverage_kind": "upstream_history", + "state": "partial", + "relation_types": [ + "derived_from", + "copies", + "syndicated_from", + "summarizes", + "translates", + "quotes", + "originates_from", + "depends_on" + ], + "dimensions": [ + "acquisition" + ], + "member_refs": [ + "P4-E1", + "P4-UNKNOWN" + ], + "omitted_refs": [], + "universe_enumerated": false, + "scope_note": "One shared unresolved frontier; hidden origins were not enumerated." + } + }, + "gaps": [ + { + "field": "data.details.member_refs", + "reason": "withheld", + "detail": "Unknown underlying origin identities and count." + } + ] + }, + { + "id": "P4-PARENT", + "assertion_kind": "relation", + "scope": { + "inquiry_refs": [ + "P4-I001" + ], + "claim_refs": [ + "P4-CLAIM" + ], + "effective_window": { + "start": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "end": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + } + } + }, + "provenance": { + "attributed_to_ref": "P4-ACTOR", + "basis_kind": "documented_record", + "evidence_ref_ids": [ + "P4-SUPPORT" + ], + "method": "Inspect supplied acquisition record; literal ``` is data.", + "qualifications": [ + "Caller-supplied documentary premise (合成例); no external authentication." + ] + }, + "asserted_at": { + "state": "unknown", + "value": null, + "precision": null, + "reason": "No occurrence time is supplied for this fictional reference case." + }, + "lifecycle_state": "active", + "lifecycle_basis_ref_ids": [], + "data": { + "predicate": "originates_from", + "from_ref": "P4-E1", + "to_ref": "P4-UNKNOWN", + "polarity": "affirmed", + "dimension": "acquisition", + "details": {} + } + } + ], + "evidence_references": [ + { + "id": "P4-SUPPORT", + "reference_kind": "protected_attestation", + "availability": "supplied", + "artifact_ref": "P4-ART", + "record_ref": null, + "locator": null, + "excerpt": "Supplied scoped attestation of one shared acquisition. Underlying identity remains withheld.", + "provided_by_ref": "P4-ACTOR", + "attestor_ref": "P4-ACTOR", + "scope_note": "Supplied fictional material; external authenticity is not examined." + } + ] + }, + "expected": { + "reached_origin_record_count": 0, + "documentary_origin_boundary_record_count": 0, + "unresolved_frontier_reference_count": 1, + "seed_items_with_unresolved_ancestry_count": 1, + "resolution": { + "numerator": 0, + "denominator": 1 + }, + "hhi_state": "unavailable", + "seed_ids": [ + "P4-E1" + ], + "frontier_id": "P4-UNKNOWN", + "reason_codes": [ + "unknown_endpoint", + "upstream_coverage_incomplete" + ], + "excluded_values": [ + "P4-PRIVATE-IDENTITY-CANARY", + "P4-PRIVATE-FRONTIER-CANARY" + ] + } + } + ] +} diff --git a/tests/security/test_report_disclosure.py b/tests/security/test_report_disclosure.py new file mode 100644 index 0000000..78af803 --- /dev/null +++ b/tests/security/test_report_disclosure.py @@ -0,0 +1,327 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W04 source-level privacy controls for the real selected-report seam. + +These finite dossiers and literal semantic expectations precede the selector. +Every canary check starts from a completed private analysis and a complete +logical report. No public audit, renderer, whole-invocation resource ledger or +anonymity/publication certification is claimed by this component exercise. +""" +import copy +import importlib.util +import json +from pathlib import Path + +import pytest + +from source_integrity_toolkit.contracts import report as contract +from source_integrity_toolkit.runtime import disclosure +from source_integrity_toolkit.runtime.boundary import _analyze_value + + +ROOT = Path(__file__).resolve().parents[2] +_spec = importlib.util.spec_from_file_location( + 'p4_w04_disclosure_test_helpers', ROOT / 'tests/contract/test_report_assembly.py') +h = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(h) +CASES = {case['id']: case for case in json.loads( + (ROOT / 'tests/fixtures/adversarial/phase4_report_cases.json').read_bytes())['cases']} + + +def _build(identifier): + case = copy.deepcopy(CASES[identifier]) + source = case['dossier'] + before = copy.deepcopy(source) + outcome = _analyze_value(source) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + port = h.RecordingPort() + frozen = disclosure._assemble_selected_report(outcome, port) + assert type(frozen) is contract._ReportMapping + document = h._plain(frozen) + assert set(document) == set(h.ROOT_FIELDS) + assert document['report_kind'] == 'audit_report' + assert document['input_validation']['state'] == 'accepted' + assert document['run']['processing_state'] == 'completed' + assert len(document['results']) == len(outcome.results) + assert len(document['capabilities']) == 15 + assert len(document['observability_domains']) == 5 + assert 0 < port.units <= 10_000_000 and port.checks > 0 + assert source == before + return case, document + + +@pytest.fixture(scope='module') +def selected_report(): + return _build('P4-W04-EXPLICIT-SELECTION') + + +@pytest.fixture(scope='module') +def correction_report(): + return _build('P4-W04-NATIVE-CORRECTION') + + +@pytest.fixture(scope='module') +def protected_report(): + return _build('P4-W04-PROTECTED-COMMON') + + +@pytest.fixture(scope='module') +def unknown_report(): + return _build('P4-W04-UNKNOWN-FRONTIER') + + +def _objects(value): + """Read only the plain report value, never a private/source representation.""" + if type(value) is dict: + yield value + for child in value.values(): + yield from _objects(child) + elif type(value) is list: + for child in value: + yield from _objects(child) + + +def _strings(value): + if type(value) is str: + yield value + elif type(value) is dict: + for key, child in value.items(): + yield key + yield from _strings(child) + elif type(value) is list: + for child in value: + yield from _strings(child) + + +def _contains(value, canary): + # Compare admitted string values directly. Test-side JSON quoting must not + # hide a backslash-bearing source locator or manufacture a false baseline. + return any(canary in item for item in _strings(value)) + + +def _native(document, identifier): + rows = [obj['native_record'] for obj in _objects(document) + if 'native_record' in obj and obj['native_record'].get('id') == identifier] + assert rows, identifier + ': expected selected native source has no public home' + assert all(row == rows[0] for row in rows) + return rows[0] + + +def _basis(document, collection, identifier): + rows = [row for row in document['basis_index'] + if row['source'] == {'collection': collection, 'identifier': identifier, + 'selector': None}] + assert len(rows) == 1 + return rows[0] + + +def _result(document, field_key): + rows = [row for row in document['results'] if row['field_key'] == field_key] + assert len(rows) == 1, field_key + return rows[0] + + +def _record(source, identifier): + return next(row for collection in ('records', 'assertions', 'evidence_references', 'inquiries') + for row in source[collection] if row['id'] == identifier) + + +@pytest.mark.parametrize('canary', CASES['P4-W04-EXPLICIT-SELECTION']['expected']['excluded_values']) +def test_excluded_source_values_are_absent_from_complete_report(selected_report, canary): + case, document = selected_report + assert len(document['results']) == case['expected']['private_result_count'] + assert _contains(case['dossier'], canary) + assert not _contains(document, canary) + + +def test_selected_fragments_do_not_export_full_source_containers(selected_report): + case, document = selected_report + forbidden = {'extensions', 'excerpt', 'contact_locator', 'display_name', + 'identity_key', 'locator', 'locators', 'citation_locator', + 'external_locator', 'protected_key', 'checksums', 'work_key'} + assert not any(forbidden.intersection(obj) for obj in _objects(document)) + # These real source objects contain excluded fields; their selected native + # homes still have concrete useful content and are not wholesale copies. + for identifier in ('P4-ACTOR', 'P4-ART', 'P4-CLAIM', 'P4-BOUND', 'P4-I001'): + selected = _native(document, identifier) + original = _record(case['dossier'], identifier) + assert selected['id'] == original['id'] and selected != original + assert selected['provenance'] == original['provenance'] + assert _native(document, 'P4-ACTOR')['data'] == { + 'actor_kind': 'human', 'identity_disclosure': 'pseudonymous'} + + +def test_required_context_method_and_ordered_qualifications_remain(selected_report): + case, document = selected_report + required = case['expected']['required'] + assert _native(document, 'P4-CLAIM')['data'] == { + 'claim_key': 'P4-CLAIM-FAMILY', 'version_label': 'v1', + 'context': required['context']} + selected = _native(document, 'P4-BOUND') + assert selected['provenance']['method'] == required['method'] + assert selected['provenance']['qualifications'] == [ + required['qualification_a'], required['qualification_b'], required['qualification_a']] + original = _record(case['dossier'], 'P4-BOUND') + assert selected['scope'] == original['scope'] + assert selected['data'] == original['data'] + assert selected['asserted_at'] == original['asserted_at'] + assert selected['lifecycle_state'] == original['lifecycle_state'] + + +def test_required_basis_attribution_support_availability_and_limits_remain(selected_report): + case, document = selected_report + source = _record(case['dossier'], 'P4-BOUND') + basis = _basis(document, 'assertions', 'P4-BOUND') + assert basis['basis_kind'] == 'documented_record' + assert basis['asserter_ref'] == {'collection': 'records', 'identifier': 'P4-ACTOR', 'selector': None} + assert basis['method'] == source['provenance']['method'] + assert basis['qualifications'] == source['provenance']['qualifications'] + assert basis['support_refs'] == [ + {'collection': 'evidence_references', 'identifier': 'P4-SUPPORT', 'selector': None}] + assert basis['scope']['inquiry_refs'] == [ + {'collection': 'inquiries', 'identifier': 'P4-I001', 'selector': None}] + assert basis['scope']['claim_refs'] == [ + {'collection': 'records', 'identifier': 'P4-CLAIM', 'selector': None}] + assert basis['scope']['effective_window'] == source['scope']['effective_window'] + assert basis['time'] == {'asserted_at': source['asserted_at']} + assert basis['lifecycle'] == {'state': 'active', 'basis_refs': []} + assert basis['check_refs'] + checks = {check['id']: check for check in document['checks']} + assert all(checks[ref]['check_id'] in ('PC05', 'PC06', 'PC07', 'PC08', 'PC09', 'PC10') + for ref in basis['check_refs']) + support = _basis(document, 'evidence_references', 'P4-SUPPORT') + assert support['availability'] == 'supplied' + assert support['qualifications'] == [case['expected']['required']['scope_note']] + + +def test_source_extensions_cannot_grant_publication_or_replace_tool_limits(selected_report): + unused, document = selected_report + reference = h._reference_document() + assert document['release_limits'] == reference['release_limits'] + assert document['run']['qualifications'] == reference['run']['qualifications'] + assert document['run']['tool_name'] == 'Source Integrity Toolkit' + assert not _contains(document, 'P4-W04-PRIVATE-PUBLICATION-APPROVAL') + + +@pytest.mark.parametrize('state', ('accepted', 'failed', 'unknown')) +def test_native_correction_outcomes_keep_attribution_and_do_not_set_run_state(correction_report, state): + case, document = correction_report + identifier = 'P4-W04-HANDLING-' + state.upper() + native = _native(document, identifier) + original = _record(case['dossier'], identifier) + assert native['data']['details'] == { + 'outcome': state, + 'reason': 'P4-W04-REQUIRED-NATIVE-' + state.upper() + ': attributed process state only.'} + assert native['provenance'] == original['provenance'] + assert native['data']['case_ref'] == 'P4-W04-CASE' + assert native['data']['target_refs'] == ['P4-CLAIM'] + result = _result(document, 'correction_case_disclosures') + assert result['result_origin'] == 'attributed_record' + assert result['result_state'] == 'available' + assert document['run']['processing_state'] == 'completed' + + +def test_handling_outcomes_do_not_invent_successful_linked_change(correction_report): + case, document = correction_report + for field, expected in ( + ('correction_case_record_count', case['expected']['case_count']), + ('handling_event_record_count', case['expected']['handling_count']), + ('linked_change_event_record_count', case['expected']['linked_change_count'])): + row = _result(document, field) + assert row['result_state'] == 'available' and row['value'] == expected + assert _native(document, 'P4-W04-CASE')['data']['details']['summary'] == ( + 'P4-W04-REQUIRED-SUBMISSION: review this exact fictional Claim.') + # Correction owner source slots include the submission's deliberately null + # case_ref. A root reference to the same record cannot replace that slot. + assert _native(document, 'P4-W04-CASE')['data']['case_ref'] is None + expected_sources = [ + {'collection': 'inquiries', 'identifier': 'P4-I001', 'selector': None}, + {'collection': 'records', 'identifier': 'P4-W04-CASE', 'selector': 'data.target_refs'}, + *({'collection': 'records', 'identifier': identifier, 'selector': 'data.case_ref'} + for identifier in ('P4-W04-CASE', 'P4-W04-HANDLING-ACCEPTED', + 'P4-W04-HANDLING-FAILED', 'P4-W04-HANDLING-UNKNOWN')), + ] + conditions = {'case_handling_disclosure', 'downstream_change_undocumented'} + findings = [finding for finding in document['findings'] + if finding['condition_code'] in conditions] + assert {finding['condition_code'] for finding in findings} == conditions + for finding in findings: + components = [part for part in finding['witness']['components'] + if part['type'] == 'correction_outcome_witness'] + assert len(components) == 1 + assert components[0]['source_refs'] == expected_sources + assert components[0]['member_count'] == ( + len(components[0]['members']) + len(expected_sources)) + + +def test_correction_contact_and_private_identity_are_excluded_without_losing_route(correction_report): + case, document = correction_report + for canary in case['expected']['excluded_values']: + assert _contains(case['dossier'], canary) and not _contains(document, canary) + channel = _native(document, 'P4-W04-CHANNEL') + assert channel['data']['owner_refs'] == ['P4-ACTOR'] + assert channel['data']['target_refs'] == ['P4-CLAIM'] + assert channel['data']['declared_action_types'] == ['amend'] + assert 'contact_locator' not in channel['data'] + + +def test_two_protected_seed_paths_preserve_one_common_origin(protected_report): + case, document = protected_report + expected = case['expected'] + for field in ('reached_origin_record_count', 'documentary_origin_boundary_record_count', + 'unresolved_frontier_reference_count'): + row = _result(document, field) + assert row['result_state'] == 'available' and row['value'] == expected[field] + assert _result(document, 'documentary_origin_resolution_fraction')['value'] == expected['resolution'] + assert _result(document, 'single_origin_contribution_hhi')['value'] == expected['hhi'] + for field in ('per_seed_origin_memberships', 'origin_incidence_counts'): + incidence = _result(document, field)['value'] + assert [row['member_ref']['identifier'] for row in incidence['memberships']] == expected['seed_ids'] + assert all([ref['identifier'] for ref in row['origin_refs']] == [expected['origin_id']] + for row in incidence['memberships']) + assert len(incidence['origin_counts']) == 1 + assert incidence['origin_counts'][0]['count'] == 2 + assert incidence['origin_counts'][0]['origin_ref']['identifier'] == expected['origin_id'] + + +def test_protected_attestation_keeps_visible_support_and_specific_limits(protected_report): + case, document = protected_report + native = _native(document, 'P4-ACTOR') + assert native['data']['identity_disclosure'] == 'protected' + assert 'identity_key' not in native['data'] and 'display_name' not in native['data'] + boundary = _basis(document, 'assertions', 'P4-BOUND') + original = _record(case['dossier'], 'P4-BOUND') + assert boundary['basis_kind'] == 'protected_attestation' + assert boundary['qualifications'] == original['provenance']['qualifications'] + support = _basis(document, 'evidence_references', 'P4-SUPPORT') + assert support['availability'] == 'supplied' + assert support['attestor_ref'] == {'collection': 'records', 'identifier': 'P4-ACTOR', 'selector': None} + assert support['qualifications'] == [_record(case['dossier'], 'P4-SUPPORT')['scope_note']] + for canary in case['expected']['excluded_values']: + assert _contains(case['dossier'], canary) and not _contains(document, canary) + + +def test_withheld_frontier_does_not_become_an_independent_or_unrelated_origin(unknown_report): + case, document = unknown_report + expected = case['expected'] + for field in ('reached_origin_record_count', 'documentary_origin_boundary_record_count', + 'unresolved_frontier_reference_count', 'seed_items_with_unresolved_ancestry_count'): + row = _result(document, field) + assert row['result_state'] == 'available' and row['value'] == expected[field] + assert _result(document, 'documentary_origin_resolution_fraction')['value'] == expected['resolution'] + hhi = _result(document, 'single_origin_contribution_hhi') + assert hhi['result_state'] == expected['hhi_state'] and hhi['value'] is None + memberships = _result(document, 'per_seed_origin_memberships')['value']['memberships'] + assert [row['member_ref']['identifier'] for row in memberships] == expected['seed_ids'] + assert all(row['origin_refs'] == [] for row in memberships) + assert set(expected['reason_codes']) <= {reason['code'] for reason in document['reasons']} + frontiers = [obj for obj in _objects(document) + if obj.get('id') == expected['frontier_id'] and obj.get('kind') == 'unresolved_reference'] + assert frontiers + for frontier in frontiers: + assert frontier['data']['expected_kinds'] == ['origin_event'] + assert frontier['data']['reason'] == 'withheld' + assert 'protected_key' not in frontier['data'] + for canary in expected['excluded_values']: + assert _contains(case['dossier'], canary) and not _contains(document, canary) From 98dd68b71f84dad3286355dfdb05d528f3bcfab1 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 05:12:14 -0700 Subject: [PATCH 11/21] Encode exact JSON reports within the existing output budget Implement explicit frozen-value J encoding with scalar key ordering, exact numeric spelling, prescribed control escapes and one final LF. Reserve each output fragment prospectively and retain ordered arrays and raw fractions. Attach separate fixed format counters to the existing finalization ledger, preserve first-cause stopping and map safe report aborts without changing private analysis behavior. Add independent byte and resource-boundary tests. Record 432 passing focused tests and the completed prior W04 hosted status. Markdown, whole-invocation composition and public delivery remain pending. SIT-Phase-Unit: P4-W05 --- phase4/implementation_evidence.json | 4562 ++++++++++------- phase4/report_contract_coverage.json | 183 +- .../contracts/execution.py | 17 +- .../reporting/escaping.py | 309 +- .../reporting/json_report.py | 28 +- .../runtime/diagnostics.py | 23 + .../runtime/resources.py | 76 +- tests/contract/test_json_report.py | 263 + tests/security/test_report_resource_limits.py | 399 ++ 9 files changed, 3851 insertions(+), 2009 deletions(-) create mode 100644 tests/contract/test_json_report.py create mode 100644 tests/security/test_report_resource_limits.py diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 70f6803..a6980c7 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,683 +1,400 @@ { "phase": "P4", - "current_unit": "P4-W04", - "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", - "owner_authorization": { - "instruction": "W04继续", - "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, + "current_unit": "P4-W05", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "W03_local_targeted_tests": 5982, - "hosted_result": { - "run_id": 40170942968, - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "attempt": 1, - "run_status": "completed", - "run_conclusion": "failure", - "failed_profile": { - "matrix": "windows-2025 / Python 3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "artifact_bytes": 244690, - "raw_files": 47, - "pytest_exit": { - "error_type": "TimeoutExpired", - "exit_code": null, - "incomplete": true, - "interrupted": false, - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "timed_out": true, - "timeout_seconds": 2400 - }, - "test_failure": { - "error_type": "TimeoutExpired", - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "stage": "test" - }, - "evidence_failure": { - "error_type": "ValueError", - "message": "earlier_stage_failed", - "stage": "evidence" - }, - "collection_count": 9653, - "junit_present": false, - "test_record_present": false, - "source_after_present": false, - "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." + "unit": "P4-W04", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", + "hosted_status": { + "saved_at_utc": "2026-10-25T12:03:35.195Z", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "runs": { + "workflow_runs": [ + { + "id": 40175369945, + "name": "P1-W02 selected-toolchain verification", + "status": "completed", + "conclusion": "skipped", + "run_number": 92, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", + "workflow_id": 361073157 + }, + { + "id": 40175369950, + "name": "Current verification", + "status": "completed", + "conclusion": "success", + "run_number": 106, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", + "workflow_id": 361447276 + } + ] }, - "comparison_profile": { - "matrix": "windows-2025 / Python 3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "artifact_bytes": 363913, - "pytest_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - }, - "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", - "timing": "windows313-timing-focused.json", - "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + "jobs": { + "jobs": [ + { + "id": 121114762732, + "name": "analytical core (windows-2025, Python 3.13)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762895, + "name": "analytical core (ubuntu-24.04, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762924, + "name": "analytical core (ubuntu-24.04, Python 3.13)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762983, + "name": "analytical core (windows-2025, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + } + ] }, - "diagnostic_profile": "guard-single-call-profile.json", - "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", - "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." }, - "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." }, - "inherited_W01_repair": { - "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", - "owner": "P4-W01", - "activation_stage": 3, - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "tests/scaffold/test_imports.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_module_manifest.py", - "tests/security/test_preparation_inertness.py", - "tests/scaffold/test_ci_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + "changes": [ + { + "paths": [ + "P05", + "P06" ], - "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "started_at_utc": "2026-10-25T07:57:05.151778+00:00", - "elapsed_seconds": 259.7052340929986, - "exit_code": 0, - "timeout_seconds": 1200, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_count": 224, - "source_hashes_unchanged": true, - "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "576", - "time": "259.471", - "timestamp": "2026-10-25T01:57:05.272902-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_verification_boundary": 213, - "tests.scaffold.test_imports": 50, - "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, - "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, - "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, - "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, - "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, - "tests.security.test_preparation_inertness": 39, - "tests.scaffold.test_ci_contract.CiContractTests": 14, - "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, - "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." }, - "collection_preservation": { - "before_exit": 0, - "after_exit": 0, - "before_count": 211, - "after_count": 213, - "original_211_ordered_cases_unchanged": true, - "added": [ - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "before_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + { + "paths": [ + "P02", + "P08", + "P09" ], - "after_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ] - }, - "same_source_timing": { - "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", - "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", - "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "module_sha256": { - "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", - "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", - "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", - "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", - "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", - "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", - "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", - "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", - "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", - "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", - "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", - "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", - "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", - "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", - "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", - "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", - "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", - "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", - "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", - "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", - "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", - "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", - "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", - "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", - "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", - "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", - "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", - "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", - "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", - "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", - "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", - "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", - "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", - "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", - "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", - "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", - "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", - "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", - "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", - "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", - "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", - "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", - "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", - "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", - "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", - "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", - "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", - "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" - }, - "guard_sha256": { - "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", - "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" - }, - "seconds": { - "before": [ - 1.170046082999761, - 1.182108517998131, - 1.114261736998742 - ], - "after": [ - 0.6021103010025399, - 0.5637806820013793, - 0.5558995499995945 - ] - }, - "median_seconds": { - "before": 1.170046082999761, - "after": 0.5637806820013793 - }, - "same_empty_issues": { - "before": [], - "after": [] - }, - "after_parse_counts": { - "current_module_issues": 48, - "_phase2_layer_issues": 18, - "executable_ast": 36 - } + "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." }, - "raw_directory": "p4w04-w01-repair", - "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." - }, - "changes": [ - "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", - "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", - "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", - "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", - "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + { + "paths": [ + "N04", + "N10" + ], + "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + } ], "changed_scope": { - "W04": [ - "src/source_integrity_toolkit/reporting/assemble.py", - "src/source_integrity_toolkit/runtime/disclosure.py", - "tests/contract/test_report_assembly.py", - "tests/security/test_report_disclosure.py", - "tests/fixtures/adversarial/phase4_report_cases.json", + "unit": "P4-W05", + "paths": [ + "src/source_integrity_toolkit/contracts/execution.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/json_report.py", + "src/source_integrity_toolkit/runtime/resources.py", + "src/source_integrity_toolkit/runtime/diagnostics.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", "phase4/report_contract_coverage.json", "phase4/implementation_evidence.json" ], - "separate_W01": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "approved_ids": [ + "P02", + "P05", + "P06", + "P08", + "P09", + "N04", + "N10", + "D04", + "D05" ], - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" + "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." }, "validation": { "execution": { @@ -687,77 +404,134 @@ "-m", "pytest", "-q", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/security/test_report_disclosure.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + "tests/security/test_input_resource_limits.py", + "tests/security/test_analytical_resource_limits.py", + "tests/security/test_input_diagnostics.py", + "tests/security/test_analytical_diagnostics.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" ], - "started_at_utc": "2026-10-25T07:57:29.452245+00:00", - "elapsed_seconds": 73.28405752199978, + "started_at_utc": "2026-10-25T12:07:49.098267+00:00", + "elapsed_seconds": 10.06384003399944, "exit_code": 0, "timeout_seconds": 900, "timed_out": false, "interrupted": false, "incomplete": false, - "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "source_files": 226, + "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "source_files": 228, "source_bytes_unchanged": true, - "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." }, "junit": { "name": "pytest", "errors": "0", "failures": "0", "skipped": "0", - "tests": "186", - "time": "73.047", - "timestamp": "2026-10-25T01:57:29.593002-06:00", + "tests": "432", + "time": "9.770", + "timestamp": "2026-10-25T06:07:49.242461-06:00", "hostname": "d6921570ec2c" }, "cases_by_classname": { - "tests.contract.test_report_assembly": 55, - "tests.contract.test_report_identity": 16, - "tests.security.test_report_disclosure": 26, - "tests.contract.test_report_test_oracles": 89 + "tests.contract.test_json_report": 148, + "tests.security.test_report_resource_limits": 38, + "tests.contract.test_report_test_oracles": 89, + "tests.security.test_input_resource_limits": 36, + "tests.security.test_analytical_resource_limits": 60, + "tests.security.test_input_diagnostics": 32, + "tests.security.test_analytical_diagnostics": 29 }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58955, - "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + "tested_product_and_test_bytes": { + "src/source_integrity_toolkit/contracts/execution.py": { + "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", + "bytes": 11231 + }, + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", + "bytes": 10969 + }, + "src/source_integrity_toolkit/reporting/json_report.py": { + "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", + "bytes": 1064 }, - "src/source_integrity_toolkit/runtime/disclosure.py": { - "bytes": 38666, - "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + "src/source_integrity_toolkit/runtime/resources.py": { + "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", + "bytes": 16699 }, - "tests/contract/test_report_assembly.py": { - "bytes": 71321, - "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + "src/source_integrity_toolkit/runtime/diagnostics.py": { + "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", + "bytes": 9437 }, - "tests/security/test_report_disclosure.py": { - "bytes": 16111, - "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + "tests/contract/test_json_report.py": { + "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "bytes": 10790 }, - "tests/fixtures/adversarial/phase4_report_cases.json": { - "bytes": 64693, - "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + "tests/security/test_report_resource_limits.py": { + "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", + "bytes": 16947 } }, - "post_test_inheritance": { - "paths": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "actual_test_nodes": { + "tests/contract/test_json_report.py": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" ], - "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." - } + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ] + }, + "reference_probe": { + "exact_reference": true, + "bytes": 421307, + "assembly_units": 6740573, + "encoder_units": 2768497, + "total_units": 9509070, + "output": { + "json": 421307, + "markdown": 0 + }, + "elapsed_seconds": 3.0059238750000077, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "independent_review": { + "status": "passed_no_blocking_findings", + "file": "p4w05-independent-review.json", + "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" + }, + "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." }, "package_boundary": { - "ok": true, + "activation_stage": 5, "checked_modules": 48, + "entry_byte_protected_modules": 40, "issues": [], - "activation_stage": 4, + "ok": true, "promoted_modules": [ "analysis/context.py", "analysis/contribution_profile.py", @@ -782,6 +556,8 @@ "graph/witnesses.py", "io/input_file.py", "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", "runtime/boundary.py", "runtime/diagnostics.py", "runtime/disclosure.py", @@ -791,154 +567,885 @@ "validation/semantics.py", "validation/structure.py" ], - "protected_modules": 17, - "entry_byte_protected_modules": 44, + "protected_modules": 15, "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, "failures_and_repairs": [ { - "failure": "Initial product reference differed only in the set order of Finding input references.", - "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", - "raw": "p4w04-product-reference-01" - }, - { - "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", - "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", - "raw": [ - "p4w04-security-001", - "p4w04-product-frontier-01" - ] - }, - { - "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", - "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", - "raw": [ - "p4w04-correction-home-diagnosis.json", - "p4w04-security-001", - "p4w04-security-002" - ] - }, - { - "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", - "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", - "raw": [ - "p4w04-n02-full-01", - "p4w04-scan-fixture-trace-01", - "p4w04-security-001" - ] + "evidence": "p4w05-json-001.log/.xml/-execution.json", + "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", + "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", + "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." } ], - "remaining": { - "W05_W06": "JSON and Markdown product encoders pending", - "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", - "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", - "W09_W10": "Full public obligation execution and final phase acceptance pending", - "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", - "file_native_cli_release": "Deferred" - }, - "historical_records": [ - { + "remaining": [ + "W06 Markdown and substantive parity are not started.", + "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", + "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", + "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", + "File/CLI/native publication, merge and release remain deferred.", + "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." + ], + "historical_records": { + "P4-W04": { "phase": "P4", - "current_unit": "P4-W03", - "active_repair_owner_unit": "P4-W01", - "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", + "current_unit": "P4-W04", + "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", "owner_authorization": { "instruction": "W04继续", - "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", - "owner_unit": "P4-W01", - "activation_stage": 3, - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "previous_checkpoint": { "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "local_targeted_tests": 5982, - "hosted_run": 40170942968, - "attempt": 1, - "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + "W03_local_targeted_tests": 5982, + "hosted_result": { + "run_id": 40170942968, + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "attempt": 1, + "run_status": "completed", + "run_conclusion": "failure", + "failed_profile": { + "matrix": "windows-2025 / Python 3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "artifact_bytes": 244690, + "raw_files": 47, + "pytest_exit": { + "error_type": "TimeoutExpired", + "exit_code": null, + "incomplete": true, + "interrupted": false, + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "timed_out": true, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "TimeoutExpired", + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "collection_count": 9653, + "junit_present": false, + "test_record_present": false, + "source_after_present": false, + "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." + }, + "comparison_profile": { + "matrix": "windows-2025 / Python 3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "artifact_bytes": 363913, + "pytest_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", + "timing": "windows313-timing-focused.json", + "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + }, + "diagnostic_profile": "guard-single-call-profile.json", + "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", + "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + }, + "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + }, + "inherited_W01_repair": { + "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", + "owner": "P4-W01", + "activation_stage": 3, + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "tests/scaffold/test_imports.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_module_manifest.py", + "tests/security/test_preparation_inertness.py", + "tests/scaffold/test_ci_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + ], + "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "started_at_utc": "2026-10-25T07:57:05.151778+00:00", + "elapsed_seconds": 259.7052340929986, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_count": 224, + "source_hashes_unchanged": true, + "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "576", + "time": "259.471", + "timestamp": "2026-10-25T01:57:05.272902-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_verification_boundary": 213, + "tests.scaffold.test_imports": 50, + "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, + "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, + "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, + "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, + "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, + "tests.security.test_preparation_inertness": 39, + "tests.scaffold.test_ci_contract.CiContractTests": 14, + "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, + "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + }, + "collection_preservation": { + "before_exit": 0, + "after_exit": 0, + "before_count": 211, + "after_count": 213, + "original_211_ordered_cases_unchanged": true, + "added": [ + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "before_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + ], + "after_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ] + }, + "same_source_timing": { + "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "module_sha256": { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", + "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + }, + "guard_sha256": { + "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", + "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + }, + "seconds": { + "before": [ + 1.170046082999761, + 1.182108517998131, + 1.114261736998742 + ], + "after": [ + 0.6021103010025399, + 0.5637806820013793, + 0.5558995499995945 + ] + }, + "median_seconds": { + "before": 1.170046082999761, + "after": 0.5637806820013793 + }, + "same_empty_issues": { + "before": [], + "after": [] + }, + "after_parse_counts": { + "current_module_issues": 48, + "_phase2_layer_issues": 18, + "executable_ast": 36 + } + }, + "raw_directory": "p4w04-w01-repair", + "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" + "changes": [ + "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", + "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", + "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", + "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", + "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + ], + "changed_scope": { + "W04": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/runtime/disclosure.py", + "tests/contract/test_report_assembly.py", + "tests/security/test_report_disclosure.py", + "tests/fixtures/adversarial/phase4_report_cases.json", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 + "separate_W01": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" }, - "failure_diagnosis": { - "failed_profile": "windows-2025 Python3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "raw_files": 47, - "pytest": { - "exit_code": null, - "error_type": "TimeoutExpired", - "timeout_seconds": 2400, - "timed_out": true, - "incomplete": true, - "junit_present": false + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" }, - "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", - "comparison": { - "profile": "windows-2025 Python3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "passed_tests": 9653, - "successful_subtests": 533, - "pytest_seconds": 2397.33, - "junit_seconds": 2397.258, - "testcase_seconds": 2388.211, - "V02_seconds": 668.918, - "largest_V02_case_seconds": 145.581, - "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 }, - "raw_directory": "p4w04-prior-ci-diagnosis", - "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + }, + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + }, + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + }, + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + } + }, + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } }, - "changes": [ + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 4, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 17, + "entry_byte_protected_modules": 44, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "failure": "Initial product reference differed only in the set order of Finding input references.", + "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", + "raw": "p4w04-product-reference-01" + }, { - "path": "tools/check_scaffold_boundary.py", - "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", + "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", + "raw": [ + "p4w04-security-001", + "p4w04-product-frontier-01" + ] }, { - "path": "tests/contract/test_verification_boundary.py", - "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", + "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", + "raw": [ + "p4w04-correction-home-diagnosis.json", + "p4w04-security-001", + "p4w04-security-002" + ] }, { - "path": "phase4/implementation_evidence.json", - "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", + "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", + "raw": [ + "p4w04-n02-full-01", + "p4w04-scan-fixture-trace-01", + "p4w04-security-001" + ] } ], - "preserved_guarantees": [ - "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", - "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", - "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", - "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", - "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." - ], - "validation": { - "state": "pending after this locally reviewable commit", - "original_V02_definitions": 62, - "changed_existing_V02_definitions": [], - "added_V02_tests": [ - "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", - "test_current_source_checks_parse_fresh_after_mutation_and_restoration" - ], - "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." + "remaining": { + "W05_W06": "JSON and Markdown product encoders pending", + "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", + "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", + "W09_W10": "Full public obligation execution and final phase acceptance pending", + "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", + "file_native_cli_release": "Deferred" }, "historical_records": [ { "phase": "P4", "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -950,269 +1457,76 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." - }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." - ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" - ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 - }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" - }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } - }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] - } - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] - } - } - }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" - }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." }, - "failures_and_repairs": [ - { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] - }, - { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] - }, - { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] - }, + "changes": [ { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." }, { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." }, { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." } ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" + ], + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { @@ -1226,797 +1540,269 @@ "post_merge_run": 38164028893 }, "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." }, "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" + ], + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } - ], - "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 + }, + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" + }, + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" + } + }, + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + "changed_definitions": [] }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } - ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." - }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" - }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 - }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" } }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" } }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" - }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 - }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" - }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" - }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" - } - }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } - }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } - }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } - } + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" - } + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" - }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" - }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 - }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } - ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" - }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" - } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." - } - } + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." }, "failures_and_repairs": [ { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] - }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] - }, - { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" ] }, { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" ] }, { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" ] }, { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" ] }, { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" ] }, { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" ] } ], "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -2028,235 +1814,1043 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 + }, + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + }, + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, "package_boundary": { "result": "passed", - "stage": 1, + "activation_stage": 2, "checked_modules": 48, - "byte_protected_modules": 48 + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + }, + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] + }, + { + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] + }, + { + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." + }, + { + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." + }, + { + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." } ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" } ], - "authority_notice": "Review-only evidence, not authority, product input or test selection.", - "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", - "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" + "authority_notice": "Review-only evidence; not product input or authorization policy.", + "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", + "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." } - ], - "authority_notice": "Review-only evidence; not product input or authorization policy.", - "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", - "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", + "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", + "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index 0d2875d..008e623 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,7 +1,7 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W04", - "status": "W04 actual internal selected-field disclosure and assembly verified on bounded real outcomes; public delivery and rendering remain pending", + "unit": "P4-W05", + "status": "W05 exact internal JSON and bounded output accounting verified; public delivery, Markdown and whole-invocation integration remain pending", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", @@ -11900,9 +11900,29 @@ "source": "REPOSITORY_ARCHITECTURE.md §§17.2–17.4,18.3; GOVERNANCE_AND_HANDOFF.md §22.1", "planned_unit": "P4-W05", "required_behavior": "J plus one LF; exact scalar/key/control encoding, native ordered arrays, portable integer values and original rational components; optional JSON display_decimal omitted.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "verified_internal_encoder_W05", + "actual_test_nodes": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" + ], + "execution_evidence": [ + { + "file": "p4w05-targeted-001.xml", + "tests_in_json_file": 148, + "zero_failures_errors_skips": true, + "reference_bytes": 421307 + } + ] }, { "clause": "exact_markdown", @@ -11938,7 +11958,28 @@ "required_behavior": "Reconcile private retained witness reservations with public Finding/member occurrences without double reserve or lost members; separate encoded-byte limits for JSON and Markdown, no clipping.", "status": "pending", "actual_test_nodes": [], - "execution_evidence": [] + "execution_evidence": [], + "w05_component_evidence": { + "status": "output_encoding_component_verified; full witness/composition obligation remains pending", + "actual_test_nodes": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ], + "execution_evidence": "p4w05-targeted-001.xml", + "scope": "Fixed 67108864 separate counters, actual remaining-space encoding/LF boundaries, first-cause and no-prefix return. No full64MiB encoding or W07 witness reconciliation claim." + } }, { "clause": "public_invocation", @@ -15131,5 +15172,135 @@ "static_mapping_review": "47 concrete native/time field rules and five variant dispatch maps match the frozen schema. This mapping review does not claim actual execution of every public obligation or every variant.", "implementation": "All nineteen registered disclosure field branches and six retained witness forms use explicit selected fields. No runtime schema or generic source-record export.", "pending": "All 228 public-pipeline/rendering obligation rows remain pending W09; W07 shared invocation and W08 public delivery are not represented by these component tests." + }, + "w05_verification": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_report_test_oracles.py", + "tests/security/test_input_resource_limits.py", + "tests/security/test_analytical_resource_limits.py", + "tests/security/test_input_diagnostics.py", + "tests/security/test_analytical_diagnostics.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T12:07:49.098267+00:00", + "elapsed_seconds": 10.06384003399944, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "source_files": 228, + "source_bytes_unchanged": true, + "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "432", + "time": "9.770", + "timestamp": "2026-10-25T06:07:49.242461-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_json_report": 148, + "tests.security.test_report_resource_limits": 38, + "tests.contract.test_report_test_oracles": 89, + "tests.security.test_input_resource_limits": 36, + "tests.security.test_analytical_resource_limits": 60, + "tests.security.test_input_diagnostics": 32, + "tests.security.test_analytical_diagnostics": 29 + }, + "tested_product_and_test_bytes": { + "src/source_integrity_toolkit/contracts/execution.py": { + "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", + "bytes": 11231 + }, + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", + "bytes": 10969 + }, + "src/source_integrity_toolkit/reporting/json_report.py": { + "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", + "bytes": 1064 + }, + "src/source_integrity_toolkit/runtime/resources.py": { + "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", + "bytes": 16699 + }, + "src/source_integrity_toolkit/runtime/diagnostics.py": { + "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", + "bytes": 9437 + }, + "tests/contract/test_json_report.py": { + "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "bytes": 10790 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", + "bytes": 16947 + } + }, + "actual_test_nodes": { + "tests/contract/test_json_report.py": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" + ], + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ] + }, + "reference_probe": { + "exact_reference": true, + "bytes": 421307, + "assembly_units": 6740573, + "encoder_units": 2768497, + "total_units": 9509070, + "output": { + "json": 421307, + "markdown": 0 + }, + "elapsed_seconds": 3.0059238750000077, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "independent_review": { + "status": "passed_no_blocking_findings", + "file": "p4w05-independent-review.json", + "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" + }, + "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." } } diff --git a/src/source_integrity_toolkit/contracts/execution.py b/src/source_integrity_toolkit/contracts/execution.py index fce0f62..0af8bde 100644 --- a/src/source_integrity_toolkit/contracts/execution.py +++ b/src/source_integrity_toolkit/contracts/execution.py @@ -263,16 +263,23 @@ def __repr__(self) -> str: return "AuditUsageError()" -class _ReportFinalizationPort(_FinalizationPort, Protocol): - """Declaration for the same invocation's restricted report finalization. +class _ReportEncodingPort(_FinalizationPort, Protocol): + """Restricted byte accounting on the existing finalization ledger. - Implemented only by project-owned runtime objects in the later composition - unit. No clock, I/O, caller callback, new ledger or configurable limit is - exposed. Output accounting is separate for the two fixed encodings. + The runtime supplies this internal port; renderers cannot create a ledger, + choose a limit or reset the invocation deadline. Charge each prospective + encoded fragment before allocation. The two fixed encodings count separately. """ def charge_output(self, encoding: str, byte_count: int) -> None: ... + +class _ReportFinalizationPort(_ReportEncodingPort, Protocol): + """Later composition adds witness accounting to bounded report encoding. + + This declaration does not activate runtime composition or report delivery. + No clock, I/O, caller callback, new ledger or configurable limit is exposed. + """ def reserve_report_witness(self, witnesses: int, members: int) -> None: ... diff --git a/src/source_integrity_toolkit/reporting/escaping.py b/src/source_integrity_toolkit/reporting/escaping.py index a33d2f6..d7b7287 100644 --- a/src/source_integrity_toolkit/reporting/escaping.py +++ b/src/source_integrity_toolkit/reporting/escaping.py @@ -1,10 +1,307 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Non-operational Phase 1 slot: reporting/escaping. +"""Owner: REPORT_PRESENTATION. Bounded SIT-RP-0.1 J encoding. -Owner: REPORT_PRESENTATION. -Authority: REPOSITORY_ARCHITECTURE.md sections 5-10 and 16-20; -PHASE_1_PLAN.md sections 4 and 6. -Specification adopted; scaffold slot present; behavior unimplemented. -No validation, traversal, scoring, rendering, I/O or native binding is provided. +Only project-owned frozen report values reach this private seam. It grants no +input admission, public serialization, source projection or report delivery. +Each emitted byte is reserved before its allocation, through the supplied +same-context output port. Work is charged separately for each traversal, +comparison, conversion and copy. No renderer owns a clock or fresh budget. """ +from ..contracts.bundle import _Number, _number_bytes, _compare_text +from ..contracts.execution import _byte_work +from ..contracts.report import _ReportMapping, _ReportContractError + + +_MAX_INTEGER = 9_007_199_254_740_991 + + +def _require(ok): + if not ok: + raise _ReportContractError('invalid_report_contract') from None + + +class _NumericPort: + """Retain the existing exact-number arithmetic without admission effects.""" + __slots__ = ('_port',) + + def __init__(self, port): + self._port = port + + def charge(self, units): + self._port.charge(units) + + def check(self): + self._port.check() + + def reject(self, code, constraint=None): + _require(False) + + def interrupt(self, limit_id): + _require(False) + + +def _atom_length(atom, port): + """Measure the admitted atom before the existing helper emits its token. + + Exponent magnitude is bounded before decimal conversion; candidate lengths + are compared before any zero expansion. The longest actual token is 128. + This measures the same representation as contracts.bundle._number_bytes. + """ + port.charge(5) + c, e, sign = atom.coefficient, atom.exponent, atom.sign + _require(type(c) is str and type(e) is int and type(sign) is int) + _require(type(atom.source_kind) is str and + atom.source_kind in ('integer', 'decimal', 'binary_float')) + _require(sign in (-1, 0, 1) and 1 <= len(c) <= 128) + _byte_work(port, len(c), len(c) + 1) + _require(all('0' <= ch <= '9' for ch in c)) + if c == '0': + _require(sign == 0 and e == 0) + return 1 + _require(sign != 0 and c[0] != '0' and c[-1] != '0') + negative = int(sign < 0) + n = len(c) + if e >= 0: + _require(e <= 16 and n + e <= 16) + _byte_work(port, 32, 3) + digits = c + '0' * e + _require(len(digits) < 16 or digits <= '9007199254740991') + port.check() + return n + e + negative + _require(e.bit_length() <= 432) + _byte_work(port, 140, 3) + exponent_length = len(str(e)) + point = n + e + ordinary = n + 1 if point > 0 else 2 - point + n + scientific = n + 1 + exponent_length + length = min(ordinary, scientific) + negative + _require(length <= 128) + port.check() + return length + + +def _sorted_report_pairs(value, port): + """Charged stable bottom-up merge; no dict hashing or custom sort key.""" + port.charge(2) + pairs = value._pairs + _require(type(pairs) is tuple) + source = [] + for pair in pairs: + port.charge(3) + _require(type(pair) is tuple and len(pair) == 2) + _require(type(pair[0]) is str) + source.append(pair) + n, width = len(source), 1 + while width < n: + port.charge(1) + target = [] + for start in range(0, n, width * 2): + i, middle, end = start, min(start + width, n), min(start + width * 2, n) + j = middle + while i < middle or j < end: + if j == end or (i < middle and + _compare_text(source[i][0], source[j][0], port) <= 0): + port.charge(1) + target.append(source[i]) + i += 1 + else: + port.charge(1) + target.append(source[j]) + j += 1 + source = target + width *= 2 + for position in range(1, n): + port.charge(1) + _require(_compare_text(source[position - 1][0], source[position][0], port) < 0) + port.charge(n + 1) + result = tuple(source) + port.check() + return result + + +def _escaped(code): + return (code < 32 or 127 <= code <= 159 or code == 0x061C or + 0x200E <= code <= 0x200F or 0x2028 <= code <= 0x202E or + 0x2066 <= code <= 0x2069) + + +class _JWriter: + """One bounded result buffer; partial fragments never escape on a stop.""" + __slots__ = ('_port', '_encoding', '_parts', '_length') + + def __init__(self, port, encoding): + _require(type(encoding) is str and encoding in ('json', 'markdown')) + port.charge(4) + self._port = port + self._encoding = encoding + self._parts = [] + self._length = 0 + + def _reserve(self, length): + self._port.charge_output(self._encoding, length) + + def _retain(self, fragment): + # The caller already paid the fragment's creation. Retention/counter + # arithmetic are distinct from the eventual whole-buffer copy. + self._port.charge(2) + self._parts.append(fragment) + self._length += len(fragment) + + def literal(self, fragment): + # All callers supply fixed internal syntax bytes, never source bytes. + self._reserve(len(fragment)) + _byte_work(self._port, len(fragment), 1) + self._retain(fragment) + + def string(self, value): + port = self._port + self.literal(b'"') + for start in range(0, len(value), 64): + size = min(64, len(value) - start) + _byte_work(port, size * 4, 2) + block = value[start:start + size] + port.check() + # Each input block is <=256 UTF-8 bytes. Measure before allocating + # its encoded counterpart; escapes can expand it to <=384 bytes. + _byte_work(port, size * 4, size + 1) + length = 0 + for char in block: + code = ord(char) + _require(not 0xD800 <= code <= 0xDFFF) + length += (6 if _escaped(code) else 2 if char in ('"', '\\') + else 1 if code < 128 else 2 if code < 2048 + else 3 if code < 65536 else 4) + port.check() + self._reserve(length) + _byte_work(port, size * 4, 2 * size + 2) + _byte_work(port, length, size + 1) + parts = [] + for char in block: + code = ord(char) + if _escaped(code): + fragment = ('\\u%04x' % code).encode('ascii') + elif char in ('"', '\\'): + fragment = ('\\' + char).encode('ascii') + else: + fragment = char.encode('utf-8') + parts.append(fragment) + port.check() + _byte_work(port, length, len(parts) + 1) + fragment = b''.join(parts) + port.check() + self._retain(fragment) + self.literal(b'"') + + def integer(self, value): + port = self._port + port.charge(3) + _require(-_MAX_INTEGER <= value <= _MAX_INTEGER) + # Conversion is bounded by the portable range. Decimal digits are + # measured without creating the final textual/byte representation. + _byte_work(port, 34, 2) + remaining = -value if value < 0 else value + length = 1 + int(value < 0) + while remaining >= 10: + _byte_work(port, 34, 1) + remaining //= 10 + length += 1 + self._reserve(length) + _byte_work(port, length * 2, 2) + fragment = str(value).encode('ascii') + port.check() + self._retain(fragment) + + def atom(self, value): + port = self._port + length = _atom_length(value, port) + self._reserve(length) + port.charge(1) + fragment = _number_bytes(value, _NumericPort(port)) + _require(len(fragment) == length) + self._retain(fragment) + + def value(self, value): + port = self._port + port.charge(3) + pending = [('visit', value)] + active = set() + while pending: + port.charge(1) + action, current = pending.pop() + if action == 'object': + pairs, position, identity = current + if position == len(pairs): + self.literal(b'}') + port.charge(1) + active.remove(identity) + continue + if position: + self.literal(b',') + port.charge(1) + key, child = pairs[position] + self.string(key) + self.literal(b':') + port.charge(3) + pending.append(('object', (pairs, position + 1, identity))) + pending.append(('visit', child)) + continue + if action == 'array': + items, position, identity = current + if position == len(items): + self.literal(b']') + port.charge(1) + active.remove(identity) + continue + if position: + self.literal(b',') + port.charge(3) + pending.append(('array', (items, position + 1, identity))) + pending.append(('visit', items[position])) + continue + kind = type(current) + if current is None: + self.literal(b'null') + elif kind is bool: + self.literal(b'true' if current else b'false') + elif kind is int: + self.integer(current) + elif kind is str: + self.string(current) + elif kind is _Number: + self.atom(current) + elif kind is _ReportMapping or kind is tuple: + port.charge(3) + identity = id(current) + _require(identity not in active) + active.add(identity) + if kind is _ReportMapping: + pairs = _sorted_report_pairs(current, port) + self.literal(b'{') + port.charge(2) + pending.append(('object', (pairs, 0, identity))) + else: + self.literal(b'[') + port.charge(2) + pending.append(('array', (current, 0, identity))) + else: + _require(False) + port.check() + + def finish(self): + port = self._port + _byte_work(port, self._length, len(self._parts) + 1) + result = b''.join(self._parts) + port.check() + return result + + +def _encode_j(value, port, *, encoding='json'): + """Encode a trusted frozen value as J, without a terminal line feed. + + Exact number atoms are internal scalar support, not new public report + fields or accepted caller values. No arbitrary mapping/dataclass is read. + """ + writer = _JWriter(port, encoding) + writer.value(value) + return writer.finish() diff --git a/src/source_integrity_toolkit/reporting/json_report.py b/src/source_integrity_toolkit/reporting/json_report.py index fa7905d..1ebbd3a 100644 --- a/src/source_integrity_toolkit/reporting/json_report.py +++ b/src/source_integrity_toolkit/reporting/json_report.py @@ -1,10 +1,26 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Non-operational Phase 1 slot: reporting/json_report. +"""Owner: REPORT_PRESENTATION. Exact JSON bytes for one frozen report. -Owner: REPORT_PRESENTATION. -Authority: REPOSITORY_ARCHITECTURE.md sections 5-10 and 16-20; -PHASE_1_PLAN.md sections 4 and 6. -Specification adopted; scaffold slot present; behavior unimplemented. -No validation, traversal, scoring, rendering, I/O or native binding is provided. +The caller supplies the already validated, selected logical document and its +restricted same-context encoding port. No source projection, analytical work, +new budget, public AuditReport construction or filesystem access occurs here. """ +from ..contracts.report import _ReportMapping, _ReportContractError +from .escaping import _JWriter + + +def _encode_json_report(document, port): + """Return J(document) and exactly one LF, both under the JSON byte cap. + + A partial encoding is never returned. This internal component alone is + not public report delivery; the Markdown sibling and final consistency + checks still belong to subsequent approved work units. + """ + port.charge(1) + if type(document) is not _ReportMapping: + raise _ReportContractError('invalid_report_contract') from None + writer = _JWriter(port, 'json') + writer.value(document) + writer.literal(b'\n') + return writer.finish() diff --git a/src/source_integrity_toolkit/runtime/diagnostics.py b/src/source_integrity_toolkit/runtime/diagnostics.py index d64ba68..0154e77 100644 --- a/src/source_integrity_toolkit/runtime/diagnostics.py +++ b/src/source_integrity_toolkit/runtime/diagnostics.py @@ -11,6 +11,7 @@ from ..contracts.execution import ( _PreparationAborted, _AuditCancelled, _STRUCTURAL_CODES, _PREPARATION_LIMIT_IDS, _AnalysisAborted, _ANALYSIS_LIMIT_IDS, + _ReportAborted, AuditAbort, AuditCancelled, ) from .resources import _PreparationBudget, _AnalysisBudget @@ -147,3 +148,25 @@ def _emergency_analytical_diagnostic(budget: object) -> object: if type(budget) is not _AnalysisBudget: raise TypeError("invalid_private_budget") from None return _analytical_diagnostic(budget.take_emergency()) + + +def _report_abort(cause: object) -> object: + """Fixed public transport for a known stop, without exposing source values. + + This output-boundary mapping neither changes the earlier private diagnostic + helpers nor constructs a report. The exact stored first cause is supplied + by the runtime; cancellation remains its separate transport. + """ + if type(cause) is _AuditCancelled: + return AuditCancelled(cause.input_state) + if type(cause) not in (_AnalysisAborted, _ReportAborted): + raise TypeError("unrecognized_private_stop") from None + stop = cause.stop + return AuditAbort(stop.execution_state, stop.input_state, stop.reason_code) + + +def _emergency_report_abort(budget: object) -> object: + """Spend the same invocation's one prepaid reserve for a safe report abort.""" + if type(budget) is not _AnalysisBudget: + raise TypeError("invalid_private_budget") from None + return _report_abort(budget.take_emergency()) diff --git a/src/source_integrity_toolkit/runtime/resources.py b/src/source_integrity_toolkit/runtime/resources.py index f07108f..46c3dfa 100644 --- a/src/source_integrity_toolkit/runtime/resources.py +++ b/src/source_integrity_toolkit/runtime/resources.py @@ -6,7 +6,8 @@ 1,024 prepaid emergency units inside that total, cooperative sixty seconds. The analytical factory adds per-job accounting and witness reservations. The boundary composes these ledgers into private analytical orchestration. -No report, I/O or public invocation is implemented here. +The optional report-encoding port reuses the existing finalization ledger. +No report construction, I/O or public invocation is implemented here. Only the zero-argument project factory creates a context. Tests patch the fixed clock symbol outside the product; no caller-supplied clock/limit is accepted. This is not isolation from malicious same-process mutation or hard real time. @@ -16,7 +17,7 @@ from ..contracts.execution import ( _PreparationStop, _PreparationAborted, _AuditCancelled, _STRUCTURAL_CODES, _PREPARATION_LIMIT_IDS, _CONSTRAINT_CODES, - _AnalysisAborted, _ANALYSIS_LIMIT_IDS, + _AnalysisAborted, _ANALYSIS_LIMIT_IDS, _ReportAborted, ) from ..validation.limits import _WitnessLedger @@ -24,6 +25,7 @@ _WORK_LIMIT = 10_000_000 _EMERGENCY_RESERVE = 1_024 _DEADLINE_NS = 60_000_000_000 +_REPORT_OUTPUT_LIMIT = 67_108_864 @dataclass(slots=True, repr=False, eq=False) @@ -197,6 +199,25 @@ def charge(self, units: int) -> None: self._owner._finalization_charge(self, units) +@dataclass(slots=True, repr=False, eq=False) +class _BoundedReportEncoding: + """Current report-only port over the owner's existing finalization ledger. + + It cannot begin jobs, create another port, reset counters, change limits, + record acceptance or spend another emergency reserve. + """ + _owner: object + + def check(self) -> None: + self._owner._report_encoding_check(self) + + def charge(self, units: int) -> None: + self._owner._report_encoding_charge(self, units) + + def charge_output(self, encoding: str, byte_count: int) -> None: + self._owner._report_output_charge(self, encoding, byte_count) + + @dataclass(slots=True, repr=False, eq=False) class _WitnessJobAccounting: """The shared witness quota always charges the currently active job.""" @@ -235,6 +256,9 @@ class _AnalysisBudget(_PreparationBudget): _witness_ledger: object = field(default=None, init=False) _stop_kind: str | None = field(default=None, init=False) _finalization_blocked: bool = field(default=False, init=False) + _report_encoder: object = field(default=None, init=False) + _json_output_bytes: int = field(default=0, init=False) + _markdown_output_bytes: int = field(default=0, init=False) def _clock_check(self) -> None: now = self._now() @@ -380,6 +404,54 @@ def _finalization_charge(self, port: object, units: int) -> None: self._stop("global", "WU9-L11") self._used += units + def begin_report_encoding(self, finalizer: object) -> _BoundedReportEncoding: + """One report encoding capability, authenticated by the current port. + + This does not call begin_finalization, create a ledger, reset elapsed + time or clear a prior cause. The old private finalization path is + unchanged. Runtime composition and report delivery remain separate. + """ + self._finalization_check(finalizer) + if self._report_encoder is not None: + self.fail() + self._finalization_charge(finalizer, 2) + encoder = _BoundedReportEncoding(self) + self._report_encoder = encoder + return encoder + + def _report_encoding_check(self, port: object) -> None: + if type(port) is not _BoundedReportEncoding or self._report_encoder is not port: + self.fail() + self._finalization_check(self._finalizer) + + def _report_encoding_charge(self, port: object, units: int) -> None: + self._report_encoding_check(port) + self._finalization_charge(self._finalizer, units) + + def _report_output_charge(self, port: object, encoding: str, byte_count: int) -> None: + self._report_encoding_check(port) + # Exact types precede equality and arithmetic on supplied arguments. + if (type(encoding) is not str or encoding not in ("json", "markdown") or + type(byte_count) is not int or byte_count < 0): + self.fail() + # Counter inspection, bounded addition and retained update are work. + # The renderer separately charges its byte visits, encoding and copies. + self._finalization_charge(self._finalizer, 3) + used = self._json_output_bytes if encoding == "json" else self._markdown_output_bytes + if byte_count > _REPORT_OUTPUT_LIMIT - used: + self._finalization_blocked = True + self._raise_existing() + self._stop_kind = "output" + self._cause = _ReportAborted( + _PreparationStop(self._state, "interrupted", "resource_limit_reached"), + "WU9-L14", + ) + raise self._cause from None + if encoding == "json": + self._json_output_bytes += byte_count + else: + self._markdown_output_bytes += byte_count + def _new_analysis_budget() -> _AnalysisBudget: """Zero-argument project factory; no independent post-preparation reset.""" diff --git a/tests/contract/test_json_report.py b/tests/contract/test_json_report.py new file mode 100644 index 0000000..f259a95 --- /dev/null +++ b/tests/contract/test_json_report.py @@ -0,0 +1,263 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""P4-W05 exact JSON controls against independent bytes and literal rules. + +The full reference is the existing W02 independent golden. Small expectations +below follow architecture 17.2, 17.3 and 18.3 directly; no product output is +recorded as an expectation. The real private analysis is followed by W04's +selector/assembler and W05's encoder. This does not exercise the future W07 +single analytical invocation or deliver a public AuditReport. +""" +import copy +from decimal import Decimal +import json +from pathlib import Path + +import pytest + +from source_integrity_toolkit.contracts.bundle import _Array, _Number, _Object +from source_integrity_toolkit.contracts.report import ( + _AnalyticalOutcome, _ReportContractError, _ReportMapping, +) +from source_integrity_toolkit.reporting.escaping import _encode_j +from source_integrity_toolkit.reporting.json_report import _encode_json_report +from source_integrity_toolkit.runtime.boundary import _analyze_value +from source_integrity_toolkit.runtime.disclosure import _assemble_selected_report +from test_report_test_oracles import _assert_reference_json + + +ROOT = Path(__file__).resolve().parents[2] + + +class JsonPort: + """Finite test-owned component port, never a public invocation option.""" + def __init__(self): + self.units = 0 + self.checks = 0 + self.output = {'json': 0, 'markdown': 0} + + def charge(self, units): + assert type(units) is int and units >= 0 + assert self.units + units <= 10_000_000, 'component work limit' + self.units += units + + def check(self): + self.checks += 1 + + def charge_output(self, encoding, byte_count): + assert type(encoding) is str and encoding in self.output + assert type(byte_count) is int and byte_count >= 0 + assert self.output[encoding] + byte_count <= 67_108_864 + self.output[encoding] += byte_count + + +def _j(value): + port = JsonPort() + raw = _encode_j(value, port) + assert type(raw) is bytes + assert port.output == {'json': len(raw), 'markdown': 0} + assert 0 < port.units <= 10_000_000 and port.checks > 0 + return raw + + +def test_actual_selected_report_matches_independent_reference_bytes(): + fixture = json.loads((ROOT / 'tests/fixtures/micro/phase4_public_cases.json').read_bytes()) + assert fixture['cases'][0]['id'] == 'P4-REFERENCE-ONE-ORIGIN' + dossier = fixture['cases'][0]['dossier'] + original = copy.deepcopy(dossier) + outcome = _analyze_value(dossier) + assert type(outcome) is _AnalyticalOutcome + assert outcome.execution_state == 'completed' and len(outcome.results) == 78 + assert dossier == original + + port = JsonPort() + document = _assemble_selected_report(outcome, port) + before_encoding = port.units + raw = _encode_json_report(document, port) + expected = (ROOT / 'tests/golden/phase4_reference_report.json').read_bytes() + assert type(document) is _ReportMapping + assert raw == expected + _assert_reference_json(raw) + assert port.output == {'json': len(expected), 'markdown': 0} + assert before_encoding < port.units <= 10_000_000 + assert raw.endswith(b'\n') and not raw.endswith(b'\n\n') + assert not raw.startswith(b'\xef\xbb\xbf') and b'\r' not in raw + assert dossier == original + + +def test_report_wrapper_adds_exactly_one_lf_to_j(): + # A project-owned component root isolates framing from the full reference. + value = _ReportMapping((('z', 'last\n'), ('a', True))) + port = JsonPort() + raw = _encode_json_report(value, port) + assert raw == b'{"a":true,"z":"last\\u000a"}\n' + assert port.output == {'json': len(raw), 'markdown': 0} + assert _j(value) == raw[:-1] + + +@pytest.mark.parametrize(('value', 'expected'), ( + (None, b'null'), (True, b'true'), (False, b'false'), + (0, b'0'), (1, b'1'), (-1, b'-1'), + (9007199254740991, b'9007199254740991'), + (-9007199254740991, b'-9007199254740991'), + ('', b'""'), ((), b'[]'), (_ReportMapping(()), b'{}'), + ((True, 1, False, 0, None), b'[true,1,false,0,null]'), +)) +def test_exact_scalar_types_and_empty_containers(value, expected): + assert _j(value) == expected + + +def test_keys_use_unicode_scalar_order_without_normalization(): + pairs = (('\U00010000', 9), ('\ue000', 8), ('é', 7), ('e\u0301', 6), + ('a', 5), ('A', 4), ('/', 3), ('"', 2), ('\n', 1)) + value = _ReportMapping(pairs) + expected = ('{"\\u000a":1,"\\\"":2,"/":3,"A":4,"a":5,' + '"e\u0301":6,"é":7,"\ue000":8,"\U00010000":9}').encode('utf-8') + assert _j(value) == expected + assert value._pairs is pairs + assert _j(_ReportMapping(tuple(reversed(pairs)))) == expected + + +ESCAPED_CODEPOINTS = ( + *range(0x00, 0x20), *range(0x7F, 0xA0), 0x061C, 0x200E, 0x200F, + *range(0x2028, 0x202F), *range(0x2066, 0x206A), +) + + +@pytest.mark.parametrize('codepoint', ESCAPED_CODEPOINTS, + ids=lambda value: 'U+' + format(value, '04X')) +def test_every_required_control_scalar_has_lowercase_long_escape(codepoint): + expected = ('"\\u' + format(codepoint, '04x') + '"').encode('ascii') + assert _j(chr(codepoint)) == expected + + +@pytest.mark.parametrize('codepoint', ( + 0x20, 0x7E, 0xA0, 0x061B, 0x061D, 0x200D, 0x2010, 0x2027, + 0x202F, 0x2065, 0x206A, 0xFEFF, 0x10000, 0x10FFFF, +), ids=lambda value: 'U+' + format(value, '04X')) +def test_allowed_scalars_adjacent_to_control_ranges_keep_utf8(codepoint): + text = chr(codepoint) + assert _j(text) == b'"' + text.encode('utf-8') + b'"' + + +def test_quotes_backslash_slash_multilingual_and_combining_forms(): + value = ('"\\/\n', '中文 العربية Ελληνικά 日本語 😀', 'é', 'e\u0301') + expected = ('["\\\"\\\\/\\u000a","中文 العربية Ελληνικά 日本語 😀",' + '"é","e\u0301"]').encode('utf-8') + raw = _j(value) + assert raw == expected + assert _j('/') == b'"/"' and b'\\n' not in raw + assert json.loads(raw) == list(value) + + +@pytest.mark.parametrize(('atom', 'expected'), ( + (_Number(0, '0', 0, 'decimal'), b'0'), + (_Number(1, '5', -1, 'decimal'), b'0.5'), + (_Number(1, '5', -1, 'binary_float'), b'0.5'), + (_Number(-1, '5', -1, 'decimal'), b'-0.5'), + (_Number(1, '1', -2, 'decimal'), b'0.01'), + (_Number(1, '1', -3, 'decimal'), b'1e-3'), + (_Number(1, '1', -4, 'decimal'), b'1e-4'), + (_Number(1, '123', -2, 'decimal'), b'1.23'), + (_Number(1, '1', 3, 'decimal'), b'1000'), + (_Number(1, '9007199254740991', 0, 'integer'), b'9007199254740991'), + (_Number(-1, '9007199254740991', 0, 'integer'), b'-9007199254740991'), + (_Number(1, '1', -1000000, 'decimal'), b'1e-1000000'), + (_Number(1, '1', -int('9' * 124), 'decimal'), b'1e-' + b'9' * 124), + (_Number(-1, '1', -int('9' * 124), 'decimal'), b'-1e-' + b'9' * 124), + (_Number(1, '1000000000000000055511151231257827021181583404541015625', + -55, 'binary_float'), + b'0.1000000000000000055511151231257827021181583404541015625'), +), ids=('zero', 'half', 'binary_half', 'negative_half', 'ordinary_tie', 'short_exponent', + 'tiny', 'decimal_point', 'integral_exponent', 'max_integer', + 'min_integer', 'very_small', 'huge_negative_exponent', + 'maximal_exact_token', 'exact_binary_tenth')) +def test_exact_private_atoms_use_literal_shortest_representations(atom, expected): + assert _j(atom) == expected + + +def test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive(): + fraction = _ReportMapping((('numerator', 26), ('denominator', 36))) + value = _ReportMapping((('fraction', fraction), ('ordered', ('third', 'first', 'first')))) + raw = _j(value) + assert raw == (b'{"fraction":{"denominator":36,"numerator":26},' + b'"ordered":["third","first","first"]}') + assert b'display_decimal' not in raw and b'0.722222' not in raw + assert fraction._pairs == (('numerator', 26), ('denominator', 36)) + + +class Hostile: + calls = [] + + def _touch(self, *args, **kwargs): + self.calls.append('custom_protocol') + raise AssertionError('custom protocol was invoked') + + __repr__ = __str__ = __iter__ = __len__ = __getitem__ = _touch + __eq__ = __hash__ = __int__ = __float__ = _touch + + def default(self, *args): + return self._touch() + + +class HostileString(str): + def __str__(self): + return Hostile()._touch() + + def __iter__(self): + return Hostile()._touch() + + +class HostileInt(int): + def __repr__(self): + return Hostile()._touch() + + def __str__(self): + return Hostile()._touch() + + def __int__(self): + return Hostile()._touch() + + +@pytest.mark.parametrize(('label', 'value'), ( + ('object', Hostile()), ('string_subclass', HostileString('secret')), + ('int_subclass', HostileInt(7)), ('decimal', Decimal('0.1')), + ('float', 0.5), ('nan', float('nan')), ('infinity', float('inf')), + ('mutable_list', []), ('mutable_dict', {}), ('bytes', b'secret'), + ('private_source_object', _Object(())), ('private_source_array', _Array(())), +), ids=('object', 'string_subclass', 'int_subclass', 'decimal', 'float', + 'nan', 'infinity', 'mutable_list', 'mutable_dict', 'bytes', + 'private_source_object', 'private_source_array')) +def test_encoder_rejects_untrusted_types_before_custom_protocols(label, value): + Hostile.calls.clear() + with pytest.raises(_ReportContractError, match='^invalid_report_contract$'): + _encode_j(value, JsonPort()) + assert Hostile.calls == [] + + +@pytest.mark.parametrize(('label', 'value'), ( + ('high_int', 9007199254740992), ('low_int', -9007199254740992), + ('surrogate_high', '\ud800'), ('surrogate_low', '\udfff'), + ('duplicate_keys', _ReportMapping((('a', 1), ('a', 2)))), + ('hostile_key', _ReportMapping(((Hostile(), 1),))), + ('hostile_child', _ReportMapping((('a', Hostile()),))), + ('hostile_array_child', (Hostile(),)), + ('large_atom', _Number(1, '9007199254740992', 0, 'decimal')), + ('oversize_atom_token', _Number(1, '1', -int('9' * 126), 'decimal')), +), ids=('high_int', 'low_int', 'surrogate_high', 'surrogate_low', + 'duplicate_keys', 'hostile_key', 'hostile_child', + 'hostile_array_child', 'large_atom', 'oversize_atom_token')) +def test_invalid_trusted_components_fail_without_values_in_exception(label, value): + Hostile.calls.clear() + with pytest.raises(_ReportContractError) as caught: + _encode_j(value, JsonPort()) + assert str(caught.value) == 'invalid_report_contract' + assert Hostile.calls == [] + + +def test_report_entry_requires_frozen_project_root(): + Hostile.calls.clear() + for value in ({}, (), None, Hostile()): + with pytest.raises(_ReportContractError, match='^invalid_report_contract$'): + _encode_json_report(value, JsonPort()) + assert Hostile.calls == [] diff --git a/tests/security/test_report_resource_limits.py b/tests/security/test_report_resource_limits.py new file mode 100644 index 0000000..f3751e8 --- /dev/null +++ b/tests/security/test_report_resource_limits.py @@ -0,0 +1,399 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W05 output-boundary controls, with literal limits from architecture 19. + +These tests exercise the real existing ledger's restricted encoding port and +the internal encoder. Trusted component acceptance below is not a claim that +the public invocation or W07 runtime composition has run. Small remaining-byte +windows are created by actual fixed-counter charges, never by changing limits. +""" +import json +from pathlib import Path +import traceback + +import pytest + +from source_integrity_toolkit.contracts import report as report_contract +from source_integrity_toolkit.contracts.execution import ( + AuditAbort, AuditCancelled, _AnalysisAborted, _AuditCancelled, _ReportAborted, +) +from source_integrity_toolkit.reporting import escaping, json_report +from source_integrity_toolkit.runtime import diagnostics, resources + + +OUTPUT_LIMIT = 67_108_864 +ROOT = Path(__file__).resolve().parents[2] + + +@pytest.fixture +def clock(monkeypatch): + now = [100] + monkeypatch.setattr(resources, 'monotonic_ns', lambda: now[0]) + return now + + +def encoding_context(): + owner = resources._new_analysis_budget() + owner.record_input_acceptance() # Trusted component fact, not input validation. + finalizer = owner.begin_finalization() + return owner, finalizer, owner.begin_report_encoding(finalizer) + + +def counters(owner): + return owner._json_output_bytes, owner._markdown_output_bytes + + +class CapturePort: + """Finite test-only freeze budget; no completed AuditReport is delivered.""" + def __init__(self): + self.used = 0 + + def charge(self, units): + assert type(units) is int and units >= 0 + assert self.used + units <= 10_000_000 + self.used += units + + def check(self): + pass + + +@pytest.fixture(scope='module') +def reference(): + expected = (ROOT / 'tests/golden/phase4_reference_report.json').read_bytes() + frozen = report_contract._freeze_report_document(json.loads(expected), CapturePort()) + return frozen, expected + + +class ObservedPort: + """Observe public-to-the-encoder operations on a genuine restricted port.""" + def __init__(self, delegate): + self.delegate = delegate + self.accepted = [] + self.attempted = [] + self.work = 0 + + def charge(self, units): + self.delegate.charge(units) + self.work += units + + def check(self): + self.delegate.check() + + def charge_output(self, encoding, count): + self.attempted.append((encoding, count)) + self.delegate.charge_output(encoding, count) + self.accepted.append((encoding, count)) + + +@pytest.mark.parametrize('encoding', ('json', 'markdown')) +def test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively(clock, encoding): + owner, finalizer, port = encoding_context() + port.charge_output(encoding, OUTPUT_LIMIT - 1) + expected = (OUTPUT_LIMIT - 1, 0) if encoding == 'json' else (0, OUTPUT_LIMIT - 1) + assert counters(owner) == expected + port.charge_output(encoding, 1) + expected = (OUTPUT_LIMIT, 0) if encoding == 'json' else (0, OUTPUT_LIMIT) + assert counters(owner) == expected + port.charge_output(encoding, 0) # Equality does not itself stop processing. + operation = [] + with pytest.raises(_ReportAborted) as stopped: + port.charge_output(encoding, 1) + operation.append('would emit forbidden byte') + assert operation == [] and counters(owner) == expected + assert stopped.value.limit_id == 'WU9-L14' + assert stopped.value.stop.input_state == 'accepted' + assert stopped.value.stop.reason_code == 'resource_limit_reached' + for action in (port.check, lambda: port.charge(0), + lambda: port.charge_output('json', 0), + lambda: port.charge_output('markdown', 0), finalizer.check): + with pytest.raises(_ReportAborted) as repeated: + action() + assert repeated.value is stopped.value + + +def test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances(clock): + owner = resources._new_analysis_budget() + owner.charge(37) + original_start = owner._start + owner.record_input_acceptance() + finalizer = owner.begin_finalization() + before = owner.used + port = owner.begin_report_encoding(finalizer) + assert owner.used >= before and owner._start == original_start + assert owner.used >= 1024 + 37 + port.charge_output('json', OUTPUT_LIMIT // 2) + port.charge_output('markdown', OUTPUT_LIMIT - 1) + port.charge_output('json', OUTPUT_LIMIT // 2) + port.charge_output('markdown', 1) + assert counters(owner) == (OUTPUT_LIMIT, OUTPUT_LIMIT) + assert owner.used > before and owner.remaining == 10_000_000 - owner.used + port.charge(17) + assert owner.remaining == 10_000_000 - owner.used + + +@pytest.mark.parametrize('kind', ('negative', 'bool', 'float', 'text', 'none', 'hostile')) +def test_output_count_requires_exact_nonnegative_integer_without_protocols(clock, kind): + calls = [] + class Hostile: + def __int__(self): + calls.append('int') + return 0 + def __index__(self): + calls.append('index') + return 0 + def __repr__(self): + calls.append('repr') + return 'FICTIONAL_REPORT_PRIVATE_COUNT_5830' + value = {'negative': -1, 'bool': True, 'float': 1.0, 'text': '1', + 'none': None, 'hostile': Hostile()}[kind] + owner, _, port = encoding_context() + port.charge_output('json', 9) + with pytest.raises(_AnalysisAborted) as stopped: + port.charge_output('json', value) + assert stopped.value.stop.reason_code == 'execution_failed' + assert counters(owner) == (9, 0) and calls == [] + + +@pytest.mark.parametrize('kind', ('unknown', 'case', 'bytes', 'subclass', 'hostile')) +def test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison(clock, kind): + calls = [] + class Name(str): + def __eq__(self, other): + calls.append('eq') + return True + def __hash__(self): + calls.append('hash') + return 1 + class Hostile: + def __eq__(self, other): + calls.append('eq') + return True + def __repr__(self): + calls.append('repr') + return 'FICTIONAL_REPORT_FORMAT_5830' + value = {'unknown': 'yaml', 'case': 'JSON', 'bytes': b'json', + 'subclass': Name('json'), 'hostile': Hostile()}[kind] + owner, _, port = encoding_context() + with pytest.raises(_AnalysisAborted) as stopped: + port.charge_output(value, 1) + assert stopped.value.stop.reason_code == 'execution_failed' + assert counters(owner) == (0, 0) and calls == [] + + +def test_report_port_has_no_new_clock_job_acceptance_or_reset_authority(clock): + _, _, port = encoding_context() + for name in ('clock', 'deadline', 'limits', 'options', 'callback', 'start_job', + 'begin_finalization', 'begin_report_encoding', 'record_input_acceptance', + 'take_emergency', 'reset', 'refund', 'restart', '__dict__'): + assert not hasattr(port, name), name + for kwargs in ({'limit': OUTPUT_LIMIT * 2}, {'clock': lambda: 0}, {'options': {}}): + with pytest.raises(TypeError): + port.charge_output('json', 1, **kwargs) + + +def test_duplicate_encoding_port_request_cannot_reset_existing_output_counts(clock): + owner, finalizer, port = encoding_context() + port.charge_output('json', 29) + before = owner.used + with pytest.raises(_AnalysisAborted) as stopped: + owner.begin_report_encoding(finalizer) + assert stopped.value.stop.reason_code == 'execution_failed' + assert counters(owner) == (29, 0) and owner.used >= before + with pytest.raises(_AnalysisAborted) as stale: + port.charge_output('json', 0) + assert stale.value is stopped.value + + +@pytest.mark.parametrize('remaining', (6, 7, 8)) +def test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping(clock, remaining): + # The literal J of this exact scalar is seven bytes: quotes + 3 + 2 UTF-8 bytes. + expected = b'"\xe9\x9b\xaa\xc3\xa9"' + assert len(expected) == 7 + owner, _, real = encoding_context() + real.charge_output('json', OUTPUT_LIMIT - remaining) + port = ObservedPort(real) + returned = [] + if remaining < len(expected): + with pytest.raises(_ReportAborted) as stopped: + returned.append(escaping._encode_j('雪é', port)) + assert stopped.value.limit_id == 'WU9-L14' and returned == [] + accepted = sum(count for _, count in port.accepted) + assert accepted <= remaining and counters(owner)[0] == OUTPUT_LIMIT - remaining + accepted + else: + actual = escaping._encode_j('雪é', port) + assert actual == expected and counters(owner)[0] == OUTPUT_LIMIT - remaining + len(expected) + assert sum(count for _, count in port.accepted) == len(expected) + assert all(name == 'json' for name, _ in port.attempted) + + +@pytest.mark.parametrize('extra', (-1, 0, 1)) +def test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns(clock, reference, extra): + frozen, expected = reference + assert expected.endswith(b'\n') and not expected.endswith(b'\n\n') + owner, _, real = encoding_context() + real.charge_output('json', OUTPUT_LIMIT - len(expected) - extra) + port = ObservedPort(real) + returned = [] + if extra < 0: + with pytest.raises(_ReportAborted) as stopped: + returned.append(json_report._encode_json_report(frozen, port)) + assert stopped.value.limit_id == 'WU9-L14' + assert returned == [] + assert sum(count for _, count in port.accepted) == len(expected) - 1 + assert port.attempted[-1] == ('json', 1) + assert counters(owner) == (OUTPUT_LIMIT, 0) + else: + result = json_report._encode_json_report(frozen, port) + assert result == expected + assert sum(count for _, count in port.accepted) == len(expected) + assert counters(owner) == (OUTPUT_LIMIT - extra, 0) + assert port.work > 0 + + +@pytest.mark.parametrize('boundary', ('work', 'time', 'failure', 'cancel')) +def test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance(clock, boundary): + owner, _, real = encoding_context() + class StopAfterOutput(ObservedPort): + def charge_output(self, encoding, count): + super().charge_output(encoding, count) + if len(self.accepted) == 2: + if boundary == 'work': + self.delegate.charge(owner.remaining) + elif boundary == 'time': + clock[0] += 60_000_000_001 + elif boundary == 'failure': + owner.fail() + else: + owner.cancel() + port = StopAfterOutput(real) + returned = [] + expected_type = _AuditCancelled if boundary == 'cancel' else _AnalysisAborted + with pytest.raises(expected_type) as stopped: + returned.append(escaping._encode_j(('first', 'second', 'third'), port)) + assert returned == [] and len(port.accepted) == 2 + assert counters(owner)[0] == sum(count for _, count in port.accepted) + public = diagnostics._report_abort(stopped.value) + assert public.input_validation_state == 'accepted' + assert public.publication_state == 'not_published' + if boundary == 'cancel': + assert type(public) is AuditCancelled and not hasattr(public, 'reason_code') + else: + assert type(public) is AuditAbort + assert public.reason_code == ('execution_failed' if boundary == 'failure' else 'resource_limit_reached') + if boundary in ('work', 'time'): + assert stopped.value.limit_id == ('WU9-L11' if boundary == 'work' else 'WU9-L12') + with pytest.raises(expected_type) as repeated: + port.charge_output('markdown', 0) + assert repeated.value is stopped.value + + +def test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond(clock): + owner = resources._new_analysis_budget() + clock[0] += 59_999_999_999 + owner.record_input_acceptance() + final = owner.begin_finalization() + port = owner.begin_report_encoding(final) + clock[0] += 1 + port.charge_output('json', 1) + clock[0] += 1 + with pytest.raises(_AnalysisAborted) as stopped: + port.charge_output('json', 1) + assert stopped.value.limit_id == 'WU9-L12' + assert counters(owner) == (1, 0) + + +@pytest.mark.parametrize('first', ('job', 'witness')) +@pytest.mark.parametrize('later', ('output', 'work', 'time')) +def test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports(clock, first, later): + owner = resources._new_analysis_budget() + owner.record_input_acceptance() + job = owner.start_job() + with pytest.raises(_AnalysisAborted) as original: + job.interrupt('WU9-L11' if first == 'job' else 'WU9-L13') + finalizer = owner.begin_finalization() + port = owner.begin_report_encoding(finalizer) + port.charge_output('json', 7) + if later == 'output': + port.charge_output('json', OUTPUT_LIMIT - 7) + action = lambda: port.charge_output('json', 1) + elif later == 'work': + port.charge(owner.remaining) + action = lambda: port.charge_output('json', 1) + else: + clock[0] += 60_000_000_001 + action = lambda: port.charge_output('json', 1) + before = counters(owner) + with pytest.raises(_AnalysisAborted) as stopped: + action() + assert stopped.value is original.value + for action in (finalizer.check, port.check, lambda: port.charge_output('markdown', 0)): + with pytest.raises(_AnalysisAborted) as repeated: + action() + assert repeated.value is original.value + assert counters(owner) == before + assert diagnostics._report_abort(stopped.value).input_validation_state == 'accepted' + + +@pytest.mark.parametrize('kind', ('admission', 'foreign_finalizer', 'forged_port')) +def test_report_encoding_requires_current_owner_and_existing_finalization(clock, kind): + owner = resources._new_analysis_budget() + if kind == 'admission': + action = lambda: owner.begin_report_encoding(None) + else: + owner.record_input_acceptance() + finalizer = owner.begin_finalization() + if kind == 'foreign_finalizer': + other, other_finalizer, _ = encoding_context() + other_before = (other.used, counters(other)) + action = lambda: owner.begin_report_encoding(other_finalizer) + else: + owner.begin_report_encoding(finalizer) + forged = resources._BoundedReportEncoding(owner) + action = lambda: forged.charge_output('json', 1) + with pytest.raises(_AnalysisAborted) as stopped: + action() + assert stopped.value.stop.reason_code == 'execution_failed' + assert stopped.value.stop.input_state == ('not_completed' if kind == 'admission' else 'accepted') + assert counters(owner) == (0, 0) + if kind == 'foreign_finalizer': + assert (other.used, counters(other)) == other_before + other_finalizer.check() + + +def test_l14_emergency_delivery_uses_existing_reserve_once_without_payload(clock, capsys): + owner, finalizer, port = encoding_context() + with pytest.raises(_ReportAborted) as stopped: + port.charge_output('json', OUTPUT_LIMIT + 1) + before = owner.used + public = diagnostics._emergency_report_abort(owner) + assert type(public) is AuditAbort + assert (public.processing_state, public.input_validation_state, public.reason_code, + public.publication_state) == ('interrupted', 'accepted', 'resource_limit_reached', 'not_published') + assert owner.used == before + assert public.args == ('Audit could not be completed.',) + assert len((str(public) + repr(public)).encode()) < 4096 + for name in ('report', 'results', 'prefix', 'source', 'snapshot', 'original_exception', 'payload'): + assert not hasattr(public, name) and not hasattr(stopped.value, name) + for action in (finalizer.check, port.check): + with pytest.raises(_ReportAborted) as repeated: + action() + assert repeated.value is stopped.value + with pytest.raises(RuntimeError, match='^emergency_delivery_already_used$'): + diagnostics._emergency_report_abort(owner) + assert capsys.readouterr() == ('', '') + + +def test_report_abort_mapping_rejects_unknown_exception_without_private_protocols(): + calls = [] + class Hostile(Exception): + def __str__(self): + calls.append('str') + return 'FICTIONAL_REPORT_EXCEPTION_SECRET_8392' + def __repr__(self): + calls.append('repr') + return 'FICTIONAL_REPORT_EXCEPTION_SECRET_8392' + with pytest.raises(TypeError) as stopped: + diagnostics._report_abort(Hostile()) + assert calls == [] + visible = str(stopped.value) + repr(stopped.value) + ''.join(traceback.format_exception(stopped.value)) + assert 'FICTIONAL_REPORT_EXCEPTION_SECRET_8392' not in visible From 6cbe03b8f89ad7422a8fdb7ac25aa2cb48c4a0b8 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 09:40:52 -0700 Subject: [PATCH 12/21] Retarget dormant-slot probes after JSON activation The W05 hosted matrix completed with two identical V02 failures in each profile: its inactive-body and16KiB probes still targeted json_report.py, which is correctly active from stage5. Target the permanently inactive output_directory.py slot while retaining every case ID and assertion. Record the original failure and pending clean-checkpoint validation. No guard, product, workflow or budget changes. SIT-Phase-Unit: P4-W01 --- phase4/implementation_evidence.json | 5523 ++++++++++-------- tests/contract/test_verification_boundary.py | 4 +- 2 files changed, 2968 insertions(+), 2559 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index a6980c7..05eb353 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,1272 +1,804 @@ { "phase": "P4", - "current_unit": "P4-W05", - "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", - "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", + "current_unit": "P4-W01", + "delivery_unit": "P4-W05", + "activation_stage": 5, + "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", + "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", "previous_checkpoint": { - "unit": "P4-W04", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", - "hosted_status": { - "saved_at_utc": "2026-10-25T12:03:35.195Z", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "runs": { - "workflow_runs": [ - { - "id": 40175369945, - "name": "P1-W02 selected-toolchain verification", - "status": "completed", - "conclusion": "skipped", - "run_number": 92, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", - "workflow_id": 361073157 - }, - { - "id": 40175369950, - "name": "Current verification", - "status": "completed", - "conclusion": "success", - "run_number": 106, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", - "workflow_id": 361447276 - } - ] + "unit": "P4-W05", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "run_id": 40192106767, + "run_attempt": 1, + "hosted_result": "completed/failure", + "profiles": [ + { + "artifact_id": 12599033843, + "name": "phase3-windows-2025-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2167.529", + "timestamp": "2026-10-25T12:14:11.583388+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, - "jobs": { - "jobs": [ - { - "id": 121114762732, - "name": "analytical core (windows-2025, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762895, - "name": "analytical core (ubuntu-24.04, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762924, - "name": "analytical core (ubuntu-24.04, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, + { + "artifact_id": 12598913258, + "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1707.237", + "timestamp": "2026-10-25T12:13:29.022234+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } + }, + { + "artifact_id": 12598889077, + "name": "phase3-windows-2025-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2216.425", + "timestamp": "2026-10-25T12:14:13.684890+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } + }, + { + "artifact_id": 12598853369, + "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1530.030", + "timestamp": "2026-10-25T12:13:22.517483+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } + } + ], + "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + }, + "changes": [ + { + "path": "tests/contract/test_verification_boundary.py", + "owner": "P4-W01", + "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + } + ], + "changed_scope": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "validation": { + "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", + "attempt_001": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" + ], + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "started_at_utc": "2026-10-25T16:31:30.867435+00:00", + "elapsed_seconds": 111.38650181399862, + "exit_code": 1, + "timed_out": false, + "incomplete": false, + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." + }, + "junit": { + "name": "pytest", + "errors": "29", + "failures": "0", + "skipped": "0", + "tests": "213", + "time": "111.175", + "timestamp": "2026-10-25T10:31:30.996027-06:00", + "hostname": "d6921570ec2c" + }, + "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", + "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." + }, + "collection_preservation": { + "created_at_utc": "2026-10-25T16:32:15.236018+00:00", + "original_ordered_case_count": 213, + "current_ordered_case_count": 213, + "ordered_case_ids_identical": true, + "case_ids": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "changed_function": [ + "test_current_module_ceiling_and_protected_slots" + ], + "unchanged_other_top_level_definitions": 63, + "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", + "permanently_inactive_target": "io/output_directory.py", + "all_ten_activation_stages_keep_target_inactive": true, + "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + } + }, + "failure_and_repair": { + "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", + "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", + "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + }, + "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", + "remaining": [ + "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", + "New hosted candidate outcome is pending.", + "W06 product work is separate and not included in this repair.", + "Whole-invocation integration, public delivery, merge and release remain pending." + ], + "historical_records": { + "P4-W05": { + "phase": "P4", + "current_unit": "P4-W05", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", + "previous_checkpoint": { + "unit": "P4-W04", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", + "hosted_status": { + "saved_at_utc": "2026-10-25T12:03:35.195Z", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "runs": { + "workflow_runs": [ { - "name": "Post Checkout exact candidate without stored credentials", + "id": 40175369945, + "name": "P1-W02 selected-toolchain verification", "status": "completed", - "conclusion": "success", - "number": 16 + "conclusion": "skipped", + "run_number": 92, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", + "workflow_id": 361073157 }, { - "name": "Complete job", + "id": 40175369950, + "name": "Current verification", "status": "completed", "conclusion": "success", - "number": 17 + "run_number": 106, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", + "workflow_id": 361447276 } ] }, - { - "id": 121114762983, - "name": "analytical core (windows-2025, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, + "jobs": { + "jobs": [ { - "name": "Checkout exact candidate without stored credentials", + "id": 121114762732, + "name": "analytical core (windows-2025, Python 3.13)", "status": "completed", "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] }, { - "name": "Post Checkout exact candidate without stored credentials", + "id": 121114762895, + "name": "analytical core (ubuntu-24.04, Python 3.11)", "status": "completed", "conclusion": "success", - "number": 16 + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] }, { - "name": "Complete job", + "id": 121114762924, + "name": "analytical core (ubuntu-24.04, Python 3.13)", "status": "completed", "conclusion": "success", - "number": 17 - } - ] - } - ] - }, - "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." - }, - "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." - }, - "changes": [ - { - "paths": [ - "P05", - "P06" - ], - "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." - }, - { - "paths": [ - "P02", - "P08", - "P09" - ], - "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." - }, - { - "paths": [ - "N04", - "N10" - ], - "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." - } - ], - "changed_scope": { - "unit": "P4-W05", - "paths": [ - "src/source_integrity_toolkit/contracts/execution.py", - "src/source_integrity_toolkit/reporting/escaping.py", - "src/source_integrity_toolkit/reporting/json_report.py", - "src/source_integrity_toolkit/runtime/resources.py", - "src/source_integrity_toolkit/runtime/diagnostics.py", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "approved_ids": [ - "P02", - "P05", - "P06", - "P08", - "P09", - "N04", - "N10", - "D04", - "D05" - ], - "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "tests/contract/test_report_test_oracles.py", - "tests/security/test_input_resource_limits.py", - "tests/security/test_analytical_resource_limits.py", - "tests/security/test_input_diagnostics.py", - "tests/security/test_analytical_diagnostics.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" - ], - "started_at_utc": "2026-10-25T12:07:49.098267+00:00", - "elapsed_seconds": 10.06384003399944, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "source_files": 228, - "source_bytes_unchanged": true, - "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "432", - "time": "9.770", - "timestamp": "2026-10-25T06:07:49.242461-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_json_report": 148, - "tests.security.test_report_resource_limits": 38, - "tests.contract.test_report_test_oracles": 89, - "tests.security.test_input_resource_limits": 36, - "tests.security.test_analytical_resource_limits": 60, - "tests.security.test_input_diagnostics": 32, - "tests.security.test_analytical_diagnostics": 29 - }, - "tested_product_and_test_bytes": { - "src/source_integrity_toolkit/contracts/execution.py": { - "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", - "bytes": 11231 - }, - "src/source_integrity_toolkit/reporting/escaping.py": { - "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", - "bytes": 10969 - }, - "src/source_integrity_toolkit/reporting/json_report.py": { - "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", - "bytes": 1064 - }, - "src/source_integrity_toolkit/runtime/resources.py": { - "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", - "bytes": 16699 - }, - "src/source_integrity_toolkit/runtime/diagnostics.py": { - "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", - "bytes": 9437 - }, - "tests/contract/test_json_report.py": { - "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", - "bytes": 10790 - }, - "tests/security/test_report_resource_limits.py": { - "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", - "bytes": 16947 - } - }, - "actual_test_nodes": { - "tests/contract/test_json_report.py": [ - "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", - "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", - "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", - "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", - "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", - "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", - "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", - "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", - "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", - "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", - "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", - "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" - ], - "tests/security/test_report_resource_limits.py": [ - "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", - "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", - "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", - "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", - "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", - "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", - "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", - "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", - "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", - "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", - "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", - "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", - "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", - "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" - ] - }, - "reference_probe": { - "exact_reference": true, - "bytes": 421307, - "assembly_units": 6740573, - "encoder_units": 2768497, - "total_units": 9509070, - "output": { - "json": 421307, - "markdown": 0 - }, - "elapsed_seconds": 3.0059238750000077, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "independent_review": { - "status": "passed_no_blocking_findings", - "file": "p4w05-independent-review.json", - "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" - }, - "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." - }, - "package_boundary": { - "activation_stage": 5, - "checked_modules": 48, - "entry_byte_protected_modules": 40, - "issues": [], - "ok": true, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "reporting/escaping.py", - "reporting/json_report.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 15, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "evidence": "p4w05-json-001.log/.xml/-execution.json", - "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", - "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", - "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." - } - ], - "remaining": [ - "W06 Markdown and substantive parity are not started.", - "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", - "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", - "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", - "File/CLI/native publication, merge and release remain deferred.", - "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." - ], - "historical_records": { - "P4-W04": { - "phase": "P4", - "current_unit": "P4-W04", - "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", - "owner_authorization": { - "instruction": "W04继续", - "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "W03_local_targeted_tests": 5982, - "hosted_result": { - "run_id": 40170942968, - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "attempt": 1, - "run_status": "completed", - "run_conclusion": "failure", - "failed_profile": { - "matrix": "windows-2025 / Python 3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "artifact_bytes": 244690, - "raw_files": 47, - "pytest_exit": { - "error_type": "TimeoutExpired", - "exit_code": null, - "incomplete": true, - "interrupted": false, - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "timed_out": true, - "timeout_seconds": 2400 - }, - "test_failure": { - "error_type": "TimeoutExpired", - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "stage": "test" - }, - "evidence_failure": { - "error_type": "ValueError", - "message": "earlier_stage_failed", - "stage": "evidence" - }, - "collection_count": 9653, - "junit_present": false, - "test_record_present": false, - "source_after_present": false, - "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." - }, - "comparison_profile": { - "matrix": "windows-2025 / Python 3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "artifact_bytes": 363913, - "pytest_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - }, - "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", - "timing": "windows313-timing-focused.json", - "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762983, + "name": "analytical core (windows-2025, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + } + ] }, - "diagnostic_profile": "guard-single-call-profile.json", - "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", - "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." }, - "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." }, - "inherited_W01_repair": { - "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", - "owner": "P4-W01", - "activation_stage": 3, - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "tests/scaffold/test_imports.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_module_manifest.py", - "tests/security/test_preparation_inertness.py", - "tests/scaffold/test_ci_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + "changes": [ + { + "paths": [ + "P05", + "P06" ], - "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "started_at_utc": "2026-10-25T07:57:05.151778+00:00", - "elapsed_seconds": 259.7052340929986, - "exit_code": 0, - "timeout_seconds": 1200, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_count": 224, - "source_hashes_unchanged": true, - "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "576", - "time": "259.471", - "timestamp": "2026-10-25T01:57:05.272902-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_verification_boundary": 213, - "tests.scaffold.test_imports": 50, - "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, - "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, - "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, - "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, - "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, - "tests.security.test_preparation_inertness": 39, - "tests.scaffold.test_ci_contract.CiContractTests": 14, - "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, - "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." }, - "collection_preservation": { - "before_exit": 0, - "after_exit": 0, - "before_count": 211, - "after_count": 213, - "original_211_ordered_cases_unchanged": true, - "added": [ - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "before_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + { + "paths": [ + "P02", + "P08", + "P09" ], - "after_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ] - }, - "same_source_timing": { - "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", - "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", - "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "module_sha256": { - "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", - "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", - "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", - "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", - "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", - "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", - "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", - "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", - "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", - "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", - "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", - "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", - "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", - "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", - "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", - "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", - "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", - "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", - "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", - "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", - "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", - "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", - "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", - "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", - "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", - "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", - "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", - "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", - "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", - "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", - "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", - "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", - "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", - "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", - "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", - "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", - "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", - "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", - "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", - "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", - "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", - "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", - "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", - "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", - "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", - "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", - "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", - "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" - }, - "guard_sha256": { - "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", - "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" - }, - "seconds": { - "before": [ - 1.170046082999761, - 1.182108517998131, - 1.114261736998742 - ], - "after": [ - 0.6021103010025399, - 0.5637806820013793, - 0.5558995499995945 - ] - }, - "median_seconds": { - "before": 1.170046082999761, - "after": 0.5637806820013793 - }, - "same_empty_issues": { - "before": [], - "after": [] - }, - "after_parse_counts": { - "current_module_issues": 48, - "_phase2_layer_issues": 18, - "executable_ast": 36 - } + "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." }, - "raw_directory": "p4w04-w01-repair", - "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." - }, - "changes": [ - "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", - "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", - "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", - "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", - "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + { + "paths": [ + "N04", + "N10" + ], + "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + } ], "changed_scope": { - "W04": [ - "src/source_integrity_toolkit/reporting/assemble.py", - "src/source_integrity_toolkit/runtime/disclosure.py", - "tests/contract/test_report_assembly.py", - "tests/security/test_report_disclosure.py", - "tests/fixtures/adversarial/phase4_report_cases.json", + "unit": "P4-W05", + "paths": [ + "src/source_integrity_toolkit/contracts/execution.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/json_report.py", + "src/source_integrity_toolkit/runtime/resources.py", + "src/source_integrity_toolkit/runtime/diagnostics.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", "phase4/report_contract_coverage.json", "phase4/implementation_evidence.json" ], - "separate_W01": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "approved_ids": [ + "P02", + "P05", + "P06", + "P08", + "P09", + "N04", + "N10", + "D04", + "D05" ], - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" + "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." }, "validation": { "execution": { @@ -1276,77 +808,134 @@ "-m", "pytest", "-q", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/security/test_report_disclosure.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + "tests/security/test_input_resource_limits.py", + "tests/security/test_analytical_resource_limits.py", + "tests/security/test_input_diagnostics.py", + "tests/security/test_analytical_diagnostics.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" ], - "started_at_utc": "2026-10-25T07:57:29.452245+00:00", - "elapsed_seconds": 73.28405752199978, + "started_at_utc": "2026-10-25T12:07:49.098267+00:00", + "elapsed_seconds": 10.06384003399944, "exit_code": 0, "timeout_seconds": 900, "timed_out": false, "interrupted": false, "incomplete": false, - "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "source_files": 226, + "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "source_files": 228, "source_bytes_unchanged": true, - "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." }, "junit": { "name": "pytest", "errors": "0", "failures": "0", "skipped": "0", - "tests": "186", - "time": "73.047", - "timestamp": "2026-10-25T01:57:29.593002-06:00", + "tests": "432", + "time": "9.770", + "timestamp": "2026-10-25T06:07:49.242461-06:00", "hostname": "d6921570ec2c" }, "cases_by_classname": { - "tests.contract.test_report_assembly": 55, - "tests.contract.test_report_identity": 16, - "tests.security.test_report_disclosure": 26, - "tests.contract.test_report_test_oracles": 89 + "tests.contract.test_json_report": 148, + "tests.security.test_report_resource_limits": 38, + "tests.contract.test_report_test_oracles": 89, + "tests.security.test_input_resource_limits": 36, + "tests.security.test_analytical_resource_limits": 60, + "tests.security.test_input_diagnostics": 32, + "tests.security.test_analytical_diagnostics": 29 }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58955, - "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + "tested_product_and_test_bytes": { + "src/source_integrity_toolkit/contracts/execution.py": { + "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", + "bytes": 11231 + }, + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", + "bytes": 10969 }, - "src/source_integrity_toolkit/runtime/disclosure.py": { - "bytes": 38666, - "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + "src/source_integrity_toolkit/reporting/json_report.py": { + "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", + "bytes": 1064 }, - "tests/contract/test_report_assembly.py": { - "bytes": 71321, - "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + "src/source_integrity_toolkit/runtime/resources.py": { + "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", + "bytes": 16699 }, - "tests/security/test_report_disclosure.py": { - "bytes": 16111, - "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + "src/source_integrity_toolkit/runtime/diagnostics.py": { + "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", + "bytes": 9437 }, - "tests/fixtures/adversarial/phase4_report_cases.json": { - "bytes": 64693, - "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + "tests/contract/test_json_report.py": { + "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "bytes": 10790 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", + "bytes": 16947 } }, - "post_test_inheritance": { - "paths": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "actual_test_nodes": { + "tests/contract/test_json_report.py": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" ], - "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." - } + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ] + }, + "reference_probe": { + "exact_reference": true, + "bytes": 421307, + "assembly_units": 6740573, + "encoder_units": 2768497, + "total_units": 9509070, + "output": { + "json": 421307, + "markdown": 0 + }, + "elapsed_seconds": 3.0059238750000077, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "independent_review": { + "status": "passed_no_blocking_findings", + "file": "p4w05-independent-review.json", + "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" + }, + "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." }, "package_boundary": { - "ok": true, + "activation_stage": 5, "checked_modules": 48, + "entry_byte_protected_modules": 40, "issues": [], - "activation_stage": 4, + "ok": true, "promoted_modules": [ "analysis/context.py", "analysis/contribution_profile.py", @@ -1371,6 +960,8 @@ "graph/witnesses.py", "io/input_file.py", "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", "runtime/boundary.py", "runtime/diagnostics.py", "runtime/disclosure.py", @@ -1380,154 +971,885 @@ "validation/semantics.py", "validation/structure.py" ], - "protected_modules": 17, - "entry_byte_protected_modules": 44, + "protected_modules": 15, "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, "failures_and_repairs": [ { - "failure": "Initial product reference differed only in the set order of Finding input references.", - "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", - "raw": "p4w04-product-reference-01" - }, - { - "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", - "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", - "raw": [ - "p4w04-security-001", - "p4w04-product-frontier-01" - ] - }, - { - "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", - "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", - "raw": [ - "p4w04-correction-home-diagnosis.json", - "p4w04-security-001", - "p4w04-security-002" - ] - }, - { - "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", - "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", - "raw": [ - "p4w04-n02-full-01", - "p4w04-scan-fixture-trace-01", - "p4w04-security-001" - ] + "evidence": "p4w05-json-001.log/.xml/-execution.json", + "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", + "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", + "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." } ], - "remaining": { - "W05_W06": "JSON and Markdown product encoders pending", - "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", - "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", - "W09_W10": "Full public obligation execution and final phase acceptance pending", - "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", - "file_native_cli_release": "Deferred" - }, - "historical_records": [ - { + "remaining": [ + "W06 Markdown and substantive parity are not started.", + "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", + "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", + "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", + "File/CLI/native publication, merge and release remain deferred.", + "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." + ], + "historical_records": { + "P4-W04": { "phase": "P4", - "current_unit": "P4-W03", - "active_repair_owner_unit": "P4-W01", - "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", + "current_unit": "P4-W04", + "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", "owner_authorization": { "instruction": "W04继续", - "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", - "owner_unit": "P4-W01", - "activation_stage": 3, - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "previous_checkpoint": { "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "local_targeted_tests": 5982, - "hosted_run": 40170942968, - "attempt": 1, - "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + "W03_local_targeted_tests": 5982, + "hosted_result": { + "run_id": 40170942968, + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "attempt": 1, + "run_status": "completed", + "run_conclusion": "failure", + "failed_profile": { + "matrix": "windows-2025 / Python 3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "artifact_bytes": 244690, + "raw_files": 47, + "pytest_exit": { + "error_type": "TimeoutExpired", + "exit_code": null, + "incomplete": true, + "interrupted": false, + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "timed_out": true, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "TimeoutExpired", + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "collection_count": 9653, + "junit_present": false, + "test_record_present": false, + "source_after_present": false, + "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." + }, + "comparison_profile": { + "matrix": "windows-2025 / Python 3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "artifact_bytes": 363913, + "pytest_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", + "timing": "windows313-timing-focused.json", + "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + }, + "diagnostic_profile": "guard-single-call-profile.json", + "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", + "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + }, + "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + }, + "inherited_W01_repair": { + "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", + "owner": "P4-W01", + "activation_stage": 3, + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "tests/scaffold/test_imports.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_module_manifest.py", + "tests/security/test_preparation_inertness.py", + "tests/scaffold/test_ci_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + ], + "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "started_at_utc": "2026-10-25T07:57:05.151778+00:00", + "elapsed_seconds": 259.7052340929986, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_count": 224, + "source_hashes_unchanged": true, + "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "576", + "time": "259.471", + "timestamp": "2026-10-25T01:57:05.272902-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_verification_boundary": 213, + "tests.scaffold.test_imports": 50, + "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, + "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, + "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, + "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, + "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, + "tests.security.test_preparation_inertness": 39, + "tests.scaffold.test_ci_contract.CiContractTests": 14, + "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, + "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + }, + "collection_preservation": { + "before_exit": 0, + "after_exit": 0, + "before_count": 211, + "after_count": 213, + "original_211_ordered_cases_unchanged": true, + "added": [ + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "before_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + ], + "after_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ] + }, + "same_source_timing": { + "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "module_sha256": { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", + "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + }, + "guard_sha256": { + "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", + "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + }, + "seconds": { + "before": [ + 1.170046082999761, + 1.182108517998131, + 1.114261736998742 + ], + "after": [ + 0.6021103010025399, + 0.5637806820013793, + 0.5558995499995945 + ] + }, + "median_seconds": { + "before": 1.170046082999761, + "after": 0.5637806820013793 + }, + "same_empty_issues": { + "before": [], + "after": [] + }, + "after_parse_counts": { + "current_module_issues": 48, + "_phase2_layer_issues": 18, + "executable_ast": 36 + } + }, + "raw_directory": "p4w04-w01-repair", + "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" + "changes": [ + "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", + "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", + "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", + "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", + "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + ], + "changed_scope": { + "W04": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/runtime/disclosure.py", + "tests/contract/test_report_assembly.py", + "tests/security/test_report_disclosure.py", + "tests/fixtures/adversarial/phase4_report_cases.json", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 + "separate_W01": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" }, - "failure_diagnosis": { - "failed_profile": "windows-2025 Python3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "raw_files": 47, - "pytest": { - "exit_code": null, - "error_type": "TimeoutExpired", - "timeout_seconds": 2400, - "timed_out": true, - "incomplete": true, - "junit_present": false + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" }, - "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", - "comparison": { - "profile": "windows-2025 Python3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "passed_tests": 9653, - "successful_subtests": 533, - "pytest_seconds": 2397.33, - "junit_seconds": 2397.258, - "testcase_seconds": 2388.211, - "V02_seconds": 668.918, - "largest_V02_case_seconds": 145.581, - "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + }, + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + }, + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + }, + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + } }, - "raw_directory": "p4w04-prior-ci-diagnosis", - "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } }, - "changes": [ + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 4, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 17, + "entry_byte_protected_modules": 44, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "failure": "Initial product reference differed only in the set order of Finding input references.", + "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", + "raw": "p4w04-product-reference-01" + }, { - "path": "tools/check_scaffold_boundary.py", - "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", + "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", + "raw": [ + "p4w04-security-001", + "p4w04-product-frontier-01" + ] }, { - "path": "tests/contract/test_verification_boundary.py", - "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", + "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", + "raw": [ + "p4w04-correction-home-diagnosis.json", + "p4w04-security-001", + "p4w04-security-002" + ] }, { - "path": "phase4/implementation_evidence.json", - "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", + "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", + "raw": [ + "p4w04-n02-full-01", + "p4w04-scan-fixture-trace-01", + "p4w04-security-001" + ] } ], - "preserved_guarantees": [ - "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", - "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", - "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", - "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", - "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." - ], - "validation": { - "state": "pending after this locally reviewable commit", - "original_V02_definitions": 62, - "changed_existing_V02_definitions": [], - "added_V02_tests": [ - "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", - "test_current_source_checks_parse_fresh_after_mutation_and_restoration" - ], - "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." + "remaining": { + "W05_W06": "JSON and Markdown product encoders pending", + "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", + "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", + "W09_W10": "Full public obligation execution and final phase acceptance pending", + "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", + "file_native_cli_release": "Deferred" }, "historical_records": [ { "phase": "P4", "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -1539,269 +1861,76 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." - }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." - ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" - ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 - }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" - }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } - }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] - } - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] - } - } - }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" - }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." }, - "failures_and_repairs": [ - { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] - }, - { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] - }, - { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] - }, + "changes": [ { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." }, { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." }, { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." } ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" + ], + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { @@ -1815,797 +1944,269 @@ "post_merge_run": 38164028893 }, "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, - "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." - }, - "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." - }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." - }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } - ], - "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 - }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, + "per_profile_successful_subtests": 533, + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." + }, + "changes": [ + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." + ], + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 - }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" - } + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" } }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" - }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 - }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" - }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } - }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } - ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" - }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" - } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" } - } - }, - "failures_and_repairs": [ - { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + }, + "failures_and_repairs": [ { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" ] }, { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" ] }, { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" ] }, { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" ] }, { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" ] }, { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" ] } ], "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -2617,240 +2218,1048 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 + }, + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + }, + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, "package_boundary": { "result": "passed", - "stage": 1, + "activation_stage": 2, "checked_modules": 48, - "byte_protected_modules": 48 + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] + }, + { + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] + }, + { + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] + }, + { + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] + }, + { + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." } ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" } ], - "authority_notice": "Review-only evidence, not authority, product input or test selection.", - "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", - "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" + "authority_notice": "Review-only evidence; not product input or authorization policy.", + "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", + "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." } - ], - "authority_notice": "Review-only evidence; not product input or authorization policy.", - "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", - "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", + "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", + "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." } }, - "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", - "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", - "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." + "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", + "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", + "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." } diff --git a/tests/contract/test_verification_boundary.py b/tests/contract/test_verification_boundary.py index e9626bd..5beef09 100644 --- a/tests/contract/test_verification_boundary.py +++ b/tests/contract/test_verification_boundary.py @@ -489,7 +489,7 @@ def test_current_module_ceiling_and_protected_slots(case, code, current_stage): path = "graph/cycles.py" if case == "extra": path = "analysis/future.py"; sources[path] = b"" elif case == "missing": del sources[path] - elif case == "protected": path = "reporting/json_report.py"; sources[path] = b"ACTIVE = {}\n" + elif case == "protected": path = "io/output_directory.py"; sources[path] = b"ACTIVE = {}\n" elif case == "public_report": path = "api.py" sources[path] = b'def audit_bundle(x):\n return {"report_kind": "audit_report"}\n' @@ -497,7 +497,7 @@ def test_current_module_ceiling_and_protected_slots(case, code, current_stage): elif case == "encoding": sources[path] = b"\xff" else: limit = 262144 if case == "active_size" else 16384 - if case == "inert_size": path = "reporting/json_report.py" + if case == "inert_size": path = "io/output_directory.py" sources[path] = b"#" * limit assert (path, "oversize_module") not in guard.current_module_issues(sources, stage=current_stage) sources[path] += b"#" From e2cd1217ac7873c338d1d0503c0cdef259ce2f3c Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 09:40:54 -0700 Subject: [PATCH 13/21] Render exact bounded Markdown with independent JSON parity Add charged pretty-J and minimal safe fences while preserving the existing JSON encoder. Emit the fixed sixteen-root layout, complete Result and Reason details, exact half-up fraction displays and one final LF from the same frozen logical document. Keep source strings inside encoded data blocks. Verify independent reference bytes, substantive omission controls, literal-data rendering and actual output boundaries. Record341passing focused tests and the separately owned213-test verification repair without claiming public delivery. SIT-Phase-Unit: P4-W06 --- phase4/implementation_evidence.json | 6266 +++++++++-------- phase4/report_contract_coverage.json | 236 +- .../reporting/escaping.py | 172 + .../reporting/markdown_report.py | 246 +- tests/contract/test_report_parity.py | 460 ++ tests/security/test_rendering.py | 206 + tests/security/test_report_resource_limits.py | 160 + 7 files changed, 4798 insertions(+), 2948 deletions(-) create mode 100644 tests/contract/test_report_parity.py create mode 100644 tests/security/test_rendering.py diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 05eb353..3703c79 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,1676 +1,1197 @@ { "phase": "P4", - "current_unit": "P4-W01", - "delivery_unit": "P4-W05", - "activation_stage": 5, - "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", - "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", + "current_unit": "P4-W06", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W06 continuation after W05 implementation. W06 only; required existing-unit verification repair remains separately W01-owned.", "previous_checkpoint": { "unit": "P4-W05", "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", "tree": "60327a132ca62f444a132f42542fdbcb411f5357", - "run_id": 40192106767, - "run_attempt": 1, - "hosted_result": "completed/failure", - "profiles": [ - { - "artifact_id": 12599033843, - "name": "phase3-windows-2025-py3.13-40192106767-1", - "raw_files": 48, - "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "2167.529", - "timestamp": "2026-10-25T12:14:11.583388+00:00", - "hostname": "runnervmdaln5" + "hosted_failure": { + "run_id": 40192106767, + "run_attempt": 1, + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "status": "completed_failure", + "profiles": [ + { + "artifact_id": 12599033843, + "name": "phase3-windows-2025-py3.13-40192106767-1", + "sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "zip_bytes": 361675, + "raw_files": 48, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2167.529", + "timestamp": "2026-10-25T12:14:11.583388+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } - }, - { - "artifact_id": 12598913258, - "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", - "raw_files": 48, - "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "1707.237", - "timestamp": "2026-10-25T12:13:29.022234+00:00", - "hostname": "runnervmtai0g" + { + "artifact_id": 12598913258, + "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "zip_bytes": 354396, + "raw_files": 48, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1707.237", + "timestamp": "2026-10-25T12:13:29.022234+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } - }, - { - "artifact_id": 12598889077, - "name": "phase3-windows-2025-py3.11-40192106767-1", - "raw_files": 48, - "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "2216.425", - "timestamp": "2026-10-25T12:14:13.684890+00:00", - "hostname": "runnervmdaln5" + { + "artifact_id": 12598889077, + "name": "phase3-windows-2025-py3.11-40192106767-1", + "sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "zip_bytes": 361813, + "raw_files": 48, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2216.425", + "timestamp": "2026-10-25T12:14:13.684890+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 + { + "artifact_id": 12598853369, + "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "zip_bytes": 354373, + "raw_files": 48, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1530.030", + "timestamp": "2026-10-25T12:13:22.517483+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)" } + ], + "cause": "Two V02 probes still treated reporting/json_report.py as an inert slot after W05 activated it. The guard correctly accepted the active implementation; the stale fixture expectations failed.", + "failure_identities": [ + "test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]" + ], + "scope": "All4 original48-file artifacts retained with verifiedZIPdigests; all9874 ordered collection identities and228sourcehashes agree. Eachprofile2failed/9872passed/533successfulsubtests, noerrors/skips/timeouts. This is failure diagnosis, not accepted hosted success." + } + }, + "inherited_W01_repair": { + "owner_unit": "P4-W01", + "activation_stage": 5, + "local_commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "tree": "e9b8ac43fc5b1c167a82e39bb7b488e8eab6b046", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "change": "Only two inert-slot fixture path literals changed to permanently protected io/output_directory.py; original213orderedcases and assertions retained. No product, guard, workflow, scope or budget changes.", + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-002.xml" + ], + "head": "3525d294ac179e38948346188bd5e633a06b7a08", + "started_at_utc": "2026-10-25T16:34:38.526038+00:00", + "elapsed_seconds": 187.9850304490028, + "exit_code": 0, + "timed_out": false, + "incomplete": false, + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." + }, + "junit": { + "summary": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "213", + "time": "187.770", + "timestamp": "2026-10-25T10:34:38.664925-06:00", + "hostname": "d6921570ec2c" }, - { - "artifact_id": 12598853369, - "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", - "raw_files": 48, - "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "1530.030", - "timestamp": "2026-10-25T12:13:22.517483+00:00", - "hostname": "runnervmtai0g" - }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "by_classname": { + "tests.contract.test_verification_boundary": 213 } - ], - "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + }, + "source_files": 228, + "source_bytes_unchanged": true, + "initial_attempt": { + "evidence": "p4w06-w01-repair/focused-001.*", + "result": "184passed and29setup errors; current_unit_path_not_allowed correctly rejected uncommitted W01 edits on a W05-owned checkout. No guard override; repair committed under realW01ownership before successful run002." + } }, "changes": [ { - "path": "tests/contract/test_verification_boundary.py", - "owner": "P4-W01", - "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + "paths": [ + "P05", + "P07" + ], + "behavior": "Additive charged pretty-J and exact dynamic fence scan; complete fixed16-root Markdown layout, validated tool-controlled headings, complete Result and canonical Reason details, original fractions plus six-place half-up display, one final LF. Output directly shares one counted writer; no intermediate body outputcounter/reset." + }, + { + "paths": [ + "N05", + "N09", + "N10" + ], + "behavior": "Independent exact JSON/Markdown references and parse equality, substantive omission mutants, controls for source markup/backticks/controls/bidi and real fixedcounter framing/LF/stops. Old38 N10orderedcases and W05encoder functions remain." } ], - "changed_scope": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], + "changed_scope": { + "unit": "P4-W06", + "paths": [ + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/markdown_report.py", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "approved_ids": [ + "P05", + "P07", + "N05", + "N09", + "N10", + "D04", + "D05" + ], + "unchanged": "Plan, contract/schema, JSON renderer and prior escaping methods, independent goldens/fixtures, private analysis, public APIs, runtime boundary/resources, budgets, workflow/pins, version and module inventory. V02 changed only in inheritedW01repair." + }, "validation": { - "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", - "attempt_001": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" - ], - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "started_at_utc": "2026-10-25T16:31:30.867435+00:00", - "elapsed_seconds": 111.38650181399862, - "exit_code": 1, - "timed_out": false, - "incomplete": false, - "source_count": 228, - "source_unchanged": true, - "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." - }, - "junit": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T16:36:25.533181+00:00", + "elapsed_seconds": 35.059611011995, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "source_files": 230, + "source_bytes_unchanged": true, + "scope": "Five named W06 Markdown/parity/rendering/output and prior JSON/oracle files; not a full suite or W07 public invocation." + }, + "junit": { + "summary": { "name": "pytest", - "errors": "29", + "errors": "0", "failures": "0", "skipped": "0", - "tests": "213", - "time": "111.175", - "timestamp": "2026-10-25T10:31:30.996027-06:00", + "tests": "341", + "time": "34.750", + "timestamp": "2026-10-25T10:36:25.718461-06:00", "hostname": "d6921570ec2c" }, - "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", - "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." + "by_classname": { + "tests.contract.test_report_parity": 30, + "tests.security.test_rendering": 26, + "tests.security.test_report_resource_limits": 48, + "tests.contract.test_json_report": 148, + "tests.contract.test_report_test_oracles": 89 + } }, - "collection_preservation": { - "created_at_utc": "2026-10-25T16:32:15.236018+00:00", - "original_ordered_case_count": 213, - "current_ordered_case_count": 213, - "ordered_case_ids_identical": true, - "case_ids": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + "actual_test_nodes": { + "tests/contract/test_report_parity.py": [ + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants" ], - "changed_function": [ - "test_current_module_ceiling_and_protected_slots" + "tests/security/test_rendering.py": [ + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" ], - "unchanged_other_top_level_definitions": 63, - "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", - "permanently_inactive_target": "io/output_directory.py", - "all_ten_activation_stages_keep_target_inactive": true, - "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" - } + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" + ] + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "c7219bd3e6d4b299574164522396065215933d140c3643a822c50df5bf1f018e", + "bytes": 17438 + }, + "src/source_integrity_toolkit/reporting/markdown_report.py": { + "sha256": "ae8eaa6ee6d1addc0df5ba294743a53703cbbd1014fc6f41e2ea759e48e170bc", + "bytes": 9019 + }, + "tests/contract/test_report_parity.py": { + "sha256": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "bytes": 21344 + }, + "tests/security/test_rendering.py": { + "sha256": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "bytes": 9553 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", + "bytes": 24878 + } + }, + "dual_renderer_probe": { + "exact_reference": true, + "markdown_bytes": 564555, + "json_bytes": 421307, + "markdown_sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", + "json_units": 3040258, + "markdown_units": 3982007, + "combined_units": 7022265, + "ledger_units": 7023292, + "output_counters": [ + 421307, + 564555 + ], + "elapsed_seconds": 2.2758739560013055, + "scope": "One real finalization ledger for both renderers; frozen input constructed separately; no W07 analysis/composition claim." + }, + "independent_review": { + "file": "p4w06-independent-review.json", + "sha256": "7004d007ece6a09ed8465107eed957e5f01ddc4af0aaffc70e595583867d0990", + "status": "passed_no_blocking_findings" + }, + "post_test_inheritance": { + "commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py" + ], + "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." + }, + "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." }, - "failure_and_repair": { - "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", - "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", - "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + "package_boundary": { + "activation_stage": 6, + "checked_modules": 48, + "entry_byte_protected_modules": 39, + "issues": [], + "ok": true, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "reporting/markdown_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 14, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, - "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", + "failures_and_repairs": [ + { + "evidence": "p4w06-rendering-001.*", + "result": "16passed/10failed new security assertions; exact output/parsing already correct.", + "cause": "Test expected3 canary-containing blocks but counted only whole-string matches and missed a prefixed diagnostic qualification.", + "repair": "Count retained canary substrings; no product/golden change. CorrectedN09has26passes and finalunified341passes." + }, + { + "evidence": "p4w06-w01-repair/focused-001.*", + "result": "184passed/29setup errors due to actualowner scope before W01commit; successfulcleanowner213case rerun retained separately." + } + ], "remaining": [ - "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", - "New hosted candidate outcome is pending.", - "W06 product work is separate and not included in this repair.", - "Whole-invocation integration, public delivery, merge and release remain pending." + "W07 must prove the original same invocation ledger across capture, analysis, disclosure, assembly, both encodings and parity. The7022265-unit dual-renderer probe starts from a separately frozen document; it is not complete pipeline feasibility proof.", + "All228 public pipeline/rendering obligation rows remain pending; public API activation and complete AuditReport delivery remain later units.", + "File/native/CLI publication, merge and release remain deferred.", + "New hosted outcome is unknown in this pre-publication record and will be reflected in PR/external evidence." ], "historical_records": { - "P4-W05": { + "preceding_W01_repair_record": { "phase": "P4", - "current_unit": "P4-W05", - "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", - "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", + "current_unit": "P4-W01", + "delivery_unit": "P4-W05", + "activation_stage": 5, + "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", + "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", "previous_checkpoint": { - "unit": "P4-W04", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", - "hosted_status": { - "saved_at_utc": "2026-10-25T12:03:35.195Z", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "runs": { - "workflow_runs": [ - { - "id": 40175369945, - "name": "P1-W02 selected-toolchain verification", - "status": "completed", - "conclusion": "skipped", - "run_number": 92, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", - "workflow_id": 361073157 - }, - { - "id": 40175369950, - "name": "Current verification", - "status": "completed", - "conclusion": "success", - "run_number": 106, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", - "workflow_id": 361447276 - } - ] + "unit": "P4-W05", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "run_id": 40192106767, + "run_attempt": 1, + "hosted_result": "completed/failure", + "profiles": [ + { + "artifact_id": 12599033843, + "name": "phase3-windows-2025-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2167.529", + "timestamp": "2026-10-25T12:14:11.583388+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, - "jobs": { - "jobs": [ - { - "id": 121114762732, - "name": "analytical core (windows-2025, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762895, - "name": "analytical core (ubuntu-24.04, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762924, - "name": "analytical core (ubuntu-24.04, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, + { + "artifact_id": 12598913258, + "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1707.237", + "timestamp": "2026-10-25T12:13:29.022234+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } + }, + { + "artifact_id": 12598889077, + "name": "phase3-windows-2025-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2216.425", + "timestamp": "2026-10-25T12:14:13.684890+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } + }, + { + "artifact_id": 12598853369, + "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1530.030", + "timestamp": "2026-10-25T12:13:22.517483+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } + } + ], + "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + }, + "changes": [ + { + "path": "tests/contract/test_verification_boundary.py", + "owner": "P4-W01", + "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + } + ], + "changed_scope": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "validation": { + "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", + "attempt_001": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" + ], + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "started_at_utc": "2026-10-25T16:31:30.867435+00:00", + "elapsed_seconds": 111.38650181399862, + "exit_code": 1, + "timed_out": false, + "incomplete": false, + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." + }, + "junit": { + "name": "pytest", + "errors": "29", + "failures": "0", + "skipped": "0", + "tests": "213", + "time": "111.175", + "timestamp": "2026-10-25T10:31:30.996027-06:00", + "hostname": "d6921570ec2c" + }, + "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", + "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." + }, + "collection_preservation": { + "created_at_utc": "2026-10-25T16:32:15.236018+00:00", + "original_ordered_case_count": 213, + "current_ordered_case_count": 213, + "ordered_case_ids_identical": true, + "case_ids": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "changed_function": [ + "test_current_module_ceiling_and_protected_slots" + ], + "unchanged_other_top_level_definitions": 63, + "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", + "permanently_inactive_target": "io/output_directory.py", + "all_ten_activation_stages_keep_target_inactive": true, + "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + } + }, + "failure_and_repair": { + "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", + "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", + "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + }, + "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", + "remaining": [ + "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", + "New hosted candidate outcome is pending.", + "W06 product work is separate and not included in this repair.", + "Whole-invocation integration, public delivery, merge and release remain pending." + ], + "historical_records": { + "P4-W05": { + "phase": "P4", + "current_unit": "P4-W05", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", + "previous_checkpoint": { + "unit": "P4-W04", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", + "hosted_status": { + "saved_at_utc": "2026-10-25T12:03:35.195Z", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "runs": { + "workflow_runs": [ { - "name": "Post Checkout exact candidate without stored credentials", + "id": 40175369945, + "name": "P1-W02 selected-toolchain verification", "status": "completed", - "conclusion": "success", - "number": 16 + "conclusion": "skipped", + "run_number": 92, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", + "workflow_id": 361073157 }, { - "name": "Complete job", + "id": 40175369950, + "name": "Current verification", "status": "completed", "conclusion": "success", - "number": 17 + "run_number": 106, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", + "workflow_id": 361447276 } ] }, - { - "id": 121114762983, - "name": "analytical core (windows-2025, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, + "jobs": { + "jobs": [ { - "name": "Checkout exact candidate without stored credentials", + "id": 121114762732, + "name": "analytical core (windows-2025, Python 3.13)", "status": "completed", "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] }, { - "name": "Post Checkout exact candidate without stored credentials", + "id": 121114762895, + "name": "analytical core (ubuntu-24.04, Python 3.11)", "status": "completed", "conclusion": "success", - "number": 16 + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] }, { - "name": "Complete job", + "id": 121114762924, + "name": "analytical core (ubuntu-24.04, Python 3.13)", "status": "completed", "conclusion": "success", - "number": 17 - } - ] - } - ] - }, - "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." - }, - "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." - }, - "changes": [ - { - "paths": [ - "P05", - "P06" - ], - "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." - }, - { - "paths": [ - "P02", - "P08", - "P09" - ], - "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." - }, - { - "paths": [ - "N04", - "N10" - ], - "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." - } - ], - "changed_scope": { - "unit": "P4-W05", - "paths": [ - "src/source_integrity_toolkit/contracts/execution.py", - "src/source_integrity_toolkit/reporting/escaping.py", - "src/source_integrity_toolkit/reporting/json_report.py", - "src/source_integrity_toolkit/runtime/resources.py", - "src/source_integrity_toolkit/runtime/diagnostics.py", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "approved_ids": [ - "P02", - "P05", - "P06", - "P08", - "P09", - "N04", - "N10", - "D04", - "D05" - ], - "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "tests/contract/test_report_test_oracles.py", - "tests/security/test_input_resource_limits.py", - "tests/security/test_analytical_resource_limits.py", - "tests/security/test_input_diagnostics.py", - "tests/security/test_analytical_diagnostics.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" - ], - "started_at_utc": "2026-10-25T12:07:49.098267+00:00", - "elapsed_seconds": 10.06384003399944, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "source_files": 228, - "source_bytes_unchanged": true, - "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "432", - "time": "9.770", - "timestamp": "2026-10-25T06:07:49.242461-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_json_report": 148, - "tests.security.test_report_resource_limits": 38, - "tests.contract.test_report_test_oracles": 89, - "tests.security.test_input_resource_limits": 36, - "tests.security.test_analytical_resource_limits": 60, - "tests.security.test_input_diagnostics": 32, - "tests.security.test_analytical_diagnostics": 29 - }, - "tested_product_and_test_bytes": { - "src/source_integrity_toolkit/contracts/execution.py": { - "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", - "bytes": 11231 - }, - "src/source_integrity_toolkit/reporting/escaping.py": { - "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", - "bytes": 10969 - }, - "src/source_integrity_toolkit/reporting/json_report.py": { - "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", - "bytes": 1064 - }, - "src/source_integrity_toolkit/runtime/resources.py": { - "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", - "bytes": 16699 - }, - "src/source_integrity_toolkit/runtime/diagnostics.py": { - "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", - "bytes": 9437 - }, - "tests/contract/test_json_report.py": { - "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", - "bytes": 10790 - }, - "tests/security/test_report_resource_limits.py": { - "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", - "bytes": 16947 - } - }, - "actual_test_nodes": { - "tests/contract/test_json_report.py": [ - "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", - "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", - "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", - "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", - "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", - "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", - "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", - "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", - "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", - "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", - "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", - "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" - ], - "tests/security/test_report_resource_limits.py": [ - "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", - "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", - "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", - "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", - "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", - "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", - "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", - "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", - "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", - "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", - "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", - "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", - "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", - "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" - ] - }, - "reference_probe": { - "exact_reference": true, - "bytes": 421307, - "assembly_units": 6740573, - "encoder_units": 2768497, - "total_units": 9509070, - "output": { - "json": 421307, - "markdown": 0 - }, - "elapsed_seconds": 3.0059238750000077, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "independent_review": { - "status": "passed_no_blocking_findings", - "file": "p4w05-independent-review.json", - "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" - }, - "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." - }, - "package_boundary": { - "activation_stage": 5, - "checked_modules": 48, - "entry_byte_protected_modules": 40, - "issues": [], - "ok": true, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "reporting/escaping.py", - "reporting/json_report.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 15, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "evidence": "p4w05-json-001.log/.xml/-execution.json", - "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", - "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", - "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." - } - ], - "remaining": [ - "W06 Markdown and substantive parity are not started.", - "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", - "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", - "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", - "File/CLI/native publication, merge and release remain deferred.", - "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." - ], - "historical_records": { - "P4-W04": { - "phase": "P4", - "current_unit": "P4-W04", - "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", - "owner_authorization": { - "instruction": "W04继续", - "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "W03_local_targeted_tests": 5982, - "hosted_result": { - "run_id": 40170942968, - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "attempt": 1, - "run_status": "completed", - "run_conclusion": "failure", - "failed_profile": { - "matrix": "windows-2025 / Python 3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "artifact_bytes": 244690, - "raw_files": 47, - "pytest_exit": { - "error_type": "TimeoutExpired", - "exit_code": null, - "incomplete": true, - "interrupted": false, - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "timed_out": true, - "timeout_seconds": 2400 - }, - "test_failure": { - "error_type": "TimeoutExpired", - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "stage": "test" - }, - "evidence_failure": { - "error_type": "ValueError", - "message": "earlier_stage_failed", - "stage": "evidence" - }, - "collection_count": 9653, - "junit_present": false, - "test_record_present": false, - "source_after_present": false, - "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." - }, - "comparison_profile": { - "matrix": "windows-2025 / Python 3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "artifact_bytes": 363913, - "pytest_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - }, - "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", - "timing": "windows313-timing-focused.json", - "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762983, + "name": "analytical core (windows-2025, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + } + ] }, - "diagnostic_profile": "guard-single-call-profile.json", - "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", - "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." }, - "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." }, - "inherited_W01_repair": { - "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", - "owner": "P4-W01", - "activation_stage": 3, - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "tests/scaffold/test_imports.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_module_manifest.py", - "tests/security/test_preparation_inertness.py", - "tests/scaffold/test_ci_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + "changes": [ + { + "paths": [ + "P05", + "P06" ], - "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "started_at_utc": "2026-10-25T07:57:05.151778+00:00", - "elapsed_seconds": 259.7052340929986, - "exit_code": 0, - "timeout_seconds": 1200, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_count": 224, - "source_hashes_unchanged": true, - "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "576", - "time": "259.471", - "timestamp": "2026-10-25T01:57:05.272902-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_verification_boundary": 213, - "tests.scaffold.test_imports": 50, - "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, - "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, - "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, - "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, - "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, - "tests.security.test_preparation_inertness": 39, - "tests.scaffold.test_ci_contract.CiContractTests": 14, - "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, - "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." }, - "collection_preservation": { - "before_exit": 0, - "after_exit": 0, - "before_count": 211, - "after_count": 213, - "original_211_ordered_cases_unchanged": true, - "added": [ - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "before_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + { + "paths": [ + "P02", + "P08", + "P09" ], - "after_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ] - }, - "same_source_timing": { - "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", - "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", - "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "module_sha256": { - "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", - "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", - "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", - "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", - "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", - "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", - "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", - "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", - "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", - "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", - "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", - "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", - "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", - "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", - "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", - "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", - "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", - "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", - "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", - "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", - "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", - "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", - "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", - "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", - "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", - "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", - "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", - "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", - "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", - "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", - "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", - "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", - "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", - "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", - "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", - "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", - "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", - "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", - "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", - "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", - "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", - "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", - "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", - "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", - "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", - "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", - "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", - "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" - }, - "guard_sha256": { - "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", - "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" - }, - "seconds": { - "before": [ - 1.170046082999761, - 1.182108517998131, - 1.114261736998742 - ], - "after": [ - 0.6021103010025399, - 0.5637806820013793, - 0.5558995499995945 - ] - }, - "median_seconds": { - "before": 1.170046082999761, - "after": 0.5637806820013793 - }, - "same_empty_issues": { - "before": [], - "after": [] - }, - "after_parse_counts": { - "current_module_issues": 48, - "_phase2_layer_issues": 18, - "executable_ast": 36 - } + "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." }, - "raw_directory": "p4w04-w01-repair", - "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." - }, - "changes": [ - "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", - "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", - "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", - "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", - "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + { + "paths": [ + "N04", + "N10" + ], + "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + } ], "changed_scope": { - "W04": [ - "src/source_integrity_toolkit/reporting/assemble.py", - "src/source_integrity_toolkit/runtime/disclosure.py", - "tests/contract/test_report_assembly.py", - "tests/security/test_report_disclosure.py", - "tests/fixtures/adversarial/phase4_report_cases.json", + "unit": "P4-W05", + "paths": [ + "src/source_integrity_toolkit/contracts/execution.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/json_report.py", + "src/source_integrity_toolkit/runtime/resources.py", + "src/source_integrity_toolkit/runtime/diagnostics.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", "phase4/report_contract_coverage.json", "phase4/implementation_evidence.json" ], - "separate_W01": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "approved_ids": [ + "P02", + "P05", + "P06", + "P08", + "P09", + "N04", + "N10", + "D04", + "D05" ], - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" + "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." }, "validation": { "execution": { @@ -1680,77 +1201,134 @@ "-m", "pytest", "-q", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/security/test_report_disclosure.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + "tests/security/test_input_resource_limits.py", + "tests/security/test_analytical_resource_limits.py", + "tests/security/test_input_diagnostics.py", + "tests/security/test_analytical_diagnostics.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" ], - "started_at_utc": "2026-10-25T07:57:29.452245+00:00", - "elapsed_seconds": 73.28405752199978, + "started_at_utc": "2026-10-25T12:07:49.098267+00:00", + "elapsed_seconds": 10.06384003399944, "exit_code": 0, "timeout_seconds": 900, "timed_out": false, "interrupted": false, "incomplete": false, - "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "source_files": 226, + "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "source_files": 228, "source_bytes_unchanged": true, - "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." }, "junit": { "name": "pytest", "errors": "0", "failures": "0", "skipped": "0", - "tests": "186", - "time": "73.047", - "timestamp": "2026-10-25T01:57:29.593002-06:00", + "tests": "432", + "time": "9.770", + "timestamp": "2026-10-25T06:07:49.242461-06:00", "hostname": "d6921570ec2c" }, "cases_by_classname": { - "tests.contract.test_report_assembly": 55, - "tests.contract.test_report_identity": 16, - "tests.security.test_report_disclosure": 26, - "tests.contract.test_report_test_oracles": 89 + "tests.contract.test_json_report": 148, + "tests.security.test_report_resource_limits": 38, + "tests.contract.test_report_test_oracles": 89, + "tests.security.test_input_resource_limits": 36, + "tests.security.test_analytical_resource_limits": 60, + "tests.security.test_input_diagnostics": 32, + "tests.security.test_analytical_diagnostics": 29 }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58955, - "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + "tested_product_and_test_bytes": { + "src/source_integrity_toolkit/contracts/execution.py": { + "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", + "bytes": 11231 + }, + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", + "bytes": 10969 }, - "src/source_integrity_toolkit/runtime/disclosure.py": { - "bytes": 38666, - "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + "src/source_integrity_toolkit/reporting/json_report.py": { + "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", + "bytes": 1064 }, - "tests/contract/test_report_assembly.py": { - "bytes": 71321, - "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + "src/source_integrity_toolkit/runtime/resources.py": { + "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", + "bytes": 16699 }, - "tests/security/test_report_disclosure.py": { - "bytes": 16111, - "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + "src/source_integrity_toolkit/runtime/diagnostics.py": { + "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", + "bytes": 9437 }, - "tests/fixtures/adversarial/phase4_report_cases.json": { - "bytes": 64693, - "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + "tests/contract/test_json_report.py": { + "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "bytes": 10790 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", + "bytes": 16947 } }, - "post_test_inheritance": { - "paths": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "actual_test_nodes": { + "tests/contract/test_json_report.py": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" ], - "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." - } + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ] + }, + "reference_probe": { + "exact_reference": true, + "bytes": 421307, + "assembly_units": 6740573, + "encoder_units": 2768497, + "total_units": 9509070, + "output": { + "json": 421307, + "markdown": 0 + }, + "elapsed_seconds": 3.0059238750000077, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "independent_review": { + "status": "passed_no_blocking_findings", + "file": "p4w05-independent-review.json", + "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" + }, + "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." }, "package_boundary": { - "ok": true, + "activation_stage": 5, "checked_modules": 48, + "entry_byte_protected_modules": 40, "issues": [], - "activation_stage": 4, + "ok": true, "promoted_modules": [ "analysis/context.py", "analysis/contribution_profile.py", @@ -1775,6 +1353,8 @@ "graph/witnesses.py", "io/input_file.py", "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", "runtime/boundary.py", "runtime/diagnostics.py", "runtime/disclosure.py", @@ -1784,154 +1364,885 @@ "validation/semantics.py", "validation/structure.py" ], - "protected_modules": 17, - "entry_byte_protected_modules": 44, + "protected_modules": 15, "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, "failures_and_repairs": [ { - "failure": "Initial product reference differed only in the set order of Finding input references.", - "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", - "raw": "p4w04-product-reference-01" - }, - { - "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", - "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", - "raw": [ - "p4w04-security-001", - "p4w04-product-frontier-01" - ] - }, - { - "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", - "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", - "raw": [ - "p4w04-correction-home-diagnosis.json", - "p4w04-security-001", - "p4w04-security-002" - ] - }, - { - "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", - "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", - "raw": [ - "p4w04-n02-full-01", - "p4w04-scan-fixture-trace-01", - "p4w04-security-001" - ] + "evidence": "p4w05-json-001.log/.xml/-execution.json", + "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", + "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", + "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." } ], - "remaining": { - "W05_W06": "JSON and Markdown product encoders pending", - "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", - "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", - "W09_W10": "Full public obligation execution and final phase acceptance pending", - "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", - "file_native_cli_release": "Deferred" - }, - "historical_records": [ - { + "remaining": [ + "W06 Markdown and substantive parity are not started.", + "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", + "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", + "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", + "File/CLI/native publication, merge and release remain deferred.", + "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." + ], + "historical_records": { + "P4-W04": { "phase": "P4", - "current_unit": "P4-W03", - "active_repair_owner_unit": "P4-W01", - "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", + "current_unit": "P4-W04", + "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", "owner_authorization": { "instruction": "W04继续", - "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", - "owner_unit": "P4-W01", - "activation_stage": 3, - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "previous_checkpoint": { "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "local_targeted_tests": 5982, - "hosted_run": 40170942968, - "attempt": 1, - "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + "W03_local_targeted_tests": 5982, + "hosted_result": { + "run_id": 40170942968, + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "attempt": 1, + "run_status": "completed", + "run_conclusion": "failure", + "failed_profile": { + "matrix": "windows-2025 / Python 3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "artifact_bytes": 244690, + "raw_files": 47, + "pytest_exit": { + "error_type": "TimeoutExpired", + "exit_code": null, + "incomplete": true, + "interrupted": false, + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "timed_out": true, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "TimeoutExpired", + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "collection_count": 9653, + "junit_present": false, + "test_record_present": false, + "source_after_present": false, + "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." + }, + "comparison_profile": { + "matrix": "windows-2025 / Python 3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "artifact_bytes": 363913, + "pytest_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", + "timing": "windows313-timing-focused.json", + "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + }, + "diagnostic_profile": "guard-single-call-profile.json", + "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", + "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + }, + "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + }, + "inherited_W01_repair": { + "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", + "owner": "P4-W01", + "activation_stage": 3, + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "tests/scaffold/test_imports.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_module_manifest.py", + "tests/security/test_preparation_inertness.py", + "tests/scaffold/test_ci_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + ], + "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "started_at_utc": "2026-10-25T07:57:05.151778+00:00", + "elapsed_seconds": 259.7052340929986, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_count": 224, + "source_hashes_unchanged": true, + "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "576", + "time": "259.471", + "timestamp": "2026-10-25T01:57:05.272902-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_verification_boundary": 213, + "tests.scaffold.test_imports": 50, + "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, + "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, + "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, + "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, + "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, + "tests.security.test_preparation_inertness": 39, + "tests.scaffold.test_ci_contract.CiContractTests": 14, + "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, + "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + }, + "collection_preservation": { + "before_exit": 0, + "after_exit": 0, + "before_count": 211, + "after_count": 213, + "original_211_ordered_cases_unchanged": true, + "added": [ + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "before_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + ], + "after_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ] + }, + "same_source_timing": { + "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "module_sha256": { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", + "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + }, + "guard_sha256": { + "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", + "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + }, + "seconds": { + "before": [ + 1.170046082999761, + 1.182108517998131, + 1.114261736998742 + ], + "after": [ + 0.6021103010025399, + 0.5637806820013793, + 0.5558995499995945 + ] + }, + "median_seconds": { + "before": 1.170046082999761, + "after": 0.5637806820013793 + }, + "same_empty_issues": { + "before": [], + "after": [] + }, + "after_parse_counts": { + "current_module_issues": 48, + "_phase2_layer_issues": 18, + "executable_ast": 36 + } + }, + "raw_directory": "p4w04-w01-repair", + "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" + "changes": [ + "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", + "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", + "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", + "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", + "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + ], + "changed_scope": { + "W04": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/runtime/disclosure.py", + "tests/contract/test_report_assembly.py", + "tests/security/test_report_disclosure.py", + "tests/fixtures/adversarial/phase4_report_cases.json", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 + "separate_W01": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" }, - "failure_diagnosis": { - "failed_profile": "windows-2025 Python3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "raw_files": 47, - "pytest": { - "exit_code": null, - "error_type": "TimeoutExpired", - "timeout_seconds": 2400, - "timed_out": true, - "incomplete": true, - "junit_present": false + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" }, - "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", - "comparison": { - "profile": "windows-2025 Python3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "passed_tests": 9653, - "successful_subtests": 533, - "pytest_seconds": 2397.33, - "junit_seconds": 2397.258, - "testcase_seconds": 2388.211, - "V02_seconds": 668.918, - "largest_V02_case_seconds": 145.581, - "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + }, + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + }, + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + }, + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + } }, - "raw_directory": "p4w04-prior-ci-diagnosis", - "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } }, - "changes": [ + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 4, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 17, + "entry_byte_protected_modules": 44, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "failure": "Initial product reference differed only in the set order of Finding input references.", + "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", + "raw": "p4w04-product-reference-01" + }, { - "path": "tools/check_scaffold_boundary.py", - "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", + "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", + "raw": [ + "p4w04-security-001", + "p4w04-product-frontier-01" + ] }, { - "path": "tests/contract/test_verification_boundary.py", - "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", + "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", + "raw": [ + "p4w04-correction-home-diagnosis.json", + "p4w04-security-001", + "p4w04-security-002" + ] }, { - "path": "phase4/implementation_evidence.json", - "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", + "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", + "raw": [ + "p4w04-n02-full-01", + "p4w04-scan-fixture-trace-01", + "p4w04-security-001" + ] } ], - "preserved_guarantees": [ - "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", - "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", - "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", - "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", - "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." - ], - "validation": { - "state": "pending after this locally reviewable commit", - "original_V02_definitions": 62, - "changed_existing_V02_definitions": [], - "added_V02_tests": [ - "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", - "test_current_source_checks_parse_fresh_after_mutation_and_restoration" - ], - "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." + "remaining": { + "W05_W06": "JSON and Markdown product encoders pending", + "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", + "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", + "W09_W10": "Full public obligation execution and final phase acceptance pending", + "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", + "file_native_cli_release": "Deferred" }, "historical_records": [ { "phase": "P4", "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -1943,269 +2254,76 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." - }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." - ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" - ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 - }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" - }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } - }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] - } - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] - } - } - }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" - }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." }, - "failures_and_repairs": [ - { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] - }, - { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] - }, - { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] - }, + "changes": [ { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." }, { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." }, { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." } ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" + ], + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { @@ -2219,797 +2337,269 @@ "post_merge_run": 38164028893 }, "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, - "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." - }, - "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." - }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." - }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } - ], - "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 - }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, + "per_profile_successful_subtests": 533, + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." + }, + "changes": [ + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." + ], + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 - }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" - } + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" } }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" - }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 - }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" - }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } - }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } - ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" - }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" - } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" } - } - }, - "failures_and_repairs": [ - { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + }, + "failures_and_repairs": [ { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" ] }, { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" ] }, { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" ] }, { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" ] }, { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" ] }, { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" ] } ], "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." }, "historical_records": [ { "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, "accepted_anchor": { "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", @@ -3021,245 +2611,1053 @@ "vc_run": 38128491330, "post_merge_run": 38164028893 }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", "guarantee_migrations": [ { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" - ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." } ], "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" + }, + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } + }, + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 + }, + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } + }, + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + }, + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 + }, + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, "package_boundary": { "result": "passed", - "stage": 1, + "activation_stage": 2, "checked_modules": 48, - "byte_protected_modules": 48 + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 + }, + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + } }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "focused_retry": { - "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - "latest_increment": { - "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } + } + }, + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." - } + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } + }, + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." + }, + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" + }, + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" + } + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + }, + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + } } }, "failures_and_repairs": [ { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] + }, + { + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] + }, + { + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] + }, + { + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] + }, + { + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] }, { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] }, { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." }, { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." }, { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] }, { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } ], "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", "file_native_cli_audit_release": "deferred" }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + }, + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { + "result": "passed", + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 + }, + "bounded_driver": { + "result": "passed", + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false + }, + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 + }, + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" + }, + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, + "clean": true, + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } + }, + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true + }, + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" + } + }, + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" + }, + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" } ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." } ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" } ], - "authority_notice": "Review-only evidence, not authority, product input or test selection.", - "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", - "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" + "authority_notice": "Review-only evidence; not product input or authorization policy.", + "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", + "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." } - ], - "authority_notice": "Review-only evidence; not product input or authorization policy.", - "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", - "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", + "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", + "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." } }, - "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", - "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", - "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." + "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", + "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", + "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." } }, - "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", - "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", - "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48 is unchanged.", + "validated_at_utc": "2026-10-25T16:39:15.237589+00:00", + "publication_note": "W06 product/tests frozen during final341case run. Separately tested repair inherited afterward; only D04/D05 then record known facts. Published hashes/CI are external." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index 008e623..012dedd 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,7 +1,7 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W05", - "status": "W05 exact internal JSON and bounded output accounting verified; public delivery, Markdown and whole-invocation integration remain pending", + "unit": "P4-W06", + "status": "W06 exact internal Markdown and independent JSON parity verified; public delivery and whole-invocation integration remain pending", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", @@ -11929,18 +11929,70 @@ "source": "GOVERNANCE_AND_HANDOFF.md §22.2; REPOSITORY_ARCHITECTURE.md §18.3", "planned_unit": "P4-W06", "required_behavior": "Exact fixed root layout and complete pretty-J blocks, per-Result reason details, half-up six-place line for each available fraction, safe dynamic fences and one final LF.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "verified_internal_renderers_W06", + "actual_test_nodes": [ + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants", + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + ], + "execution_evidence": [ + { + "file": "p4w06-targeted-001.xml", + "parity_cases": 30, + "rendering_security_cases": 26, + "zero_failures_errors_skips": true, + "json_reference_bytes": 421307, + "markdown_reference_bytes": 564555 + } + ] }, { "clause": "semantic_parity", "source": "OBSERVABILITY_AND_REPORTING.md §19.1; VALIDATION_PLAN.md SIT-VG017", "planned_unit": "P4-W06", "required_behavior": "Both representations encode the same selected frozen report; independent block decoding and oracles reject loss of unavailable siblings, scope, unknowns, reasons, contrary premises, denominator or attribution.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "verified_internal_renderers_W06", + "actual_test_nodes": [ + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants", + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + ], + "execution_evidence": [ + { + "file": "p4w06-targeted-001.xml", + "parity_cases": 30, + "rendering_security_cases": 26, + "zero_failures_errors_skips": true, + "json_reference_bytes": 421307, + "markdown_reference_bytes": 564555 + } + ] }, { "clause": "one_ledger_and_stops", @@ -11979,6 +12031,32 @@ ], "execution_evidence": "p4w05-targeted-001.xml", "scope": "Fixed 67108864 separate counters, actual remaining-space encoding/LF boundaries, first-cause and no-prefix return. No full64MiB encoding or W07 witness reconciliation claim." + }, + "w06_component_evidence": { + "status": "both output encoders verified; witness/full invocation remains pending", + "actual_test_nodes": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" + ], + "execution_evidence": "p4w06-targeted-001.xml", + "scope": "Existing38cases and10Markdown additions; actual fixedcounter remaining-space limits, LF/framing, mid-output stops and no paired delivery. No full64MiB allocation claim." } }, { @@ -15302,5 +15380,147 @@ "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" }, "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." + }, + "w06_verification": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T16:36:25.533181+00:00", + "elapsed_seconds": 35.059611011995, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "source_files": 230, + "source_bytes_unchanged": true, + "scope": "Five named W06 Markdown/parity/rendering/output and prior JSON/oracle files; not a full suite or W07 public invocation." + }, + "junit": { + "summary": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "341", + "time": "34.750", + "timestamp": "2026-10-25T10:36:25.718461-06:00", + "hostname": "d6921570ec2c" + }, + "by_classname": { + "tests.contract.test_report_parity": 30, + "tests.security.test_rendering": 26, + "tests.security.test_report_resource_limits": 48, + "tests.contract.test_json_report": 148, + "tests.contract.test_report_test_oracles": 89 + } + }, + "actual_test_nodes": { + "tests/contract/test_report_parity.py": [ + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants" + ], + "tests/security/test_rendering.py": [ + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + ], + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" + ] + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "c7219bd3e6d4b299574164522396065215933d140c3643a822c50df5bf1f018e", + "bytes": 17438 + }, + "src/source_integrity_toolkit/reporting/markdown_report.py": { + "sha256": "ae8eaa6ee6d1addc0df5ba294743a53703cbbd1014fc6f41e2ea759e48e170bc", + "bytes": 9019 + }, + "tests/contract/test_report_parity.py": { + "sha256": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "bytes": 21344 + }, + "tests/security/test_rendering.py": { + "sha256": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "bytes": 9553 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", + "bytes": 24878 + } + }, + "dual_renderer_probe": { + "exact_reference": true, + "markdown_bytes": 564555, + "json_bytes": 421307, + "markdown_sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", + "json_units": 3040258, + "markdown_units": 3982007, + "combined_units": 7022265, + "ledger_units": 7023292, + "output_counters": [ + 421307, + 564555 + ], + "elapsed_seconds": 2.2758739560013055, + "scope": "One real finalization ledger for both renderers; frozen input constructed separately; no W07 analysis/composition claim." + }, + "independent_review": { + "file": "p4w06-independent-review.json", + "sha256": "7004d007ece6a09ed8465107eed957e5f01ddc4af0aaffc70e595583867d0990", + "status": "passed_no_blocking_findings" + }, + "post_test_inheritance": { + "commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py" + ], + "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." + }, + "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." } } diff --git a/src/source_integrity_toolkit/reporting/escaping.py b/src/source_integrity_toolkit/reporting/escaping.py index d7b7287..a38d0da 100644 --- a/src/source_integrity_toolkit/reporting/escaping.py +++ b/src/source_integrity_toolkit/reporting/escaping.py @@ -305,3 +305,175 @@ def _encode_j(value, port, *, encoding='json'): writer = _JWriter(port, encoding) writer.value(value) return writer.finish() + + +def _repeat_syntax(writer, token, count): + """Emit a tool-owned one-byte fence/indent token after its exact reserve.""" + _require(type(token) is bytes and token in (b' ', b'`')) + _require(type(count) is int and count >= 0) + writer._reserve(count) + _byte_work(writer._port, count, 2) + fragment = token * count + writer._port.check() + writer._retain(fragment) + + +def _fence_length(value, port): + """Scan the frozen value for the exact longest backtick run in pretty J. + + J preserves literal backticks inside strings, while every string boundary + contains a quote and container syntax contains no backtick. A run can cross + scan blocks within one string, but cannot cross distinct strings or keys. + No encoded body is allocated or charged to an output counter by this pass. + """ + port.charge(3) + pending = [('visit', value)] + active = set() + longest = 0 + while pending: + port.charge(1) + action, current = pending.pop() + if action == 'leave': + port.charge(1) + active.remove(current) + continue + if action == 'object': + pairs, position = current + if position < len(pairs): + port.charge(2) + pair = pairs[position] + _require(type(pair) is tuple and len(pair) == 2 and type(pair[0]) is str) + port.charge(3) + pending.append(('object', (pairs, position + 1))) + pending.append(('visit', pair[1])) + pending.append(('visit', pair[0])) + continue + if action == 'array': + items, position = current + if position < len(items): + port.charge(3) + pending.append(('array', (items, position + 1))) + pending.append(('visit', items[position])) + continue + kind = type(current) + if kind is str: + run = 0 + for start in range(0, len(current), 64): + size = min(64, len(current) - start) + _byte_work(port, size * 4, 1) + block = current[start:start + size] + _byte_work(port, size * 4, size + 1) + for char in block: + code = ord(char) + _require(not 0xD800 <= code <= 0xDFFF) + run = run + 1 if char == '`' else 0 + longest = max(longest, run) + port.check() + elif kind is _ReportMapping or kind is tuple: + port.charge(3) + identity = id(current) + _require(identity not in active) + active.add(identity) + port.charge(2) + pending.append(('leave', identity)) + if kind is _ReportMapping: + _require(type(current._pairs) is tuple) + pending.append(('object', (current._pairs, 0))) + else: + pending.append(('array', (current, 0))) + else: + _require(current is None or kind is bool or kind is int or kind is _Number) + port.check() + return max(3, longest + 1) + + +def _write_pretty_j(writer, value): + """Emit pretty J directly into the caller's one counted output buffer.""" + port = writer._port + port.charge(3) + pending = [('visit', (value, 0))] + active = set() + while pending: + port.charge(1) + action, current = pending.pop() + if action == 'object': + pairs, position, depth, identity = current + if position == len(pairs): + writer.literal(b'\n') + _repeat_syntax(writer, b' ', 2 * depth) + writer.literal(b'}') + port.charge(1) + active.remove(identity) + continue + if position: + writer.literal(b',\n') + _repeat_syntax(writer, b' ', 2 * (depth + 1)) + port.charge(1) + key, child = pairs[position] + writer.string(key) + writer.literal(b': ') + port.charge(3) + pending.append(('object', (pairs, position + 1, depth, identity))) + pending.append(('visit', (child, depth + 1))) + continue + if action == 'array': + items, position, depth, identity = current + if position == len(items): + writer.literal(b'\n') + _repeat_syntax(writer, b' ', 2 * depth) + writer.literal(b']') + port.charge(1) + active.remove(identity) + continue + if position: + writer.literal(b',\n') + _repeat_syntax(writer, b' ', 2 * (depth + 1)) + port.charge(3) + pending.append(('array', (items, position + 1, depth, identity))) + pending.append(('visit', (items[position], depth + 1))) + continue + value, depth = current + kind = type(value) + if value is None: + writer.literal(b'null') + elif kind is bool: + writer.literal(b'true' if value else b'false') + elif kind is int: + writer.integer(value) + elif kind is str: + writer.string(value) + elif kind is _Number: + writer.atom(value) + elif kind is _ReportMapping or kind is tuple: + port.charge(3) + identity = id(value) + _require(identity not in active) + active.add(identity) + if kind is _ReportMapping: + pairs = _sorted_report_pairs(value, port) + if not pairs: + writer.literal(b'{}') + port.charge(1) + active.remove(identity) + else: + writer.literal(b'{\n') + port.charge(2) + pending.append(('object', (pairs, 0, depth, identity))) + elif not value: + writer.literal(b'[]') + port.charge(1) + active.remove(identity) + else: + writer.literal(b'[\n') + port.charge(2) + pending.append(('array', (value, 0, depth, identity))) + else: + _require(False) + port.check() + + +def _encode_pretty_j(value, port, *, encoding='markdown'): + """Private pretty-J component, with no terminal LF or Markdown framing.""" + writer = _JWriter(port, encoding) + _write_pretty_j(writer, value) + return writer.finish() diff --git a/src/source_integrity_toolkit/reporting/markdown_report.py b/src/source_integrity_toolkit/reporting/markdown_report.py index c6c3101..872c920 100644 --- a/src/source_integrity_toolkit/reporting/markdown_report.py +++ b/src/source_integrity_toolkit/reporting/markdown_report.py @@ -1,10 +1,244 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Non-operational Phase 1 slot: reporting/markdown_report. +"""Owner: REPORT_PRESENTATION. Fixed bounded Markdown of the frozen report. -Owner: REPORT_PRESENTATION. -Authority: REPOSITORY_ARCHITECTURE.md sections 5-10 and 16-20; -PHASE_1_PLAN.md sections 4 and 6. -Specification adopted; scaffold slot present; behavior unimplemented. -No validation, traversal, scoring, rendering, I/O or native binding is provided. +Governance 22.2 selects the exact framing. Both renderers consume the same +already selected document. Source text occurs only inside pretty-J blocks; +headings and display lines use checked report identifiers or registered values. +No source projection, analysis, runtime context or public report is created. """ +from ..contracts.bundle import _compare_text +from ..contracts.execution import _byte_work +from ..contracts.report import _ReportMapping, _REPORT_ROOT_FIELDS +from ..contracts.results import FIELD_BINDINGS +from .escaping import ( + _JWriter, _require, _sorted_report_pairs, _fence_length, + _repeat_syntax, _write_pretty_j, _MAX_INTEGER, +) + + +def _fields(value, port): + """Build a charged local lookup only after exact keys and uniqueness.""" + port.charge(1) + fields = {} + _require(type(value) is _ReportMapping) + for key, child in _sorted_report_pairs(value, port): + _byte_work(port, len(key) * 4, 3) + fields[key] = child + port.check() + return fields + + +def _member(fields, name, port): + _byte_work(port, len(name), 2) + _require(name in fields) + return fields[name] + + +def _token(value, allowed, port): + _require(type(value) is str) + for token in allowed: + _byte_work(port, 4 * (len(value) + len(token)), 1) + if value == token: + return token + _require(False) + + +def _identifier(value, prefix, port): + _require(type(value) is str) + _byte_work(port, len(prefix), 2) + _require(len(value) >= len(prefix) + 6 and value.startswith(prefix)) + nonzero = False + for start in range(len(prefix), len(value), 64): + size = min(64, len(value) - start) + _byte_work(port, size * 4, 1) + block = value[start:start + size] + _byte_work(port, size * 4, size + 1) + for char in block: + _require('0' <= char <= '9') + nonzero = nonzero or char != '0' + port.check() + _require(nonzero) + return value + + +def _field_key(value, port): + _require(type(value) is str) + for _, field, _ in FIELD_BINDINGS: + _byte_work(port, 4 * (len(value) + len(field)), 2) + if value == field: + return field + _require(False) + + +def _ascii(writer, value): + """Only checked identifiers or tool-owned tokens reach this helper.""" + length = len(value) + writer._reserve(length) + _byte_work(writer._port, length, 2) + fragment = value.encode('ascii') + writer._port.check() + writer._retain(fragment) + + +def _block(writer, value, *, last=False): + length = _fence_length(value, writer._port) + _repeat_syntax(writer, b'`', length) + writer.literal(b'json\n') + _write_pretty_j(writer, value) + writer.literal(b'\n') + _repeat_syntax(writer, b'`', length) + writer.literal(b'\n' if last else b'\n\n') + + +def _reason_index(reasons, port): + _require(type(reasons) is tuple) + port.charge(1) + pairs = [] + for position, reason in enumerate(reasons): + port.charge(1) + fields = _fields(reason, port) + key = _identifier(_member(fields, 'id', port), 'SIT-RSN-', port) + port.charge(3) + pairs.append((key, (position, reason))) + port.charge(len(pairs) + 2) + return _sorted_report_pairs(_ReportMapping(tuple(pairs)), port) + + +def _reason_details(refs, reasons, index, port): + """Resolve with bounded binary search; retain canonical root Reason order.""" + _require(type(refs) is tuple) + port.charge(len(reasons) + 1) + selected = [False] * len(reasons) + for ref in refs: + port.charge(1) + _identifier(ref, 'SIT-RSN-', port) + lower, upper, found = 0, len(index), False + while lower < upper: + port.charge(1) + middle = (lower + upper) // 2 + key, item = index[middle] + comparison = _compare_text(ref, key, port) + if comparison < 0: + upper = middle + elif comparison > 0: + lower = middle + 1 + else: + port.charge(2) + position, _ = item + _require(not selected[position]) + selected[position] = True + found = True + break + _require(found) + port.charge(1) + result = [] + for position, reason in enumerate(reasons): + port.charge(1) + if selected[position]: + port.charge(1) + result.append(reason) + port.charge(len(result) + 1) + result = tuple(result) + port.check() + return result + + +def _decimal_display(writer, fraction): + port = writer._port + fields = _fields(fraction, port) + numerator = _member(fields, 'numerator', port) + denominator = _member(fields, 'denominator', port) + port.charge(4) + _require(type(numerator) is int and type(denominator) is int) + _require(0 <= numerator <= _MAX_INTEGER and 0 < denominator <= _MAX_INTEGER) + # Portable operands bound all intermediate decimal lengths to 23 digits. + # Each multiplication/division/rounding step is charged before arithmetic. + _byte_work(port, 128, 1) + scaled = numerator * 1_000_000 + _byte_work(port, 128, 2) + quotient, remainder = divmod(scaled, denominator) + _byte_work(port, 128, 1) + round_up = remainder * 2 >= denominator + if round_up: + _byte_work(port, 128, 1) + quotient += 1 + _byte_work(port, 128, 2) + whole, decimal = divmod(quotient, 1_000_000) + writer.literal(b'Decimal display: ') + writer.integer(numerator) + writer.literal(b'/') + writer.integer(denominator) + writer.literal(b' = ') + writer.integer(whole) + writer.literal(b'.') + writer._reserve(6) + _byte_work(port, 18, 3) + fragment = str(decimal).zfill(6).encode('ascii') + port.check() + writer._retain(fragment) + writer.literal(b'\n\n') + + +def _encode_markdown_report(document, port): + """Return exact complete Markdown bytes, or propagate a bounded stop. + + Only this one immutable document supplies both ordinary sections and + repeated Result/Reason details. No partial bytes or report escape failure. + """ + fields = _fields(document, port) + port.charge(len(_REPORT_ROOT_FIELDS) + 1) + _require(len(fields) == len(_REPORT_ROOT_FIELDS)) + for name in _REPORT_ROOT_FIELDS: + _member(fields, name, port) + kind = _token(_member(fields, 'report_kind', port), + ('audit_report', 'validation_diagnostics', 'processing_diagnostics'), port) + run = _fields(_member(fields, 'run', port), port) + processing = _token(_member(run, 'processing_state', port), + ('completed', 'interrupted', 'rejected', 'failed'), port) + admission = _fields(_member(fields, 'input_validation', port), port) + state = _token(_member(admission, 'state', port), + ('accepted', 'rejected', 'not_completed'), port) + reasons = _member(fields, 'reasons', port) + index = _reason_index(reasons, port) + results = _member(fields, 'results', port) + _require(type(results) is tuple) + writer = _JWriter(port, 'markdown') + writer.literal(b'# Source Integrity Audit\n\nReport kind: ') + _ascii(writer, kind) + writer.literal(b'\nProcessing state: ') + _ascii(writer, processing) + writer.literal(b'\nInput state: ') + _ascii(writer, state) + writer.literal(b'\n\n') + for position, name in enumerate(_REPORT_ROOT_FIELDS): + port.charge(1) + writer.literal(b'## ') + _ascii(writer, name) + writer.literal(b'\n\n') + if name != 'results' or not results: + _block(writer, _member(fields, name, port), + last=position == len(_REPORT_ROOT_FIELDS) - 1) + continue + for result in results: + port.charge(1) + row = _fields(result, port) + identifier = _identifier(_member(row, 'id', port), 'SIT-RES-', port) + field = _field_key(_member(row, 'field_key', port), port) + writer.literal(b'### ') + _ascii(writer, identifier) + writer.literal(b': ') + _ascii(writer, field) + writer.literal(b'\n\n') + _block(writer, result) + result_state = _token(_member(row, 'result_state', port), + ('available', 'unavailable', 'not_applicable', 'not_evaluated'), port) + value_kind = _token(_member(row, 'value_kind', port), + ('count', 'fraction', 'completion_interval', 'partition', + 'incidence', 'record_disclosures', 'witness_collection'), port) + if result_state == 'available' and value_kind == 'fraction': + _decimal_display(writer, _member(row, 'value', port)) + writer.literal(b'Reason details\n\n') + details = _reason_details(_member(row, 'reason_refs', port), reasons, index, port) + _block(writer, details) + return writer.finish() diff --git a/tests/contract/test_report_parity.py b/tests/contract/test_report_parity.py new file mode 100644 index 0000000..e6a0d96 --- /dev/null +++ b/tests/contract/test_report_parity.py @@ -0,0 +1,460 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W06 exact Markdown and independent cross-format substantive controls. + +The existing W02 reference bytes remain authoritative. The parser below reads +the prescribed blocks without rendering Markdown or invoking product helpers. +Component fixtures exercise representation only; actual analytical invocation, +both formats and final delivery on one ledger remain W07 work. +""" +import copy +from decimal import Decimal, ROUND_HALF_UP, localcontext +import importlib.util +import json +from pathlib import Path +import re + +import pytest + +from source_integrity_toolkit.contracts import report as contract +from source_integrity_toolkit.reporting.json_report import _encode_json_report +from source_integrity_toolkit.reporting.markdown_report import _encode_markdown_report +from source_integrity_toolkit.runtime.boundary import _analyze_value +from source_integrity_toolkit.runtime.disclosure import _assemble_selected_report + + +ROOT = Path(__file__).resolve().parents[2] +ROOT_ORDER = ( + 'contract_version', 'report_kind', 'report_id', 'run', 'input_identity', + 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', + 'checks', 'observability_domains', 'results', 'findings', 'reasons', + 'release_limits', +) + + +class ComponentPort: + """Finite test-owned port, never an argument accepted by a public API.""" + def __init__(self): + self.units = 0 + self.checks = 0 + self.output = {'json': 0, 'markdown': 0} + + def charge(self, units): + assert type(units) is int and units >= 0 + assert self.units + units <= 10_000_000, 'finite component work limit' + self.units += units + + def check(self): + self.checks += 1 + + def charge_output(self, encoding, count): + assert type(encoding) is str and encoding in self.output + assert type(count) is int and count >= 0 + assert self.output[encoding] + count <= 67_108_864 + self.output[encoding] += count + + +def _freeze_component(value): + """Test construction of frozen representation components, not admission.""" + if type(value) is dict: + return contract._ReportMapping(tuple((k, _freeze_component(v)) for k, v in value.items())) + if type(value) is list: + return tuple(_freeze_component(v) for v in value) + assert value is None or type(value) in (str, int, bool) + return value + + +def _plain(value): + if type(value) is contract._ReportMapping: + return {key: _plain(child) for key, child in value._pairs} + if type(value) is tuple: + return [_plain(child) for child in value] + assert value is None or type(value) in (str, int, bool) + return value + + +def _strict_equal(actual, expected, path='$'): + assert type(actual) is type(expected), path + ': type' + if type(expected) is dict: + assert actual.keys() == expected.keys(), path + ': members' + for key in expected: + _strict_equal(actual[key], expected[key], path + '.' + key) + elif type(expected) is list: + assert len(actual) == len(expected), path + ': length' + for index, value in enumerate(expected): + _strict_equal(actual[index], value, path + '[' + str(index) + ']') + else: + assert actual == expected, path + ': value' + + +def _pairs(pairs): + result = {} + for key, value in pairs: + assert key not in result, 'duplicate JSON member' + result[key] = value + return result + + +def _decode(raw): + def bad_constant(value): + raise AssertionError('nonstandard JSON constant') + return json.loads(raw, object_pairs_hook=_pairs, parse_constant=bad_constant) + + +def _pretty(value): + """Independent stdlib formatting plus the frozen scalar escape refinements. + + Match complete JSON escapes so a literal backslash followed by n is never + mistaken for a newline escape. This helper never calls product encoders. + """ + raw = json.dumps(value, ensure_ascii=False, sort_keys=True, indent=2, + separators=(',', ': '), allow_nan=False) + short = {'\\b': '\\u0008', '\\f': '\\u000c', '\\n': '\\u000a', + '\\r': '\\u000d', '\\t': '\\u0009'} + def replacement(match): + token = match.group() + if token.startswith('\\'): + return short.get(token, token) + return '\\u' + format(ord(token), '04x') + return re.sub(r'\\.|[\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]', + replacement, raw) + + +def _decimal_display(numerator, denominator): + """Independent high-precision decimal oracle, not product integer code.""" + with localcontext() as context: + context.prec = 80 + value = (Decimal(numerator) / Decimal(denominator)).quantize( + Decimal('0.000001'), rounding=ROUND_HALF_UP) + return format(value, '.6f') + + +def _parse_markdown(raw, expected): + """Independently consume every fixed section, block and explanatory line.""" + assert type(raw) is bytes + text = raw.decode('utf-8') + assert not text.startswith('\ufeff') + assert text.endswith('\n') and not text.endswith('\n\n') and '\r' not in text + prefix = ('# Source Integrity Audit\n\nReport kind: ' + expected['report_kind'] + + '\nProcessing state: ' + expected['run']['processing_state'] + + '\nInput state: ' + expected['input_validation']['state'] + '\n\n') + assert text.startswith(prefix), 'fixed report header' + position = len(prefix) + + def literal(value): + nonlocal position + assert text.startswith(value, position), 'fixed layout at ' + str(position) + position += len(value) + + def block(): + nonlocal position + end = text.find('\n', position) + assert end >= 0 + opening = text[position:end] + assert re.fullmatch(r'`{3,}json', opening), 'JSON fence' + fence = opening[:-4] + position = end + 1 + end = text.find('\n' + fence + '\n', position) + assert end >= 0, 'closed fence' + body = text[position:end] + longest = max((len(m.group()) for m in re.finditer(r'`+', body)), default=0) + assert len(fence) == max(3, longest + 1), 'minimal safe fence' + value = _decode(body) + assert body == _pretty(value), 'exact pretty J formatting/scalars' + position = end + len(fence) + 2 + return value + + document = {} + reasons = {row['id']: row for row in expected['reasons']} + for index, name in enumerate(ROOT_ORDER): + literal('## ' + name + '\n\n') + if name != 'results' or not expected['results']: + document[name] = block() + if index != len(ROOT_ORDER) - 1: + literal('\n') + continue + rows = [] + for row in expected['results']: + literal('### ' + row['id'] + ': ' + row['field_key'] + '\n\n') + actual = block() + rows.append(actual) + literal('\n') + if row['result_state'] == 'available' and row['value_kind'] == 'fraction': + fraction = row['value'] + n, d = fraction['numerator'], fraction['denominator'] + literal('Decimal display: ' + str(n) + '/' + str(d) + ' = ' + + _decimal_display(n, d) + '\n\n') + literal('Reason details\n\n') + assert all(identifier in reasons for identifier in row['reason_refs']) + _strict_equal(block(), [reason for reason in expected['reasons'] + if reason['id'] in row['reason_refs']]) + literal('\n') + document[name] = rows + assert position == len(text), 'trailing or omitted Markdown content' + _strict_equal(document, expected) + return document + + +def _assert_parity(json_raw, markdown_raw, expected): + assert type(json_raw) is bytes and json_raw.endswith(b'\n') + json_document = _decode(json_raw) + markdown_document = _parse_markdown(markdown_raw, expected) + _strict_equal(json_document, expected) + _strict_equal(markdown_document, json_document) + + +def _reference_document(): + return json.loads((ROOT / 'tests/golden/phase4_report_expectations.json').read_bytes())['reference_document'] + + +def _reference_json(): + return (ROOT / 'tests/golden/phase4_reference_report.json').read_bytes() + + +def _reference_markdown(): + return (ROOT / 'tests/golden/phase4_reference_report.md').read_bytes() + + +@pytest.fixture(scope='module') +def actual_reference(): + fixture = json.loads((ROOT / 'tests/fixtures/micro/phase4_public_cases.json').read_bytes()) + assert fixture['cases'][0]['id'] == 'P4-REFERENCE-ONE-ORIGIN' + dossier = fixture['cases'][0]['dossier'] + original = copy.deepcopy(dossier) + outcome = _analyze_value(dossier) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' and len(outcome.results) == 78 + selection_port = ComponentPort() + frozen = _assemble_selected_report(outcome, selection_port) + expected = _reference_document() + _strict_equal(_plain(frozen), expected) + # W06 exercises the renderer component on the actual selected document. + # W07 owns the future single-invocation composition with earlier analysis. + rendering_port = ComponentPort() + json_raw = _encode_json_report(frozen, rendering_port) + markdown_raw = _encode_markdown_report(frozen, rendering_port) + assert dossier == original + assert rendering_port.output == {'json': len(json_raw), 'markdown': len(markdown_raw)} + assert 0 < rendering_port.units <= 10_000_000 + return frozen, expected, json_raw, markdown_raw, rendering_port.units + + +def test_real_selected_document_matches_both_independent_exact_byte_references(actual_reference): + _, expected, json_raw, markdown_raw, _ = actual_reference + assert json_raw == _reference_json() + assert markdown_raw == _reference_markdown() + assert len(json_raw) == 421307 and len(markdown_raw) == 564555 + _assert_parity(json_raw, markdown_raw, expected) + + +def test_all_root_members_complete_results_reasons_and_native_qualifications_survive(actual_reference): + frozen, expected, json_raw, markdown_raw, units = actual_reference + parsed = _parse_markdown(markdown_raw, expected) + assert tuple(parsed) == ROOT_ORDER and len(parsed['results']) == 78 + assert len(parsed['checks']) == 671 and len(parsed['reasons']) == 38 + assert len(parsed['findings']) == 22 and len(parsed['observability_domains']) == 5 + assert {row['result_state'] for row in parsed['results']} == { + 'available', 'unavailable', 'not_applicable'} + available_fraction = [row for row in expected['results'] + if row['result_state'] == 'available' and row['value_kind'] == 'fraction'] + assert markdown_raw.count(b'Decimal display: ') == len(available_fraction) + assert markdown_raw.count(b'\nReason details\n') == len(expected['results']) + assert parsed['run']['started_at']['state'] == 'unknown' + assert parsed['run']['started_at']['reason'] == 'not_recorded_by_SIT-RP-0.1' + _strict_equal(_plain(frozen), expected) + assert units < 10_000_000 + + +def _diagnostic_document(kind, state, input_state): + # Reuse the existing independently authored valid representation fixture. + spec = importlib.util.spec_from_file_location('_w06_contract_fixture', + ROOT / 'tests/contract/test_report_contract.py') + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module.diagnostic_document(kind, state, input_state) + + +@pytest.mark.parametrize(('kind', 'state', 'input_state'), ( + ('validation_diagnostics', 'rejected', 'rejected'), + ('processing_diagnostics', 'interrupted', 'not_completed'), + ('processing_diagnostics', 'failed', 'accepted'), + ('processing_diagnostics', 'failed', 'not_completed'), +)) +def test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state(kind, state, input_state): + expected = _diagnostic_document(kind, state, input_state) + frozen = contract._freeze_report_document(expected, ComponentPort()) + port = ComponentPort() + json_raw = _encode_json_report(frozen, port) + raw = _encode_markdown_report(frozen, port) + _assert_parity(json_raw, raw, expected) + assert b'## results\n\n```json\n[]\n```\n\n' in raw + assert b'### SIT-RES-' not in raw and b'Decimal display:' not in raw + assert b'\nReason details\n' not in raw + assert port.output == {'json': len(json_raw), 'markdown': len(raw)} + + +def _render_component(expected): + frozen = _freeze_component(expected) + port = ComponentPort() + json_raw = _encode_json_report(frozen, port) + markdown_raw = _encode_markdown_report(frozen, port) + _assert_parity(json_raw, markdown_raw, expected) + return json_raw, markdown_raw + + +@pytest.mark.parametrize(('numerator', 'denominator', 'decimal'), ( + (0, 36, '0.000000'), (26, 36, '0.722222'), (1, 128, '0.007813'), + (1, 2000000, '0.000001'), (1999999, 2000000, '1.000000'), + (9007199254740990, 9007199254740991, '1.000000'), +)) +def test_fraction_display_uses_half_up_six_places_and_keeps_original_components(numerator, denominator, decimal): + expected = _reference_document() + row = next(x for x in expected['results'] if x['field_key'] == 'documentary_origin_resolution_fraction') + row['value'] = {'numerator': numerator, 'denominator': denominator} + # The changed value is a trusted representation component, not a new + # analytical result for the reference dossier or a replacement golden. + json_raw, raw = _render_component(expected) + line = 'Decimal display: ' + str(numerator) + '/' + str(denominator) + ' = ' + decimal + '\n' + assert line.encode() in raw + decoded = _decode(json_raw) + actual = next(x for x in decoded['results'] if x['id'] == row['id']) + assert actual['value'] == {'numerator': numerator, 'denominator': denominator} + assert 'display_decimal' not in actual + + +@pytest.mark.parametrize(('execution_state', 'result_state'), ( + ('completed', 'unavailable'), ('not_performed', 'not_evaluated'), + ('interrupted', 'not_evaluated'), ('failed', 'not_evaluated'), +)) +def test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal(execution_state, result_state): + expected = _reference_document() + row = next(x for x in expected['results'] if x['field_key'] == 'documentary_origin_resolution_fraction') + row.update(execution_state=execution_state, result_state=result_state, + value=None, reason_refs=[expected['reasons'][0]['id']]) + _, raw = _render_component(expected) + section = raw.split(('### ' + row['id'] + ': ' + row['field_key'] + '\n').encode(), 1)[1] + section = section.split(b'\n### ', 1)[0] + assert b'Decimal display:' not in section + assert b'"value": null' in section + assert expected['reasons'][0]['detail'].encode() in section + + +def test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line(): + expected = _reference_document() + row = next(x for x in expected['results'] if x['field_key'] == 'inherited_only_completion_interval') + labels = ('direct_origin_link_only', 'inherited_only_at_evidence_layer', + 'mixed_direct_and_inherited', 'unresolved_at_evidence_layer') + member = lambda identifier: {'collection': 'records', 'identifier': identifier, 'selector': None} + interval = {'lower': {'numerator': 1, 'denominator': 3}, + 'upper': {'numerator': 2, 'denominator': 3}, + 'interval_kind': 'finite_record_completion', + 'population_ref': row['population_refs'][0], + 'partition': {'population_ref': row['population_refs'][0], + 'categories': [ + {'label': label, 'count': int(index != 2), + 'member_refs': [member('P4-REP-' + str(index))] if index != 2 else []} + for index, label in enumerate(labels)], 'total': 3}} + contract._validate_report_component(interval, 'CompletionInterval', ComponentPort()) + row.update(result_state='available', value=interval, reason_refs=[]) + _, raw = _render_component(expected) + section = raw.split(('### ' + row['id'] + ': ' + row['field_key'] + '\n').encode(), 1)[1] + section = section.split(b'\n### ', 1)[0] + assert b'Decimal display:' not in section and b'"denominator": 3' in section + + +def test_reason_details_follow_canonical_reason_order_without_reordering_result_refs(): + expected = _reference_document() + row = next(x for x in expected['results'] if len(x['reason_refs']) >= 2) + original = list(row['reason_refs']) + row['reason_refs'].reverse() + assert row['reason_refs'] != original + json_raw, raw = _render_component(expected) + parsed_json = _decode(json_raw) + actual = next(x for x in parsed_json['results'] if x['id'] == row['id']) + assert actual['reason_refs'] == row['reason_refs'] + # _parse_markdown independently selects the linked Reasons in root order, + # while the complete Result body retains its supplied reference array. + _parse_markdown(raw, expected) + + +def _replace_block_after(raw, marker, value): + """Create one deliberate omission mutant from independently expected bytes.""" + text = raw.decode() + start = text.index(marker) + len(marker) + end = text.index('\n', start) + opening = text[start:end] + assert re.fullmatch(r'`{3,}json', opening) + fence = opening[:-4] + close = text.index('\n' + fence + '\n', end + 1) + body = _pretty(value) + longest = max((len(m.group()) for m in re.finditer(r'`+', body)), default=0) + new_fence = '`' * max(3, longest + 1) + replacement = new_fence + 'json\n' + body + '\n' + new_fence + return (text[:start] + replacement + text[close + 1 + len(fence):]).encode() + + +@pytest.mark.parametrize('omission', ('unknown_time', 'root_reason', 'reason_detail', + 'denominator', 'qualification')) +def test_independent_parser_rejects_each_substantive_omission(omission): + expected = _reference_document() + raw = _reference_markdown() + if omission == 'unknown_time': + value = copy.deepcopy(expected['run']); del value['started_at']['reason'] + mutant = _replace_block_after(raw, '## run\n\n', value) + elif omission == 'root_reason': + mutant = _replace_block_after(raw, '## reasons\n\n', expected['reasons'][1:]) + elif omission == 'reason_detail': + row = next(x for x in expected['results'] if x['reason_refs']) + marker = '### ' + row['id'] + ': ' + row['field_key'] + '\n\n' + start = raw.index(marker.encode()) + reason_start = raw.index(b'Reason details\n\n', start) + mutant = raw[:reason_start] + _replace_block_after(raw[reason_start:], 'Reason details\n\n', []) + elif omission == 'denominator': + row = copy.deepcopy(next(x for x in expected['results'] + if x['result_state'] == 'available' and x['value_kind'] == 'fraction')) + del row['value']['denominator'] + mutant = _replace_block_after(raw, '### ' + row['id'] + ': ' + row['field_key'] + '\n\n', row) + else: + value = copy.deepcopy(expected['input_identity']); value['qualifications'] = [] + mutant = _replace_block_after(raw, '## input_identity\n\n', value) + assert mutant != raw + with pytest.raises(AssertionError): + _assert_parity(_reference_json(), mutant, expected) + + +def test_counterevidence_is_retained_and_independent_parser_rejects_its_omission(): + expected = _reference_document() + counter = {'collection': 'assertions', 'identifier': 'P4-REL', 'selector': None} + expected['findings'][0]['contrary_input_refs'] = [counter] + # Selected representation component only; no claim that the original + # analytical fixture classified this specific source as counterevidence. + json_raw, raw = _render_component(expected) + value = copy.deepcopy(expected['findings']) + value[0]['contrary_input_refs'] = [] + mutant = _replace_block_after(raw, '## findings\n\n', value) + with pytest.raises(AssertionError): + _assert_parity(json_raw, mutant, expected) + + +@pytest.mark.parametrize('change', ('indent', 'double_final_lf', 'missing_root', + 'decimal_rounding', 'decimal_replaces_fraction', 'extra_text')) +def test_exact_layout_oracle_rejects_framing_and_presentation_mutants(change): + expected = _reference_document(); raw = _reference_markdown() + if change == 'indent': + mutant = raw.replace(b' "completed_diagnostic_ids"', b' "completed_diagnostic_ids"', 1) + elif change == 'double_final_lf': + mutant = raw + b'\n' + elif change == 'missing_root': + mutant = raw.replace(b'## release_limits\n\n', b'', 1) + elif change == 'decimal_rounding': + mutant = raw.replace(b'Decimal display: 1/1 = 1.000000', b'Decimal display: 1/1 = 0.999999', 1) + elif change == 'decimal_replaces_fraction': + row = copy.deepcopy(next(x for x in expected['results'] + if x['result_state'] == 'available' and x['value_kind'] == 'fraction')) + row['value'] = 1 + mutant = _replace_block_after(raw, '### ' + row['id'] + ': ' + row['field_key'] + '\n\n', row) + else: + mutant = raw + b'Unrequested footer\n' + assert mutant != raw + with pytest.raises(AssertionError): + _parse_markdown(mutant, expected) diff --git a/tests/security/test_rendering.py b/tests/security/test_rendering.py new file mode 100644 index 0000000..a98633b --- /dev/null +++ b/tests/security/test_rendering.py @@ -0,0 +1,206 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W06 literal-data rendering controls over approved frozen report values. + +These are renderer component tests. Contract-valid canary documents are frozen +before rendering; no public audit or automatic disclosure/publication safety +claim is made. The parser is test-owned and independent of product formatting. +""" +import copy +import importlib.util +import json +from pathlib import Path +import re + +import pytest + +from source_integrity_toolkit.contracts import report as contract +from source_integrity_toolkit.reporting.json_report import _encode_json_report +from source_integrity_toolkit.reporting.markdown_report import _encode_markdown_report + + +ROOT = Path(__file__).resolve().parents[2] +_spec = importlib.util.spec_from_file_location( + 'p4_w06_rendering_parity_helpers', ROOT / 'tests/contract/test_report_parity.py') +h = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(h) + + +def _reference(): + return json.loads((ROOT / 'tests/golden/phase4_reference_report.json').read_bytes()) + + +def _diagnostic(payload): + """Small valid execution envelope with literal retained text canaries.""" + document = _reference() + document['report_kind'] = 'processing_diagnostics' + document['run']['processing_state'] = 'failed' + document['run']['completed_diagnostic_ids'] = [] + document['run']['diagnostics'] = [{ + 'code': 'execution_failed', 'location': None, + 'safe_message': 'Processing did not complete.', + 'qualifications': ['Synthetic retained qualification: ' + payload], + }] + document['input_identity']['qualifications'].append(payload) + for name in ('scopes', 'populations', 'basis_index', 'capabilities', 'checks', + 'observability_domains', 'results', 'findings'): + document[name] = [] + document['reasons'] = [{ + 'id': 'SIT-RSN-000001', 'classification': 'execution', + 'code': 'execution_failed', 'scope_ref': None, + 'affected_result_refs': [], 'input_refs': [], 'detail': payload, + }] + return document + + +def _strings(value): + if type(value) is str: + yield value + elif type(value) is dict: + for child in value.values(): + yield from _strings(child) + elif type(value) is list: + for child in value: + yield from _strings(child) + + +def _outside_and_blocks(raw): + """Identify literal fenced data independently, without Markdown execution.""" + text = raw.decode('utf-8') + lines = text.splitlines(keepends=True) + outside, blocks = [], [] + position = 0 + while position < len(lines): + opening = re.fullmatch(r'(`{3,})json\n', lines[position]) + if opening is None: + outside.append(lines[position]) + position += 1 + continue + fence = opening[1] + position += 1 + body_lines = [] + while position < len(lines) and lines[position] != fence + '\n': + body_lines.append(lines[position]) + position += 1 + assert position < len(lines), 'unclosed data fence' + body = ''.join(body_lines) + assert body.endswith('\n') + longest = max((len(run) for run in re.findall(r'`+', body)), default=0) + assert len(fence) == max(3, longest + 1), 'minimal safe fence' + blocks.append((len(fence), body, json.loads(body))) + position += 1 + assert blocks + return ''.join(outside), blocks + + +def _render_valid(document): + original = copy.deepcopy(document) + frozen = contract._freeze_report_document(document, h.ComponentPort()) + port = h.ComponentPort() + markdown = _encode_markdown_report(frozen, port) + assert type(markdown) is bytes + assert h._parse_markdown(markdown, original) == original + assert document == original + outside, blocks = _outside_and_blocks(markdown) + return frozen, markdown, outside, blocks + + +@pytest.mark.parametrize(('name', 'payload'), ( + ('html', 'CANARY_HTML bold'), + ('image', 'CANARY_IMAGE ![literal](https://example.invalid/pixel.png) '), + ('autolink', 'CANARY_LINK '), + ('local_link', 'CANARY_FILE [literal](file:///private/canary.txt) [js](javascript:alert(1))'), + ('headings', 'CANARY_HEADING\n# Not a heading\n## Not a root\n### Not a Result'), + ('table', 'CANARY_TABLE\n| source | value |\n|---|---|\n> blockquote\n- list'), + ('comment', 'CANARY_COMMENT '), + ('fence', 'CANARY_FENCE\n```\n![escaped](https://example.invalid/image)\n```json\n'), +)) +def test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values(name, payload): + document = _diagnostic(payload) + frozen, markdown, outside, blocks = _render_valid(document) + assert payload in tuple(_strings(h._parse_markdown(markdown, document))) + assert any(payload in tuple(_strings(value)) for _, _, value in blocks) + assert payload.split('\n', 1)[0] not in outside + for marker in ('CANARY_', '= 3 # Result, its linked Reason details and root Reasons. + assert all(width == 8 for width, _ in matching) + assert 'RESULT_CANARY' not in outside and ' allowed + assert counters(owner) == (0, OUTPUT_LIMIT - allowed + accepted) + else: + actual = markdown_report._encode_markdown_report(frozen, port) + assert actual == expected + assert counters(owner) == (0, OUTPUT_LIMIT - extra) + assert sum(count for _, count in port.accepted) == len(expected) + assert all(name == 'markdown' for name, _ in port.attempted) + + +def test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds(clock, small_markdown_document): + frozen, expected = small_markdown_document + assert b'````json\n' in expected and b'\n "code": ' in expected + owner, _, real = encoding_context() + real.charge_output('markdown', OUTPUT_LIMIT - len(expected)) + port = ObservedPort(real) + actual = markdown_report._encode_markdown_report(frozen, port) + assert actual == expected and counters(owner) == (0, OUTPUT_LIMIT) + assert sum(count for _, count in port.accepted) == len(expected) + with pytest.raises(_ReportAborted) as stopped: + real.charge_output('markdown', 1) + assert stopped.value.limit_id == 'WU9-L14' + + +@pytest.mark.parametrize('boundary', ('work', 'time', 'failure', 'cancel')) +def test_markdown_mid_output_stop_returns_no_partial_bytes(clock, small_markdown_document, boundary): + frozen, expected = small_markdown_document + owner, _, real = encoding_context() + class StopDuringMarkdown(ObservedPort): + def charge_output(self, encoding, count): + super().charge_output(encoding, count) + if len(self.accepted) == 5: + if boundary == 'work': + self.delegate.charge(owner.remaining) + elif boundary == 'time': + clock[0] += 60_000_000_001 + elif boundary == 'failure': + owner.fail() + else: + owner.cancel() + port = StopDuringMarkdown(real) + returned = [] + stopped_type = _AuditCancelled if boundary == 'cancel' else _AnalysisAborted + with pytest.raises(stopped_type) as stopped: + returned.append(markdown_report._encode_markdown_report(frozen, port)) + assert returned == [] and len(port.accepted) == 5 + charged = sum(count for _, count in port.accepted) + assert 0 < charged < len(expected) + assert counters(owner) == (0, charged) + public = diagnostics._report_abort(stopped.value) + assert public.input_validation_state == 'accepted' and public.publication_state == 'not_published' + assert type(public) is (AuditCancelled if boundary == 'cancel' else AuditAbort) + if boundary != 'cancel': + assert public.reason_code == ('execution_failed' if boundary == 'failure' else 'resource_limit_reached') + for name in ('json', 'markdown'): + with pytest.raises(stopped_type) as repeated: + port.charge_output(name, 0) + assert repeated.value is stopped.value + + +def test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts(clock, small_markdown_document): + frozen, expected_markdown = small_markdown_document + owner, finalizer, port = encoding_context() + start, initial_work = owner._start, owner.used + json_bytes = json_report._encode_json_report(frozen, port) + after_json = owner.used + assert initial_work < after_json and counters(owner) == (len(json_bytes), 0) + markdown_bytes = markdown_report._encode_markdown_report(frozen, port) + assert markdown_bytes == expected_markdown + assert owner._start == start and owner.used > after_json + assert counters(owner) == (len(json_bytes), len(expected_markdown)) + assert owner.remaining == 10_000_000 - owner.used + finalizer.check() + with pytest.raises(TypeError, match='AuditReport is delivered only by audit_bundle'): + report_contract.AuditReport() + + +def test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair(clock, small_markdown_document): + frozen, expected_markdown = small_markdown_document + owner, _, port = encoding_context() + json_bytes = json_report._encode_json_report(frozen, port) + assert json_bytes.endswith(b'\n') + port.charge_output('markdown', OUTPUT_LIMIT - len(expected_markdown) + 1) + returned_pairs = [] + with pytest.raises(_ReportAborted) as stopped: + markdown_bytes = markdown_report._encode_markdown_report(frozen, port) + returned_pairs.append((json_bytes, markdown_bytes)) + assert returned_pairs == [] and counters(owner)[0] == len(json_bytes) + assert stopped.value.limit_id == 'WU9-L14' + public = diagnostics._report_abort(stopped.value) + assert public.input_validation_state == 'accepted' and public.publication_state == 'not_published' + assert not hasattr(public, 'report') and not hasattr(public, 'prefix') From a996abcdbf606953c7a8f78565b632cd6bfc72f9 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 21:05:22 -0700 Subject: [PATCH 14/21] Preserve completed empty search traces in formal reports SIT-Phase-Unit: P4-W03 --- phase4/implementation_evidence.json | 6880 +++++++++-------- .../reporting/assemble.py | 29 +- tests/contract/test_report_assembly.py | 75 + 3 files changed, 3561 insertions(+), 3423 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 3703c79..21adb6b 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,417 +1,56 @@ { "phase": "P4", - "current_unit": "P4-W06", - "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", - "owner_authorization": "User explicitly requested W06 continuation after W05 implementation. W06 only; required existing-unit verification repair remains separately W01-owned.", - "previous_checkpoint": { - "unit": "P4-W05", - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "tree": "60327a132ca62f444a132f42542fdbcb411f5357", - "hosted_failure": { - "run_id": 40192106767, - "run_attempt": 1, - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "status": "completed_failure", - "profiles": [ - { - "artifact_id": 12599033843, - "name": "phase3-windows-2025-py3.13-40192106767-1", - "sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", - "zip_bytes": 361675, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "2167.529", - "timestamp": "2026-10-25T12:14:11.583388+00:00", - "hostname": "runnervmdaln5" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)" - }, - { - "artifact_id": 12598913258, - "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", - "sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", - "zip_bytes": 354396, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "1707.237", - "timestamp": "2026-10-25T12:13:29.022234+00:00", - "hostname": "runnervmtai0g" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)" - }, - { - "artifact_id": 12598889077, - "name": "phase3-windows-2025-py3.11-40192106767-1", - "sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", - "zip_bytes": 361813, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "2216.425", - "timestamp": "2026-10-25T12:14:13.684890+00:00", - "hostname": "runnervmdaln5" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)" - }, - { - "artifact_id": 12598853369, - "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", - "sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", - "zip_bytes": 354373, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "1530.030", - "timestamp": "2026-10-25T12:13:22.517483+00:00", - "hostname": "runnervmtai0g" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)" - } - ], - "cause": "Two V02 probes still treated reporting/json_report.py as an inert slot after W05 activated it. The guard correctly accepted the active implementation; the stale fixture expectations failed.", - "failure_identities": [ - "test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]" - ], - "scope": "All4 original48-file artifacts retained with verifiedZIPdigests; all9874 ordered collection identities and228sourcehashes agree. Eachprofile2failed/9872passed/533successfulsubtests, noerrors/skips/timeouts. This is failure diagnosis, not accepted hosted success." - } - }, - "inherited_W01_repair": { - "owner_unit": "P4-W01", - "activation_stage": 5, - "local_commit": "3525d294ac179e38948346188bd5e633a06b7a08", - "tree": "e9b8ac43fc5b1c167a82e39bb7b488e8eab6b046", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "change": "Only two inert-slot fixture path literals changed to permanently protected io/output_directory.py; original213orderedcases and assertions retained. No product, guard, workflow, scope or budget changes.", - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-002.xml" - ], - "head": "3525d294ac179e38948346188bd5e633a06b7a08", - "started_at_utc": "2026-10-25T16:34:38.526038+00:00", - "elapsed_seconds": 187.9850304490028, - "exit_code": 0, - "timed_out": false, - "incomplete": false, - "source_count": 228, - "source_unchanged": true, - "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." - }, - "junit": { - "summary": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "213", - "time": "187.770", - "timestamp": "2026-10-25T10:34:38.664925-06:00", - "hostname": "d6921570ec2c" - }, - "by_classname": { - "tests.contract.test_verification_boundary": 213 - } - }, - "source_files": 228, - "source_bytes_unchanged": true, - "initial_attempt": { - "evidence": "p4w06-w01-repair/focused-001.*", - "result": "184passed and29setup errors; current_unit_path_not_allowed correctly rejected uncommitted W01 edits on a W05-owned checkout. No guard override; repair committed under realW01ownership before successful run002." - } - }, + "current_unit": "P4-W03", + "activation_stage": 6, + "status": "W03 projection repair implemented; clean committed checkpoint validation pending", + "owner_authorization": "Approved Phase4 plan permits necessary repairs under original owner purpose. W07 continuation uncovered an existing W03 empty-trace projection defect. This commit is owned by W03 and retains W06 activation.", "changes": [ - { - "paths": [ - "P05", - "P07" - ], - "behavior": "Additive charged pretty-J and exact dynamic fence scan; complete fixed16-root Markdown layout, validated tool-controlled headings, complete Result and canonical Reason details, original fractions plus six-place half-up display, one final LF. Output directly shares one counted writer; no intermediate body outputcounter/reset." - }, - { - "paths": [ - "N05", - "N09", - "N10" - ], - "behavior": "Independent exact JSON/Markdown references and parse equality, substantive omission mutants, controls for source markup/backticks/controls/bidi and real fixedcounter framing/LF/stops. Old38 N10orderedcases and W05encoder functions remain." - } + "Preserve a strictly empty completed typed-search trace in a scoped_no_witness Finding when no private Finding exists to carry it. Keep the original complete_trace kind, all empty arrays, null target and zero member_count.", + "All nonempty traces retain their original carrier requirements. Original analytical modules, schema, goldens, budgets, public APIs, W06 encoders and verification controls remain unchanged.", + "Add literal empty-seed acquisition regression and thirteen nonempty-field guards. Existing N02 tests unchanged." ], - "changed_scope": { - "unit": "P4-W06", - "paths": [ - "src/source_integrity_toolkit/reporting/escaping.py", - "src/source_integrity_toolkit/reporting/markdown_report.py", - "tests/contract/test_report_parity.py", - "tests/security/test_rendering.py", - "tests/security/test_report_resource_limits.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "approved_ids": [ - "P05", - "P07", - "N05", - "N09", - "N10", - "D04", - "D05" - ], - "unchanged": "Plan, contract/schema, JSON renderer and prior escaping methods, independent goldens/fixtures, private analysis, public APIs, runtime boundary/resources, budgets, workflow/pins, version and module inventory. V02 changed only in inheritedW01repair." + "changed_scope": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "phase4/implementation_evidence.json" + ], + "source_basis": [ + "OBSERVABILITY_AND_REPORTING.md section10.7: empty seed inventory is zero; HHI and seed fractions unavailable for zero denominator.", + "OBSERVABILITY_AND_REPORTING.md section18.2: scoped_no_witness means a completed typed search found no eligible witness at its declared scope; no threat-family pass.", + "PHASE_4_PLAN.md section4.2 and W03: preserve all retained witness content in formal report homes without enhancing analytical conclusions." + ], + "diagnosis": { + "earlier_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "cause": "_assemble_witnesses delegated an empty complete_trace to _trace_home, which required an existing same-scope private Finding. Empty-seed completed analysis has no such private carrier.", + "w07_probe": "The same-invocation acquisition case reached real analysis success at 1899416 work units with17Findings/14WitnessRecords, then _trace_home raised _ReportContractError at2883337. W07 L13 reconciliation had not started.", + "scope": "A completed _reachable with empty starts produced an owner-retained complete_trace containing zero members, no target and all11member arrays empty." }, "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_parity.py", - "tests/security/test_rendering.py", - "tests/security/test_report_resource_limits.py", - "tests/contract/test_json_report.py", - "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-targeted-001.xml" - ], - "started_at_utc": "2026-10-25T16:36:25.533181+00:00", - "elapsed_seconds": 35.059611011995, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "base_head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "source_files": 230, - "source_bytes_unchanged": true, - "scope": "Five named W06 Markdown/parity/rendering/output and prior JSON/oracle files; not a full suite or W07 public invocation." - }, - "junit": { - "summary": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "341", - "time": "34.750", - "timestamp": "2026-10-25T10:36:25.718461-06:00", - "hostname": "d6921570ec2c" - }, - "by_classname": { - "tests.contract.test_report_parity": 30, - "tests.security.test_rendering": 26, - "tests.security.test_report_resource_limits": 48, - "tests.contract.test_json_report": 148, - "tests.contract.test_report_test_oracles": 89 - } - }, - "actual_test_nodes": { - "tests/contract/test_report_parity.py": [ - "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", - "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", - "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", - "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", - "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", - "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", - "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", - "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", - "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", - "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants" - ], - "tests/security/test_rendering.py": [ - "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", - "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", - "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", - "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", - "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", - "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" - ], - "tests/security/test_report_resource_limits.py": [ - "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", - "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", - "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", - "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", - "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", - "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", - "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", - "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", - "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", - "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", - "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", - "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", - "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", - "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", - "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", - "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", - "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", - "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", - "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" - ] - }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/escaping.py": { - "sha256": "c7219bd3e6d4b299574164522396065215933d140c3643a822c50df5bf1f018e", - "bytes": 17438 - }, - "src/source_integrity_toolkit/reporting/markdown_report.py": { - "sha256": "ae8eaa6ee6d1addc0df5ba294743a53703cbbd1014fc6f41e2ea759e48e170bc", - "bytes": 9019 - }, - "tests/contract/test_report_parity.py": { - "sha256": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", - "bytes": 21344 - }, - "tests/security/test_rendering.py": { - "sha256": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", - "bytes": 9553 - }, - "tests/security/test_report_resource_limits.py": { - "sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", - "bytes": 24878 - } - }, - "dual_renderer_probe": { - "exact_reference": true, - "markdown_bytes": 564555, - "json_bytes": 421307, - "markdown_sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", - "json_units": 3040258, - "markdown_units": 3982007, - "combined_units": 7022265, - "ledger_units": 7023292, - "output_counters": [ - 421307, - 564555 - ], - "elapsed_seconds": 2.2758739560013055, - "scope": "One real finalization ledger for both renderers; frozen input constructed separately; no W07 analysis/composition claim." - }, - "independent_review": { - "file": "p4w06-independent-review.json", - "sha256": "7004d007ece6a09ed8465107eed957e5f01ddc4af0aaffc70e595583867d0990", - "status": "passed_no_blocking_findings" - }, - "post_test_inheritance": { - "commit": "3525d294ac179e38948346188bd5e633a06b7a08", - "paths": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py" - ], - "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." - }, - "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." - }, - "package_boundary": { - "activation_stage": 6, - "checked_modules": 48, - "entry_byte_protected_modules": 39, - "issues": [], - "ok": true, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "reporting/escaping.py", - "reporting/json_report.py", - "reporting/markdown_report.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 14, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + "status": "pending_after_real_W03_commit", + "planned_scope": "Complete tests/contract/test_report_assembly.py on this clean checkpoint; source hashes before/after, logs, JUnit and exit receipt retained externally.", + "no_claim": "No new full suite, hosted CI or W07/public delivery success claimed." }, - "failures_and_repairs": [ - { - "evidence": "p4w06-rendering-001.*", - "result": "16passed/10failed new security assertions; exact output/parsing already correct.", - "cause": "Test expected3 canary-containing blocks but counted only whole-string matches and missed a prefixed diagnostic qualification.", - "repair": "Count retained canary substrings; no product/golden change. CorrectedN09has26passes and finalunified341passes." - }, - { - "evidence": "p4w06-w01-repair/focused-001.*", - "result": "184passed/29setup errors due to actualowner scope before W01commit; successfulcleanowner213case rerun retained separately." - } - ], - "remaining": [ - "W07 must prove the original same invocation ledger across capture, analysis, disclosure, assembly, both encodings and parity. The7022265-unit dual-renderer probe starts from a separately frozen document; it is not complete pipeline feasibility proof.", - "All228 public pipeline/rendering obligation rows remain pending; public API activation and complete AuditReport delivery remain later units.", - "File/native/CLI publication, merge and release remain deferred.", - "New hosted outcome is unknown in this pre-publication record and will be reflected in PR/external evidence." - ], - "historical_records": { - "preceding_W01_repair_record": { - "phase": "P4", - "current_unit": "P4-W01", - "delivery_unit": "P4-W05", - "activation_stage": 5, - "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", - "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", - "previous_checkpoint": { - "unit": "P4-W05", - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "previous_checkpoint": { + "phase": "P4", + "current_unit": "P4-W06", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W06 continuation after W05 implementation. W06 only; required existing-unit verification repair remains separately W01-owned.", + "previous_checkpoint": { + "unit": "P4-W05", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "hosted_failure": { "run_id": 40192106767, "run_attempt": 1, - "hosted_result": "completed/failure", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "status": "completed_failure", "profiles": [ { "artifact_id": 12599033843, "name": "phase3-windows-2025-py3.13-40192106767-1", + "sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "zip_bytes": 361675, "raw_files": 48, - "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", "junit": { "name": "pytest", "errors": "0", @@ -422,20 +61,14 @@ "timestamp": "2026-10-25T12:14:11.583388+00:00", "hostname": "runnervmdaln5" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)" }, { "artifact_id": 12598913258, "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "zip_bytes": 354396, "raw_files": 48, - "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", "junit": { "name": "pytest", "errors": "0", @@ -446,20 +79,14 @@ "timestamp": "2026-10-25T12:13:29.022234+00:00", "hostname": "runnervmtai0g" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)" }, { "artifact_id": 12598889077, "name": "phase3-windows-2025-py3.11-40192106767-1", + "sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "zip_bytes": 361813, "raw_files": 48, - "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", "junit": { "name": "pytest", "errors": "0", @@ -470,20 +97,14 @@ "timestamp": "2026-10-25T12:14:13.684890+00:00", "hostname": "runnervmdaln5" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)" }, { "artifact_id": 12598853369, "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "zip_bytes": 354373, "raw_files": 48, - "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", "junit": { "name": "pytest", "errors": "0", @@ -494,706 +115,442 @@ "timestamp": "2026-10-25T12:13:22.517483+00:00", "hostname": "runnervmtai0g" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)" } ], - "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + "cause": "Two V02 probes still treated reporting/json_report.py as an inert slot after W05 activated it. The guard correctly accepted the active implementation; the stale fixture expectations failed.", + "failure_identities": [ + "test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]" + ], + "scope": "All4 original48-file artifacts retained with verifiedZIPdigests; all9874 ordered collection identities and228sourcehashes agree. Eachprofile2failed/9872passed/533successfulsubtests, noerrors/skips/timeouts. This is failure diagnosis, not accepted hosted success." + } + }, + "inherited_W01_repair": { + "owner_unit": "P4-W01", + "activation_stage": 5, + "local_commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "tree": "e9b8ac43fc5b1c167a82e39bb7b488e8eab6b046", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "change": "Only two inert-slot fixture path literals changed to permanently protected io/output_directory.py; original213orderedcases and assertions retained. No product, guard, workflow, scope or budget changes.", + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-002.xml" + ], + "head": "3525d294ac179e38948346188bd5e633a06b7a08", + "started_at_utc": "2026-10-25T16:34:38.526038+00:00", + "elapsed_seconds": 187.9850304490028, + "exit_code": 0, + "timed_out": false, + "incomplete": false, + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." }, - "changes": [ - { - "path": "tests/contract/test_verification_boundary.py", - "owner": "P4-W01", - "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + "junit": { + "summary": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "213", + "time": "187.770", + "timestamp": "2026-10-25T10:34:38.664925-06:00", + "hostname": "d6921570ec2c" + }, + "by_classname": { + "tests.contract.test_verification_boundary": 213 } - ], - "changed_scope": [ - "tests/contract/test_verification_boundary.py", + }, + "source_files": 228, + "source_bytes_unchanged": true, + "initial_attempt": { + "evidence": "p4w06-w01-repair/focused-001.*", + "result": "184passed and29setup errors; current_unit_path_not_allowed correctly rejected uncommitted W01 edits on a W05-owned checkout. No guard override; repair committed under realW01ownership before successful run002." + } + }, + "changes": [ + { + "paths": [ + "P05", + "P07" + ], + "behavior": "Additive charged pretty-J and exact dynamic fence scan; complete fixed16-root Markdown layout, validated tool-controlled headings, complete Result and canonical Reason details, original fractions plus six-place half-up display, one final LF. Output directly shares one counted writer; no intermediate body outputcounter/reset." + }, + { + "paths": [ + "N05", + "N09", + "N10" + ], + "behavior": "Independent exact JSON/Markdown references and parse equality, substantive omission mutants, controls for source markup/backticks/controls/bidi and real fixedcounter framing/LF/stops. Old38 N10orderedcases and W05encoder functions remain." + } + ], + "changed_scope": { + "unit": "P4-W06", + "paths": [ + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/markdown_report.py", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "phase4/report_contract_coverage.json", "phase4/implementation_evidence.json" ], - "validation": { - "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", - "attempt_001": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" - ], - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "started_at_utc": "2026-10-25T16:31:30.867435+00:00", - "elapsed_seconds": 111.38650181399862, - "exit_code": 1, - "timed_out": false, - "incomplete": false, - "source_count": 228, - "source_unchanged": true, - "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." - }, - "junit": { - "name": "pytest", - "errors": "29", - "failures": "0", - "skipped": "0", - "tests": "213", - "time": "111.175", - "timestamp": "2026-10-25T10:31:30.996027-06:00", - "hostname": "d6921570ec2c" - }, - "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", - "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." + "approved_ids": [ + "P05", + "P07", + "N05", + "N09", + "N10", + "D04", + "D05" + ], + "unchanged": "Plan, contract/schema, JSON renderer and prior escaping methods, independent goldens/fixtures, private analysis, public APIs, runtime boundary/resources, budgets, workflow/pins, version and module inventory. V02 changed only in inheritedW01repair." + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T16:36:25.533181+00:00", + "elapsed_seconds": 35.059611011995, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "source_files": 230, + "source_bytes_unchanged": true, + "scope": "Five named W06 Markdown/parity/rendering/output and prior JSON/oracle files; not a full suite or W07 public invocation." + }, + "junit": { + "summary": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "341", + "time": "34.750", + "timestamp": "2026-10-25T10:36:25.718461-06:00", + "hostname": "d6921570ec2c" }, - "collection_preservation": { - "created_at_utc": "2026-10-25T16:32:15.236018+00:00", - "original_ordered_case_count": 213, - "current_ordered_case_count": 213, - "ordered_case_ids_identical": true, - "case_ids": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "changed_function": [ - "test_current_module_ceiling_and_protected_slots" - ], - "unchanged_other_top_level_definitions": 63, - "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", - "permanently_inactive_target": "io/output_directory.py", - "all_ten_activation_stages_keep_target_inactive": true, - "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + "by_classname": { + "tests.contract.test_report_parity": 30, + "tests.security.test_rendering": 26, + "tests.security.test_report_resource_limits": 48, + "tests.contract.test_json_report": 148, + "tests.contract.test_report_test_oracles": 89 + } + }, + "actual_test_nodes": { + "tests/contract/test_report_parity.py": [ + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants" + ], + "tests/security/test_rendering.py": [ + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + ], + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" + ] + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "c7219bd3e6d4b299574164522396065215933d140c3643a822c50df5bf1f018e", + "bytes": 17438 + }, + "src/source_integrity_toolkit/reporting/markdown_report.py": { + "sha256": "ae8eaa6ee6d1addc0df5ba294743a53703cbbd1014fc6f41e2ea759e48e170bc", + "bytes": 9019 + }, + "tests/contract/test_report_parity.py": { + "sha256": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "bytes": 21344 + }, + "tests/security/test_rendering.py": { + "sha256": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "bytes": 9553 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", + "bytes": 24878 } }, - "failure_and_repair": { - "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", - "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", - "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + "dual_renderer_probe": { + "exact_reference": true, + "markdown_bytes": 564555, + "json_bytes": 421307, + "markdown_sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", + "json_units": 3040258, + "markdown_units": 3982007, + "combined_units": 7022265, + "ledger_units": 7023292, + "output_counters": [ + 421307, + 564555 + ], + "elapsed_seconds": 2.2758739560013055, + "scope": "One real finalization ledger for both renderers; frozen input constructed separately; no W07 analysis/composition claim." + }, + "independent_review": { + "file": "p4w06-independent-review.json", + "sha256": "7004d007ece6a09ed8465107eed957e5f01ddc4af0aaffc70e595583867d0990", + "status": "passed_no_blocking_findings" }, - "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", - "remaining": [ - "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", - "New hosted candidate outcome is pending.", - "W06 product work is separate and not included in this repair.", - "Whole-invocation integration, public delivery, merge and release remain pending." + "post_test_inheritance": { + "commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py" + ], + "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." + }, + "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." + }, + "package_boundary": { + "activation_stage": 6, + "checked_modules": 48, + "entry_byte_protected_modules": 39, + "issues": [], + "ok": true, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "reporting/markdown_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" ], - "historical_records": { - "P4-W05": { - "phase": "P4", - "current_unit": "P4-W05", - "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", - "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", - "previous_checkpoint": { - "unit": "P4-W04", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", - "hosted_status": { - "saved_at_utc": "2026-10-25T12:03:35.195Z", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "runs": { - "workflow_runs": [ - { - "id": 40175369945, - "name": "P1-W02 selected-toolchain verification", - "status": "completed", - "conclusion": "skipped", - "run_number": 92, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", - "workflow_id": 361073157 - }, - { - "id": 40175369950, - "name": "Current verification", - "status": "completed", - "conclusion": "success", - "run_number": 106, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", - "workflow_id": 361447276 - } - ] - }, - "jobs": { - "jobs": [ - { - "id": 121114762732, - "name": "analytical core (windows-2025, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762895, - "name": "analytical core (ubuntu-24.04, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762924, - "name": "analytical core (ubuntu-24.04, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762983, - "name": "analytical core (windows-2025, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - } - ] + "protected_modules": 14, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "evidence": "p4w06-rendering-001.*", + "result": "16passed/10failed new security assertions; exact output/parsing already correct.", + "cause": "Test expected3 canary-containing blocks but counted only whole-string matches and missed a prefixed diagnostic qualification.", + "repair": "Count retained canary substrings; no product/golden change. CorrectedN09has26passes and finalunified341passes." + }, + { + "evidence": "p4w06-w01-repair/focused-001.*", + "result": "184passed/29setup errors due to actualowner scope before W01commit; successfulcleanowner213case rerun retained separately." + } + ], + "remaining": [ + "W07 must prove the original same invocation ledger across capture, analysis, disclosure, assembly, both encodings and parity. The7022265-unit dual-renderer probe starts from a separately frozen document; it is not complete pipeline feasibility proof.", + "All228 public pipeline/rendering obligation rows remain pending; public API activation and complete AuditReport delivery remain later units.", + "File/native/CLI publication, merge and release remain deferred.", + "New hosted outcome is unknown in this pre-publication record and will be reflected in PR/external evidence." + ], + "historical_records": { + "preceding_W01_repair_record": { + "phase": "P4", + "current_unit": "P4-W01", + "delivery_unit": "P4-W05", + "activation_stage": 5, + "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", + "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", + "previous_checkpoint": { + "unit": "P4-W05", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "run_id": 40192106767, + "run_attempt": 1, + "hosted_result": "completed/failure", + "profiles": [ + { + "artifact_id": 12599033843, + "name": "phase3-windows-2025-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2167.529", + "timestamp": "2026-10-25T12:14:11.583388+00:00", + "hostname": "runnervmdaln5" }, - "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, - "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." - }, - "changes": [ { - "paths": [ - "P05", - "P06" - ], - "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." + "artifact_id": 12598913258, + "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1707.237", + "timestamp": "2026-10-25T12:13:29.022234+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, { - "paths": [ - "P02", - "P08", - "P09" - ], - "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." + "artifact_id": 12598889077, + "name": "phase3-windows-2025-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2216.425", + "timestamp": "2026-10-25T12:14:13.684890+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, { - "paths": [ - "N04", - "N10" - ], - "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + "artifact_id": 12598853369, + "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1530.030", + "timestamp": "2026-10-25T12:13:22.517483+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } } ], - "changed_scope": { - "unit": "P4-W05", - "paths": [ - "src/source_integrity_toolkit/contracts/execution.py", - "src/source_integrity_toolkit/reporting/escaping.py", - "src/source_integrity_toolkit/reporting/json_report.py", - "src/source_integrity_toolkit/runtime/resources.py", - "src/source_integrity_toolkit/runtime/diagnostics.py", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "approved_ids": [ - "P02", - "P05", - "P06", - "P08", - "P09", - "N04", - "N10", - "D04", - "D05" - ], - "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." - }, - "validation": { + "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + }, + "changes": [ + { + "path": "tests/contract/test_verification_boundary.py", + "owner": "P4-W01", + "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + } + ], + "changed_scope": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "validation": { + "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", + "attempt_001": { "execution": { "command": [ "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", @@ -1201,2463 +558,3144 @@ "-m", "pytest", "-q", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "tests/contract/test_report_test_oracles.py", - "tests/security/test_input_resource_limits.py", - "tests/security/test_analytical_resource_limits.py", - "tests/security/test_input_diagnostics.py", - "tests/security/test_analytical_diagnostics.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" ], - "started_at_utc": "2026-10-25T12:07:49.098267+00:00", - "elapsed_seconds": 10.06384003399944, - "exit_code": 0, - "timeout_seconds": 900, + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "started_at_utc": "2026-10-25T16:31:30.867435+00:00", + "elapsed_seconds": 111.38650181399862, + "exit_code": 1, "timed_out": false, - "interrupted": false, "incomplete": false, - "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "source_files": 228, - "source_bytes_unchanged": true, - "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." }, "junit": { "name": "pytest", - "errors": "0", + "errors": "29", "failures": "0", "skipped": "0", - "tests": "432", - "time": "9.770", - "timestamp": "2026-10-25T06:07:49.242461-06:00", + "tests": "213", + "time": "111.175", + "timestamp": "2026-10-25T10:31:30.996027-06:00", "hostname": "d6921570ec2c" }, - "cases_by_classname": { - "tests.contract.test_json_report": 148, - "tests.security.test_report_resource_limits": 38, - "tests.contract.test_report_test_oracles": 89, - "tests.security.test_input_resource_limits": 36, - "tests.security.test_analytical_resource_limits": 60, - "tests.security.test_input_diagnostics": 32, - "tests.security.test_analytical_diagnostics": 29 + "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", + "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." + }, + "collection_preservation": { + "created_at_utc": "2026-10-25T16:32:15.236018+00:00", + "original_ordered_case_count": 213, + "current_ordered_case_count": 213, + "ordered_case_ids_identical": true, + "case_ids": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "changed_function": [ + "test_current_module_ceiling_and_protected_slots" + ], + "unchanged_other_top_level_definitions": 63, + "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", + "permanently_inactive_target": "io/output_directory.py", + "all_ten_activation_stages_keep_target_inactive": true, + "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + } + }, + "failure_and_repair": { + "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", + "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", + "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + }, + "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", + "remaining": [ + "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", + "New hosted candidate outcome is pending.", + "W06 product work is separate and not included in this repair.", + "Whole-invocation integration, public delivery, merge and release remain pending." + ], + "historical_records": { + "P4-W05": { + "phase": "P4", + "current_unit": "P4-W05", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", + "previous_checkpoint": { + "unit": "P4-W04", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", + "hosted_status": { + "saved_at_utc": "2026-10-25T12:03:35.195Z", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "runs": { + "workflow_runs": [ + { + "id": 40175369945, + "name": "P1-W02 selected-toolchain verification", + "status": "completed", + "conclusion": "skipped", + "run_number": 92, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", + "workflow_id": 361073157 + }, + { + "id": 40175369950, + "name": "Current verification", + "status": "completed", + "conclusion": "success", + "run_number": 106, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", + "workflow_id": 361447276 + } + ] + }, + "jobs": { + "jobs": [ + { + "id": 121114762732, + "name": "analytical core (windows-2025, Python 3.13)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762895, + "name": "analytical core (ubuntu-24.04, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762924, + "name": "analytical core (ubuntu-24.04, Python 3.13)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762983, + "name": "analytical core (windows-2025, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + } + ] + }, + "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." + }, + "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." + }, + "changes": [ + { + "paths": [ + "P05", + "P06" + ], + "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." + }, + { + "paths": [ + "P02", + "P08", + "P09" + ], + "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." + }, + { + "paths": [ + "N04", + "N10" + ], + "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + } + ], + "changed_scope": { + "unit": "P4-W05", + "paths": [ + "src/source_integrity_toolkit/contracts/execution.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/json_report.py", + "src/source_integrity_toolkit/runtime/resources.py", + "src/source_integrity_toolkit/runtime/diagnostics.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "approved_ids": [ + "P02", + "P05", + "P06", + "P08", + "P09", + "N04", + "N10", + "D04", + "D05" + ], + "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." }, - "tested_product_and_test_bytes": { - "src/source_integrity_toolkit/contracts/execution.py": { - "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", - "bytes": 11231 + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_report_test_oracles.py", + "tests/security/test_input_resource_limits.py", + "tests/security/test_analytical_resource_limits.py", + "tests/security/test_input_diagnostics.py", + "tests/security/test_analytical_diagnostics.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T12:07:49.098267+00:00", + "elapsed_seconds": 10.06384003399944, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "source_files": 228, + "source_bytes_unchanged": true, + "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." }, - "src/source_integrity_toolkit/reporting/escaping.py": { - "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", - "bytes": 10969 + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "432", + "time": "9.770", + "timestamp": "2026-10-25T06:07:49.242461-06:00", + "hostname": "d6921570ec2c" }, - "src/source_integrity_toolkit/reporting/json_report.py": { - "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", - "bytes": 1064 + "cases_by_classname": { + "tests.contract.test_json_report": 148, + "tests.security.test_report_resource_limits": 38, + "tests.contract.test_report_test_oracles": 89, + "tests.security.test_input_resource_limits": 36, + "tests.security.test_analytical_resource_limits": 60, + "tests.security.test_input_diagnostics": 32, + "tests.security.test_analytical_diagnostics": 29 + }, + "tested_product_and_test_bytes": { + "src/source_integrity_toolkit/contracts/execution.py": { + "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", + "bytes": 11231 + }, + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", + "bytes": 10969 + }, + "src/source_integrity_toolkit/reporting/json_report.py": { + "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", + "bytes": 1064 + }, + "src/source_integrity_toolkit/runtime/resources.py": { + "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", + "bytes": 16699 + }, + "src/source_integrity_toolkit/runtime/diagnostics.py": { + "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", + "bytes": 9437 + }, + "tests/contract/test_json_report.py": { + "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "bytes": 10790 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", + "bytes": 16947 + } }, - "src/source_integrity_toolkit/runtime/resources.py": { - "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", - "bytes": 16699 + "actual_test_nodes": { + "tests/contract/test_json_report.py": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" + ], + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ] }, - "src/source_integrity_toolkit/runtime/diagnostics.py": { - "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", - "bytes": 9437 + "reference_probe": { + "exact_reference": true, + "bytes": 421307, + "assembly_units": 6740573, + "encoder_units": 2768497, + "total_units": 9509070, + "output": { + "json": 421307, + "markdown": 0 + }, + "elapsed_seconds": 3.0059238750000077, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" }, - "tests/contract/test_json_report.py": { - "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", - "bytes": 10790 + "independent_review": { + "status": "passed_no_blocking_findings", + "file": "p4w05-independent-review.json", + "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" }, - "tests/security/test_report_resource_limits.py": { - "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", - "bytes": 16947 - } + "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." }, - "actual_test_nodes": { - "tests/contract/test_json_report.py": [ - "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", - "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", - "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", - "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", - "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", - "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", - "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", - "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", - "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", - "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", - "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", - "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" + "package_boundary": { + "activation_stage": 5, + "checked_modules": 48, + "entry_byte_protected_modules": 40, + "issues": [], + "ok": true, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" ], - "tests/security/test_report_resource_limits.py": [ - "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", - "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", - "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", - "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", - "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", - "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", - "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", - "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", - "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", - "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", - "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", - "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", - "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", - "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" - ] - }, - "reference_probe": { - "exact_reference": true, - "bytes": 421307, - "assembly_units": 6740573, - "encoder_units": 2768497, - "total_units": 9509070, - "output": { - "json": 421307, - "markdown": 0 - }, - "elapsed_seconds": 3.0059238750000077, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + "protected_modules": 15, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, - "independent_review": { - "status": "passed_no_blocking_findings", - "file": "p4w05-independent-review.json", - "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" - }, - "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." - }, - "package_boundary": { - "activation_stage": 5, - "checked_modules": 48, - "entry_byte_protected_modules": 40, - "issues": [], - "ok": true, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "reporting/escaping.py", - "reporting/json_report.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" + "failures_and_repairs": [ + { + "evidence": "p4w05-json-001.log/.xml/-execution.json", + "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", + "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", + "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." + } ], - "protected_modules": 15, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "evidence": "p4w05-json-001.log/.xml/-execution.json", - "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", - "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", - "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." - } - ], - "remaining": [ - "W06 Markdown and substantive parity are not started.", - "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", - "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", - "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", - "File/CLI/native publication, merge and release remain deferred.", - "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." - ], - "historical_records": { - "P4-W04": { - "phase": "P4", - "current_unit": "P4-W04", - "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", - "owner_authorization": { - "instruction": "W04继续", - "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "W03_local_targeted_tests": 5982, - "hosted_result": { - "run_id": 40170942968, + "remaining": [ + "W06 Markdown and substantive parity are not started.", + "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", + "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", + "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", + "File/CLI/native publication, merge and release remain deferred.", + "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." + ], + "historical_records": { + "P4-W04": { + "phase": "P4", + "current_unit": "P4-W04", + "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", + "owner_authorization": { + "instruction": "W04继续", + "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "previous_checkpoint": { "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "attempt": 1, - "run_status": "completed", - "run_conclusion": "failure", - "failed_profile": { - "matrix": "windows-2025 / Python 3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "artifact_bytes": 244690, - "raw_files": 47, - "pytest_exit": { - "error_type": "TimeoutExpired", - "exit_code": null, - "incomplete": true, - "interrupted": false, - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "timed_out": true, - "timeout_seconds": 2400 - }, - "test_failure": { - "error_type": "TimeoutExpired", - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "stage": "test" - }, - "evidence_failure": { - "error_type": "ValueError", - "message": "earlier_stage_failed", - "stage": "evidence" + "W03_local_targeted_tests": 5982, + "hosted_result": { + "run_id": 40170942968, + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "attempt": 1, + "run_status": "completed", + "run_conclusion": "failure", + "failed_profile": { + "matrix": "windows-2025 / Python 3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "artifact_bytes": 244690, + "raw_files": 47, + "pytest_exit": { + "error_type": "TimeoutExpired", + "exit_code": null, + "incomplete": true, + "interrupted": false, + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "timed_out": true, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "TimeoutExpired", + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "collection_count": 9653, + "junit_present": false, + "test_record_present": false, + "source_after_present": false, + "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." }, - "collection_count": 9653, - "junit_present": false, - "test_record_present": false, - "source_after_present": false, - "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." - }, - "comparison_profile": { - "matrix": "windows-2025 / Python 3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "artifact_bytes": 363913, - "pytest_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 + "comparison_profile": { + "matrix": "windows-2025 / Python 3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "artifact_bytes": 363913, + "pytest_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", + "timing": "windows313-timing-focused.json", + "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." }, - "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", - "timing": "windows313-timing-focused.json", - "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + "diagnostic_profile": "guard-single-call-profile.json", + "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", + "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" }, - "diagnostic_profile": "guard-single-call-profile.json", - "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", - "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" - }, - "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." - }, - "inherited_W01_repair": { - "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", - "owner": "P4-W01", - "activation_stage": 3, - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "tests/scaffold/test_imports.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_module_manifest.py", - "tests/security/test_preparation_inertness.py", - "tests/scaffold/test_ci_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" - ], - "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "started_at_utc": "2026-10-25T07:57:05.151778+00:00", - "elapsed_seconds": 259.7052340929986, - "exit_code": 0, - "timeout_seconds": 1200, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_count": 224, - "source_hashes_unchanged": true, - "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "576", - "time": "259.471", - "timestamp": "2026-10-25T01:57:05.272902-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_verification_boundary": 213, - "tests.scaffold.test_imports": 50, - "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, - "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, - "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, - "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, - "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, - "tests.security.test_preparation_inertness": 39, - "tests.scaffold.test_ci_contract.CiContractTests": 14, - "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, - "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 - }, - "collection_preservation": { - "before_exit": 0, - "after_exit": 0, - "before_count": 211, - "after_count": 213, - "original_211_ordered_cases_unchanged": true, - "added": [ - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "before_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" - ], - "after_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ] + "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." }, - "same_source_timing": { - "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", - "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", - "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "module_sha256": { - "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", - "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", - "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", - "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", - "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", - "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", - "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", - "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", - "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", - "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", - "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", - "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", - "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", - "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", - "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", - "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", - "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", - "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", - "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", - "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", - "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", - "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", - "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", - "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", - "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", - "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", - "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", - "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", - "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", - "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", - "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", - "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", - "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", - "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", - "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", - "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", - "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", - "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", - "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", - "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", - "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", - "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", - "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", - "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", - "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", - "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", - "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", - "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + "inherited_W01_repair": { + "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", + "owner": "P4-W01", + "activation_stage": 3, + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "tests/scaffold/test_imports.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_module_manifest.py", + "tests/security/test_preparation_inertness.py", + "tests/scaffold/test_ci_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + ], + "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "started_at_utc": "2026-10-25T07:57:05.151778+00:00", + "elapsed_seconds": 259.7052340929986, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_count": 224, + "source_hashes_unchanged": true, + "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." }, - "guard_sha256": { - "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", - "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "576", + "time": "259.471", + "timestamp": "2026-10-25T01:57:05.272902-06:00", + "hostname": "d6921570ec2c" }, - "seconds": { - "before": [ - 1.170046082999761, - 1.182108517998131, - 1.114261736998742 + "cases_by_classname": { + "tests.contract.test_verification_boundary": 213, + "tests.scaffold.test_imports": 50, + "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, + "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, + "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, + "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, + "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, + "tests.security.test_preparation_inertness": 39, + "tests.scaffold.test_ci_contract.CiContractTests": 14, + "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, + "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + }, + "collection_preservation": { + "before_exit": 0, + "after_exit": 0, + "before_count": 211, + "after_count": 213, + "original_211_ordered_cases_unchanged": true, + "added": [ + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "before_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" ], - "after": [ - 0.6021103010025399, - 0.5637806820013793, - 0.5558995499995945 + "after_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" ] }, - "median_seconds": { - "before": 1.170046082999761, - "after": 0.5637806820013793 - }, - "same_empty_issues": { - "before": [], - "after": [] + "same_source_timing": { + "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "module_sha256": { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", + "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + }, + "guard_sha256": { + "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", + "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + }, + "seconds": { + "before": [ + 1.170046082999761, + 1.182108517998131, + 1.114261736998742 + ], + "after": [ + 0.6021103010025399, + 0.5637806820013793, + 0.5558995499995945 + ] + }, + "median_seconds": { + "before": 1.170046082999761, + "after": 0.5637806820013793 + }, + "same_empty_issues": { + "before": [], + "after": [] + }, + "after_parse_counts": { + "current_module_issues": 48, + "_phase2_layer_issues": 18, + "executable_ast": 36 + } }, - "after_parse_counts": { - "current_module_issues": 48, - "_phase2_layer_issues": 18, - "executable_ast": 36 - } + "raw_directory": "p4w04-w01-repair", + "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." }, - "raw_directory": "p4w04-w01-repair", - "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." - }, - "changes": [ - "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", - "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", - "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", - "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", - "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." - ], - "changed_scope": { - "W04": [ - "src/source_integrity_toolkit/reporting/assemble.py", - "src/source_integrity_toolkit/runtime/disclosure.py", - "tests/contract/test_report_assembly.py", - "tests/security/test_report_disclosure.py", - "tests/fixtures/adversarial/phase4_report_cases.json", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "separate_W01": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" + "changes": [ + "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", + "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", + "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", + "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", + "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." ], - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", + "changed_scope": { + "W04": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/runtime/disclosure.py", "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", "tests/security/test_report_disclosure.py", - "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + "tests/fixtures/adversarial/phase4_report_cases.json", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" ], - "started_at_utc": "2026-10-25T07:57:29.452245+00:00", - "elapsed_seconds": 73.28405752199978, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "source_files": 226, - "source_bytes_unchanged": true, - "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "186", - "time": "73.047", - "timestamp": "2026-10-25T01:57:29.593002-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_assembly": 55, - "tests.contract.test_report_identity": 16, - "tests.security.test_report_disclosure": 26, - "tests.contract.test_report_test_oracles": 89 - }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58955, - "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" - }, - "src/source_integrity_toolkit/runtime/disclosure.py": { - "bytes": 38666, - "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 71321, - "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" - }, - "tests/security/test_report_disclosure.py": { - "bytes": 16111, - "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" - }, - "tests/fixtures/adversarial/phase4_report_cases.json": { - "bytes": 64693, - "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" - } - }, - "post_test_inheritance": { - "paths": [ + "separate_W01": [ "phase4/implementation_evidence.json", "tests/contract/test_verification_boundary.py", "tools/check_scaffold_boundary.py" ], - "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." - } - }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 4, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 17, - "entry_byte_protected_modules": 44, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "failure": "Initial product reference differed only in the set order of Finding input references.", - "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", - "raw": "p4w04-product-reference-01" - }, - { - "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", - "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", - "raw": [ - "p4w04-security-001", - "p4w04-product-frontier-01" - ] + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" }, - { - "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", - "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", - "raw": [ - "p4w04-correction-home-diagnosis.json", - "p4w04-security-001", - "p4w04-security-002" - ] - }, - { - "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", - "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", - "raw": [ - "p4w04-n02-full-01", - "p4w04-scan-fixture-trace-01", - "p4w04-security-001" - ] - } - ], - "remaining": { - "W05_W06": "JSON and Markdown product encoders pending", - "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", - "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", - "W09_W10": "Full public obligation execution and final phase acceptance pending", - "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", - "file_native_cli_release": "Deferred" - }, - "historical_records": [ - { - "phase": "P4", - "current_unit": "P4-W03", - "active_repair_owner_unit": "P4-W01", - "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", - "owner_authorization": { - "instruction": "W04继续", - "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", - "owner_unit": "P4-W01", - "activation_stage": 3, - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." }, - "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "local_targeted_tests": 5982, - "hosted_run": 40170942968, - "attempt": 1, - "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 }, - "failure_diagnosis": { - "failed_profile": "windows-2025 Python3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "raw_files": 47, - "pytest": { - "exit_code": null, - "error_type": "TimeoutExpired", - "timeout_seconds": 2400, - "timed_out": true, - "incomplete": true, - "junit_present": false + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" }, - "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", - "comparison": { - "profile": "windows-2025 Python3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "passed_tests": 9653, - "successful_subtests": 533, - "pytest_seconds": 2397.33, - "junit_seconds": 2397.258, - "testcase_seconds": 2388.211, - "V02_seconds": 668.918, - "largest_V02_case_seconds": 145.581, - "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" }, - "raw_directory": "p4w04-prior-ci-diagnosis", - "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." - }, - "changes": [ - { - "path": "tools/check_scaffold_boundary.py", - "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" }, - { - "path": "tests/contract/test_verification_boundary.py", - "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" }, - { - "path": "phase4/implementation_evidence.json", - "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" } - ], - "preserved_guarantees": [ - "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", - "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", - "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", - "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", - "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." - ], - "validation": { - "state": "pending after this locally reviewable commit", - "original_V02_definitions": 62, - "changed_existing_V02_definitions": [], - "added_V02_tests": [ - "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", - "test_current_source_checks_parse_fresh_after_mutation_and_restoration" - ], - "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." }, - "historical_records": [ - { - "phase": "P4", - "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", - "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 - }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } + }, + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 4, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 17, + "entry_byte_protected_modules": 44, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "failure": "Initial product reference differed only in the set order of Finding input references.", + "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", + "raw": "p4w04-product-reference-01" + }, + { + "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", + "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", + "raw": [ + "p4w04-security-001", + "p4w04-product-frontier-01" + ] + }, + { + "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", + "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", + "raw": [ + "p4w04-correction-home-diagnosis.json", + "p4w04-security-001", + "p4w04-security-002" + ] + }, + { + "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", + "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", + "raw": [ + "p4w04-n02-full-01", + "p4w04-scan-fixture-trace-01", + "p4w04-security-001" + ] + } + ], + "remaining": { + "W05_W06": "JSON and Markdown product encoders pending", + "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", + "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", + "W09_W10": "Full public obligation execution and final phase acceptance pending", + "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", + "file_native_cli_release": "Deferred" + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W03", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", + "owner_authorization": { + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false + }, + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + }, + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." + }, + "changes": [ + { + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." + { + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + } + ], + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "owner_authorization": { + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "previous_checkpoint": { + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, + "attempt": 1, + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, + "per_profile_successful_subtests": 533, + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." + }, + "changes": [ + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", "tests/contract/test_report_assembly.py", "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 - }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" + ], + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } - }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" + }, + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" + }, + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" } }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] + }, + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] + } }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] + }, + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] + } } - } - }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" + }, + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" + }, + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" + } }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } - }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." - }, - "failures_and_repairs": [ - { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] - }, - { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] - }, - { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] - }, - { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] - }, - { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." }, - { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] - } - ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." - }, - "historical_records": [ - { - "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", - "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + "failures_and_repairs": [ + { + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" + ] }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 + { + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" + ] }, - "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, - "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, - "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + { + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" + ] }, - "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." + { + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" + ] + }, + { + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" + ] + }, + { + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" + ] + } + ], + "remaining": { + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "owner_authorization": { + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } - ], - "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, + "changes": [ + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." + ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", + "guarantee_migrations": [ + { + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + { + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." + } + ], + "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } } }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } - }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" - }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." + "package_boundary": { + "result": "passed", + "activation_stage": 2, + "checked_modules": 48, + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" + }, + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" + } }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } - ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." - }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" - }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" - } - }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + }, + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" + } } }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" - }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" + } + ], + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 + }, + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 + }, + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 + }, + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { + "bytes": 272, + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" + } }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } - } - }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." + }, + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 - }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 - }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 - }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 + }, + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 - } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" - } - }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" - }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } + ], + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" - } - }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" - } - }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" - } + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + "failures_and_repairs": [ + { + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] + }, + { + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" + { + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 + { + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", + { + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] + }, + { + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] + }, + { + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ - { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" - } + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" - }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" - }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." + }, + { + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." + }, + { + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." }, - "p4w02-v02-seed-full-001.log": { - "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." } - }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." + ] + }, + { + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] } - } - }, - "failures_and_repairs": [ - { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] - }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] - }, - { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" - ] - }, - { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" - ] - }, - { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" - ] - }, - { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" - ] - }, - { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." - }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." - }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." - } - ] + ], + "remaining": { + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", + "file_native_cli_audit_release": "deferred" }, - { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" - ] - } - ], - "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" - }, - "historical_records": [ - { - "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", - "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." - }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 - }, - "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." - ], - "guarantee_migrations": [ - { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." }, - { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." - } - ], - "validation": { - "package_boundary": { - "result": "passed", - "stage": 1, - "checked_modules": 48, - "byte_protected_modules": 48 - }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "vc_run": 38128491330, + "post_merge_run": 38164028893 }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 - }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." }, - "focused_retry": { + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 }, - "latest_increment": { + "bounded_driver": { "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" - }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" - } - }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" } }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." - }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" - }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" - } - }, - "failures_and_repairs": [ - { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" }, - { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." - } - ], - "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", - "file_native_cli_audit_release": "deferred" - }, - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." - } - ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" - } - ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." - } - ], - "authority_notice": "Review-only evidence, not authority, product input or test selection.", - "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", - "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" - } - ], - "authority_notice": "Review-only evidence; not product input or authorization policy.", - "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", - "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." - } - }, - "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", - "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", - "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." - } - }, - "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", - "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", - "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." - } + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" + } + ], + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + } + ], + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" + } + ], + "authority_notice": "Review-only evidence; not product input or authorization policy.", + "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", + "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." + } + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", + "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", + "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." + } + }, + "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", + "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", + "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." + } + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48 is unchanged.", + "validated_at_utc": "2026-10-25T16:39:15.237589+00:00", + "publication_note": "W06 product/tests frozen during final341case run. Separately tested repair inherited afterward; only D04/D05 then record known facts. Published hashes/CI are external." }, - "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48 is unchanged.", - "validated_at_utc": "2026-10-25T16:39:15.237589+00:00", - "publication_note": "W06 product/tests frozen during final341case run. Separately tested repair inherited afterward; only D04/D05 then record known facts. Published hashes/CI are external." + "remaining": [ + "W07 implementation/integration and later units remain separate.", + "No merge/release/public API activation." + ], + "authority_notice": "This record is evidence only and cannot grant path, semantic, budget or execution authority." } diff --git a/src/source_integrity_toolkit/reporting/assemble.py b/src/source_integrity_toolkit/reporting/assemble.py index f5a13ac..bb54215 100644 --- a/src/source_integrity_toolkit/reporting/assemble.py +++ b/src/source_integrity_toolkit/reporting/assemble.py @@ -785,9 +785,29 @@ def _component_matches_path(path, trace, assembly): return bool(path['edges']) +def _empty_completed_trace(component, port): + """An exact already completed empty search, without inventing coverage.""" + port.charge(4) + if (component['kind'] != 'complete_trace' or component['member_count'] != 0 or + component['target'] is not None): + return False + for name in ('nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals', + 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations'): + port.charge(2) + if component[name]: + return False + return True + + def _proof_metadata(component, view, port): port.charge(8) kind = component['kind'] + if kind == 'complete_trace': + _require(_empty_completed_trace(component, port)) + return 'scoped_no_witness', 'no_witness_in_examined_view', (), ( + 'The completed typed search had no selected starting members in this examined supplied view.'), ( + 'The retained complete trace has no examined members. This does not establish ' + 'outside-world absence or independence and does not supply a nonzero ratio denominator.') if kind == 'path': _require(bool(component['edges']) and all(edge['eligible'] is True for edge in component['edges'])) _require(view in ('citation', 'material_transformation', 'claim_origin')) @@ -904,8 +924,13 @@ def _assemble_witnesses(assembly): for group in groups: scope, components = group['scope'], group['components'] context = _proof_context(scope, port) - primaries = [part for part in components if part['kind'] in ('path', 'cycle', 'no_witness_in_examined_view')] - traces = [part for part in components if part['kind'] == 'complete_trace'] + primaries, traces = [], [] + for part in components: + port.charge(2) + if part['kind'] in ('path', 'cycle', 'no_witness_in_examined_view') or _empty_completed_trace(part, port): + primaries.append(part) + elif part['kind'] == 'complete_trace': + traces.append(part) _require(len(primaries) + len(traces) == len(components)) for trace in traces: candidates = [] diff --git a/tests/contract/test_report_assembly.py b/tests/contract/test_report_assembly.py index 56be351..b9d0979 100644 --- a/tests/contract/test_report_assembly.py +++ b/tests/contract/test_report_assembly.py @@ -1374,3 +1374,78 @@ def test_runtime_review_scan_and_repeated_source_slots_keep_owner_order(review_s assert roles[0]['qualifications'] == [ 'Repeated original owner role slot; no additional human is inferred.'] assert 0 < port.units <= 10_000_000 + + +def test_empty_seed_dimension_preserves_completed_trace_and_unavailable_ratios(): + """Reporting 10.7/18.2: an empty typed search cannot invent a ratio zero.""" + source = _reference_dossier() + source['bundle_id'] = 'P4-EMPTY-SEED-ACQUISITION' + source['snapshot_id'] = 'P4-EMPTY-SEED-ACQUISITION-01' + inquiry = source['inquiries'][0] + inquiry['dependency_dimensions'] = ['acquisition'] + for name in ('seed_artifact_refs', 'seed_evidence_refs', 'coverage_assertion_refs'): + inquiry[name] = [] + source['records'] = [row for row in source['records'] + if row['id'] in ('P4-ACTOR', 'P4-CLAIM')] + source['assertions'] = [] + source['evidence_references'] = [] + before = copy.deepcopy(source) + outcome = _analyze_value(source) + assert type(outcome) is contract._AnalyticalOutcome + assert outcome.execution_state == 'completed' + assert source == before + traces = [part for record in outcome.witnesses for part in record.payload + if part[0] == 'graph_witness'] + assert len(traces) == 1 and traces[0][1] == 'complete_trace' + assert traces[0][-1] == 0 + port = RecordingPort() + document = _plain(disclosure_runtime._assemble_selected_report(outcome, port)) + assert document['run']['processing_state'] == 'completed' + assert document['input_validation'] == {'state': 'accepted', 'diagnostics': []} + assert len(document['capabilities']) == 15 + reasons = {row['id']: row for row in document['reasons']} + findings = {row['id']: row for row in document['findings']} + empty = [row for row in document['findings'] + if any(part['kind'] == 'complete_trace' for part in row['witness']['components'] + if part['type'] == 'graph_witness')] + assert len(empty) == 1 + finding = empty[0] + assert finding['condition_code'] == 'scoped_no_witness' + assert finding['observation_kind'] == 'no_witness_in_examined_view' + assert finding['threat_family_refs'] == [] + assert len(finding['witness']['components']) == 1 + component = finding['witness']['components'][0] + assert component['type'] == 'graph_witness' and component['kind'] == 'complete_trace' + assert component['member_count'] == 0 and component['target'] is None + for name in ('nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals', + 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations'): + assert component[name] == [] + assert 'no selected starting members' in finding['statement'] + assert 'does not establish outside-world absence or independence' in finding['interpretation_limit'] + assert 'does not supply a nonzero ratio denominator' in finding['interpretation_limit'] + for field in ('single_origin_contribution_hhi', 'documentary_origin_resolution_fraction', + 'inherited_only_seed_fraction'): + selected = [row for row in document['results'] if row['field_key'] == field] + assert len(selected) == 1 + result = selected[0] + assert result['execution_state'] == 'completed' + assert result['result_state'] == 'unavailable' and result['value'] is None + assert 'zero_denominator' in {reasons[ref]['code'] for ref in result['reason_refs']} + assert finding['id'] in result['witness_refs'] + assert all(ref in findings for ref in result['witness_refs']) + _assert_partitions(document) + _assert_report_links(document) + + +@pytest.mark.parametrize('field', [ + 'nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals', + 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations', + 'target', 'member_count', +]) +def test_nonempty_trace_cannot_use_empty_search_projection(field): + component = {name: () for name in ('nodes', 'members', 'starts', 'examined_nodes', + 'frontiers', 'terminals', 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations')} + component.update(kind='complete_trace', target=None, member_count=0) + assert assemble._empty_completed_trace(component, RecordingPort()) is True + component[field] = 1 if field == 'member_count' else (('one_retained_occurrence',),) + assert assemble._empty_completed_trace(component, RecordingPort()) is False From 59bf1de37eb4fe334453777092d205d99ff23b84 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 21:05:23 -0700 Subject: [PATCH 15/21] Correct empty trace regression to its original owner fields SIT-Phase-Unit: P4-W03 --- phase4/implementation_evidence.json | 13 ++++++++++--- tests/contract/test_report_assembly.py | 9 +++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 21adb6b..f00cd3f 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -15,9 +15,10 @@ "phase4/implementation_evidence.json" ], "source_basis": [ - "OBSERVABILITY_AND_REPORTING.md section10.7: empty seed inventory is zero; HHI and seed fractions unavailable for zero denominator.", + "OBSERVABILITY_AND_REPORTING.md W4-10: empty seed inventory is zero; HHI and seed fractions unavailable for zero denominator.", "OBSERVABILITY_AND_REPORTING.md section18.2: scoped_no_witness means a completed typed search found no eligible witness at its declared scope; no threat-family pass.", - "PHASE_4_PLAN.md section4.2 and W03: preserve all retained witness content in formal report homes without enhancing analytical conclusions." + "PHASE_4_PLAN.md section4.2 and W03: preserve all retained witness content in formal report homes without enhancing analytical conclusions.", + "OBSERVABILITY_AND_REPORTING.md section19.2: retained Result witness references point to Finding identities carrying the finite evidence." ], "diagnosis": { "earlier_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", @@ -28,7 +29,13 @@ "validation": { "status": "pending_after_real_W03_commit", "planned_scope": "Complete tests/contract/test_report_assembly.py on this clean checkpoint; source hashes before/after, logs, JUnit and exit receipt retained externally.", - "no_claim": "No new full suite, hosted CI or W07/public delivery success claimed." + "no_claim": "No new full suite, hosted CI or W07/public delivery success claimed.", + "first_attempt": { + "head": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "actual": "68 passed, 1 failed, exit1, 230source hashes unchanged", + "reason": "The new test wrongly required unavailable ratios to carry the empty trace; original analytical Results attach that trace to M002/M007 counts/disclosures. Product projection already succeeded. Corrected only that expectation to the seven actual declared owner fields, retaining unavailable/null/zero_denominator checks.", + "raw_evidence": "External p4w07-w03-repair/focused-001.*" + } }, "previous_checkpoint": { "phase": "P4", diff --git a/tests/contract/test_report_assembly.py b/tests/contract/test_report_assembly.py index b9d0979..7adb28c 100644 --- a/tests/contract/test_report_assembly.py +++ b/tests/contract/test_report_assembly.py @@ -1377,7 +1377,7 @@ def test_runtime_review_scan_and_repeated_source_slots_keep_owner_order(review_s def test_empty_seed_dimension_preserves_completed_trace_and_unavailable_ratios(): - """Reporting 10.7/18.2: an empty typed search cannot invent a ratio zero.""" + """Reporting W4-10/18.2: an empty typed search cannot invent a ratio zero.""" source = _reference_dossier() source['bundle_id'] = 'P4-EMPTY-SEED-ACQUISITION' source['snapshot_id'] = 'P4-EMPTY-SEED-ACQUISITION-01' @@ -1431,8 +1431,13 @@ def test_empty_seed_dimension_preserves_completed_trace_and_unavailable_ratios() assert result['execution_state'] == 'completed' assert result['result_state'] == 'unavailable' and result['value'] is None assert 'zero_denominator' in {reasons[ref]['code'] for ref in result['reason_refs']} - assert finding['id'] in result['witness_refs'] assert all(ref in findings for ref in result['witness_refs']) + for field in ('reached_origin_record_count', 'documentary_origin_boundary_record_count', + 'origin_boundary_disclosures', 'unresolved_frontier_reference_count', + 'unqualified_terminal_record_count', 'seed_items_with_unresolved_ancestry_count', + 'ancestry_gap_disclosures'): + result = next(row for row in document['results'] if row['field_key'] == field) + assert result['witness_refs'] == [finding['id']] _assert_partitions(document) _assert_report_links(document) From e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 21:05:25 -0700 Subject: [PATCH 16/21] Complete bounded same-invocation internal audit delivery Keep preparation, analysis, disclosure, report assembly, both encodings and content consistency on one original ledger, deadline and emergency reserve. Retain atomic stopped outcomes and charge only actual new witness occurrences. Use bounded native scalar passes and local frozen-key ordering reuse without changing limits, exact output rules or analytical meanings. Preserve read-only report delivery and safe exception compatibility. Record the actual scoped regression and constructor-message closure, inherited W03 empty-trace repair and remaining public activation boundary. SIT-Phase-Unit: P4-W07 --- phase4/implementation_evidence.json | 9387 +++++++++++------ phase4/report_contract_coverage.json | 1953 +++- .../contracts/execution.py | 74 +- .../contracts/report.py | 59 +- .../reporting/assemble.py | 101 +- .../reporting/escaping.py | 311 +- .../reporting/json_report.py | 13 +- .../reporting/markdown_report.py | 12 +- .../runtime/boundary.py | 238 +- .../runtime/diagnostics.py | 6 +- .../runtime/disclosure.py | 5 +- .../runtime/resources.py | 77 +- tests/contract/test_report_assembly.py | 154 + tests/contract/test_report_contract.py | 161 +- tests/integration/test_public_audit.py | 368 + tests/security/test_public_api_boundary.py | 286 + tests/security/test_report_resource_limits.py | 443 + 17 files changed, 9990 insertions(+), 3658 deletions(-) create mode 100644 tests/integration/test_public_audit.py create mode 100644 tests/security/test_public_api_boundary.py diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index f00cd3f..2ffa4ad 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,456 +1,69 @@ { "phase": "P4", - "current_unit": "P4-W03", - "activation_stage": 6, - "status": "W03 projection repair implemented; clean committed checkpoint validation pending", - "owner_authorization": "Approved Phase4 plan permits necessary repairs under original owner purpose. W07 continuation uncovered an existing W03 empty-trace projection defect. This commit is owned by W03 and retains W06 activation.", - "changes": [ - "Preserve a strictly empty completed typed-search trace in a scoped_no_witness Finding when no private Finding exists to carry it. Keep the original complete_trace kind, all empty arrays, null target and zero member_count.", - "All nonempty traces retain their original carrier requirements. Original analytical modules, schema, goldens, budgets, public APIs, W06 encoders and verification controls remain unchanged.", - "Add literal empty-seed acquisition regression and thirteen nonempty-field guards. Existing N02 tests unchanged." - ], - "changed_scope": [ - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "phase4/implementation_evidence.json" - ], - "source_basis": [ - "OBSERVABILITY_AND_REPORTING.md W4-10: empty seed inventory is zero; HHI and seed fractions unavailable for zero denominator.", - "OBSERVABILITY_AND_REPORTING.md section18.2: scoped_no_witness means a completed typed search found no eligible witness at its declared scope; no threat-family pass.", - "PHASE_4_PLAN.md section4.2 and W03: preserve all retained witness content in formal report homes without enhancing analytical conclusions.", - "OBSERVABILITY_AND_REPORTING.md section19.2: retained Result witness references point to Finding identities carrying the finite evidence." - ], - "diagnosis": { - "earlier_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", - "cause": "_assemble_witnesses delegated an empty complete_trace to _trace_home, which required an existing same-scope private Finding. Empty-seed completed analysis has no such private carrier.", - "w07_probe": "The same-invocation acquisition case reached real analysis success at 1899416 work units with17Findings/14WitnessRecords, then _trace_home raised _ReportContractError at2883337. W07 L13 reconciliation had not started.", - "scope": "A completed _reachable with empty starts produced an owner-retained complete_trace containing zero members, no target and all11member arrays empty." - }, - "validation": { - "status": "pending_after_real_W03_commit", - "planned_scope": "Complete tests/contract/test_report_assembly.py on this clean checkpoint; source hashes before/after, logs, JUnit and exit receipt retained externally.", - "no_claim": "No new full suite, hosted CI or W07/public delivery success claimed.", - "first_attempt": { - "head": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", - "actual": "68 passed, 1 failed, exit1, 230source hashes unchanged", - "reason": "The new test wrongly required unavailable ratios to carry the empty trace; original analytical Results attach that trace to M002/M007 counts/disclosures. Product projection already succeeded. Corrected only that expectation to the seven actual declared owner fields, retaining unavailable/null/zero_denominator checks.", - "raw_evidence": "External p4w07-w03-repair/focused-001.*" - } - }, + "current_unit": "P4-W07", + "activation_stage": 7, + "status": "W07 internal same-invocation composition implemented and locally verified by the recorded primary run and scoped constructor closure; published-head hosted verification remains pending", + "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", "previous_checkpoint": { "phase": "P4", - "current_unit": "P4-W06", - "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", - "owner_authorization": "User explicitly requested W06 continuation after W05 implementation. W06 only; required existing-unit verification repair remains separately W01-owned.", - "previous_checkpoint": { - "unit": "P4-W05", - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "tree": "60327a132ca62f444a132f42542fdbcb411f5357", - "hosted_failure": { - "run_id": 40192106767, - "run_attempt": 1, - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "status": "completed_failure", - "profiles": [ - { - "artifact_id": 12599033843, - "name": "phase3-windows-2025-py3.13-40192106767-1", - "sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", - "zip_bytes": 361675, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "2167.529", - "timestamp": "2026-10-25T12:14:11.583388+00:00", - "hostname": "runnervmdaln5" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)" - }, - { - "artifact_id": 12598913258, - "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", - "sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", - "zip_bytes": 354396, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "1707.237", - "timestamp": "2026-10-25T12:13:29.022234+00:00", - "hostname": "runnervmtai0g" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)" - }, - { - "artifact_id": 12598889077, - "name": "phase3-windows-2025-py3.11-40192106767-1", - "sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", - "zip_bytes": 361813, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "2216.425", - "timestamp": "2026-10-25T12:14:13.684890+00:00", - "hostname": "runnervmdaln5" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)" - }, - { - "artifact_id": 12598853369, - "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", - "sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", - "zip_bytes": 354373, - "raw_files": 48, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "2", - "skipped": "0", - "tests": "10407", - "time": "1530.030", - "timestamp": "2026-10-25T12:13:22.517483+00:00", - "hostname": "runnervmtai0g" - }, - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)" - } - ], - "cause": "Two V02 probes still treated reporting/json_report.py as an inert slot after W05 activated it. The guard correctly accepted the active implementation; the stale fixture expectations failed.", - "failure_identities": [ - "test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]" - ], - "scope": "All4 original48-file artifacts retained with verifiedZIPdigests; all9874 ordered collection identities and228sourcehashes agree. Eachprofile2failed/9872passed/533successfulsubtests, noerrors/skips/timeouts. This is failure diagnosis, not accepted hosted success." - } - }, - "inherited_W01_repair": { - "owner_unit": "P4-W01", - "activation_stage": 5, - "local_commit": "3525d294ac179e38948346188bd5e633a06b7a08", - "tree": "e9b8ac43fc5b1c167a82e39bb7b488e8eab6b046", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "change": "Only two inert-slot fixture path literals changed to permanently protected io/output_directory.py; original213orderedcases and assertions retained. No product, guard, workflow, scope or budget changes.", - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-002.xml" - ], - "head": "3525d294ac179e38948346188bd5e633a06b7a08", - "started_at_utc": "2026-10-25T16:34:38.526038+00:00", - "elapsed_seconds": 187.9850304490028, - "exit_code": 0, - "timed_out": false, - "incomplete": false, - "source_count": 228, - "source_unchanged": true, - "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." - }, - "junit": { - "summary": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "213", - "time": "187.770", - "timestamp": "2026-10-25T10:34:38.664925-06:00", - "hostname": "d6921570ec2c" - }, - "by_classname": { - "tests.contract.test_verification_boundary": 213 - } - }, - "source_files": 228, - "source_bytes_unchanged": true, - "initial_attempt": { - "evidence": "p4w06-w01-repair/focused-001.*", - "result": "184passed and29setup errors; current_unit_path_not_allowed correctly rejected uncommitted W01 edits on a W05-owned checkout. No guard override; repair committed under realW01ownership before successful run002." - } - }, + "current_unit": "P4-W03", + "activation_stage": 6, + "status": "W03 projection repair implemented; clean committed checkpoint validation pending", + "owner_authorization": "Approved Phase4 plan permits necessary repairs under original owner purpose. W07 continuation uncovered an existing W03 empty-trace projection defect. This commit is owned by W03 and retains W06 activation.", "changes": [ - { - "paths": [ - "P05", - "P07" - ], - "behavior": "Additive charged pretty-J and exact dynamic fence scan; complete fixed16-root Markdown layout, validated tool-controlled headings, complete Result and canonical Reason details, original fractions plus six-place half-up display, one final LF. Output directly shares one counted writer; no intermediate body outputcounter/reset." - }, - { - "paths": [ - "N05", - "N09", - "N10" - ], - "behavior": "Independent exact JSON/Markdown references and parse equality, substantive omission mutants, controls for source markup/backticks/controls/bidi and real fixedcounter framing/LF/stops. Old38 N10orderedcases and W05encoder functions remain." - } + "Preserve a strictly empty completed typed-search trace in a scoped_no_witness Finding when no private Finding exists to carry it. Keep the original complete_trace kind, all empty arrays, null target and zero member_count.", + "All nonempty traces retain their original carrier requirements. Original analytical modules, schema, goldens, budgets, public APIs, W06 encoders and verification controls remain unchanged.", + "Add literal empty-seed acquisition regression and thirteen nonempty-field guards. Existing N02 tests unchanged." ], - "changed_scope": { - "unit": "P4-W06", - "paths": [ - "src/source_integrity_toolkit/reporting/escaping.py", - "src/source_integrity_toolkit/reporting/markdown_report.py", - "tests/contract/test_report_parity.py", - "tests/security/test_rendering.py", - "tests/security/test_report_resource_limits.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "approved_ids": [ - "P05", - "P07", - "N05", - "N09", - "N10", - "D04", - "D05" - ], - "unchanged": "Plan, contract/schema, JSON renderer and prior escaping methods, independent goldens/fixtures, private analysis, public APIs, runtime boundary/resources, budgets, workflow/pins, version and module inventory. V02 changed only in inheritedW01repair." + "changed_scope": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "phase4/implementation_evidence.json" + ], + "source_basis": [ + "OBSERVABILITY_AND_REPORTING.md W4-10: empty seed inventory is zero; HHI and seed fractions unavailable for zero denominator.", + "OBSERVABILITY_AND_REPORTING.md section18.2: scoped_no_witness means a completed typed search found no eligible witness at its declared scope; no threat-family pass.", + "PHASE_4_PLAN.md section4.2 and W03: preserve all retained witness content in formal report homes without enhancing analytical conclusions.", + "OBSERVABILITY_AND_REPORTING.md section19.2: retained Result witness references point to Finding identities carrying the finite evidence." + ], + "diagnosis": { + "earlier_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "cause": "_assemble_witnesses delegated an empty complete_trace to _trace_home, which required an existing same-scope private Finding. Empty-seed completed analysis has no such private carrier.", + "w07_probe": "The same-invocation acquisition case reached real analysis success at 1899416 work units with17Findings/14WitnessRecords, then _trace_home raised _ReportContractError at2883337. W07 L13 reconciliation had not started.", + "scope": "A completed _reachable with empty starts produced an owner-retained complete_trace containing zero members, no target and all11member arrays empty." }, "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_parity.py", - "tests/security/test_rendering.py", - "tests/security/test_report_resource_limits.py", - "tests/contract/test_json_report.py", - "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-targeted-001.xml" - ], - "started_at_utc": "2026-10-25T16:36:25.533181+00:00", - "elapsed_seconds": 35.059611011995, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "base_head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "source_files": 230, - "source_bytes_unchanged": true, - "scope": "Five named W06 Markdown/parity/rendering/output and prior JSON/oracle files; not a full suite or W07 public invocation." - }, - "junit": { - "summary": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "341", - "time": "34.750", - "timestamp": "2026-10-25T10:36:25.718461-06:00", - "hostname": "d6921570ec2c" - }, - "by_classname": { - "tests.contract.test_report_parity": 30, - "tests.security.test_rendering": 26, - "tests.security.test_report_resource_limits": 48, - "tests.contract.test_json_report": 148, - "tests.contract.test_report_test_oracles": 89 - } - }, - "actual_test_nodes": { - "tests/contract/test_report_parity.py": [ - "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", - "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", - "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", - "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", - "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", - "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", - "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", - "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", - "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", - "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants" - ], - "tests/security/test_rendering.py": [ - "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", - "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", - "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", - "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", - "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", - "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" - ], - "tests/security/test_report_resource_limits.py": [ - "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", - "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", - "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", - "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", - "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", - "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", - "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", - "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", - "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", - "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", - "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", - "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", - "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", - "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", - "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", - "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", - "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", - "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", - "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" - ] - }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/escaping.py": { - "sha256": "c7219bd3e6d4b299574164522396065215933d140c3643a822c50df5bf1f018e", - "bytes": 17438 - }, - "src/source_integrity_toolkit/reporting/markdown_report.py": { - "sha256": "ae8eaa6ee6d1addc0df5ba294743a53703cbbd1014fc6f41e2ea759e48e170bc", - "bytes": 9019 - }, - "tests/contract/test_report_parity.py": { - "sha256": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", - "bytes": 21344 - }, - "tests/security/test_rendering.py": { - "sha256": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", - "bytes": 9553 - }, - "tests/security/test_report_resource_limits.py": { - "sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", - "bytes": 24878 - } - }, - "dual_renderer_probe": { - "exact_reference": true, - "markdown_bytes": 564555, - "json_bytes": 421307, - "markdown_sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", - "json_units": 3040258, - "markdown_units": 3982007, - "combined_units": 7022265, - "ledger_units": 7023292, - "output_counters": [ - 421307, - 564555 - ], - "elapsed_seconds": 2.2758739560013055, - "scope": "One real finalization ledger for both renderers; frozen input constructed separately; no W07 analysis/composition claim." - }, - "independent_review": { - "file": "p4w06-independent-review.json", - "sha256": "7004d007ece6a09ed8465107eed957e5f01ddc4af0aaffc70e595583867d0990", - "status": "passed_no_blocking_findings" - }, - "post_test_inheritance": { - "commit": "3525d294ac179e38948346188bd5e633a06b7a08", - "paths": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py" - ], - "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." - }, - "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." - }, - "package_boundary": { - "activation_stage": 6, - "checked_modules": 48, - "entry_byte_protected_modules": 39, - "issues": [], - "ok": true, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "reporting/escaping.py", - "reporting/json_report.py", - "reporting/markdown_report.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 14, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "evidence": "p4w06-rendering-001.*", - "result": "16passed/10failed new security assertions; exact output/parsing already correct.", - "cause": "Test expected3 canary-containing blocks but counted only whole-string matches and missed a prefixed diagnostic qualification.", - "repair": "Count retained canary substrings; no product/golden change. CorrectedN09has26passes and finalunified341passes." - }, - { - "evidence": "p4w06-w01-repair/focused-001.*", - "result": "184passed/29setup errors due to actualowner scope before W01commit; successfulcleanowner213case rerun retained separately." + "status": "pending_after_real_W03_commit", + "planned_scope": "Complete tests/contract/test_report_assembly.py on this clean checkpoint; source hashes before/after, logs, JUnit and exit receipt retained externally.", + "no_claim": "No new full suite, hosted CI or W07/public delivery success claimed.", + "first_attempt": { + "head": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "actual": "68 passed, 1 failed, exit1, 230source hashes unchanged", + "reason": "The new test wrongly required unavailable ratios to carry the empty trace; original analytical Results attach that trace to M002/M007 counts/disclosures. Product projection already succeeded. Corrected only that expectation to the seven actual declared owner fields, retaining unavailable/null/zero_denominator checks.", + "raw_evidence": "External p4w07-w03-repair/focused-001.*" } - ], - "remaining": [ - "W07 must prove the original same invocation ledger across capture, analysis, disclosure, assembly, both encodings and parity. The7022265-unit dual-renderer probe starts from a separately frozen document; it is not complete pipeline feasibility proof.", - "All228 public pipeline/rendering obligation rows remain pending; public API activation and complete AuditReport delivery remain later units.", - "File/native/CLI publication, merge and release remain deferred.", - "New hosted outcome is unknown in this pre-publication record and will be reflected in PR/external evidence." - ], - "historical_records": { - "preceding_W01_repair_record": { - "phase": "P4", - "current_unit": "P4-W01", - "delivery_unit": "P4-W05", - "activation_stage": 5, - "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", - "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", - "previous_checkpoint": { - "unit": "P4-W05", - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + }, + "previous_checkpoint": { + "phase": "P4", + "current_unit": "P4-W06", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W06 continuation after W05 implementation. W06 only; required existing-unit verification repair remains separately W01-owned.", + "previous_checkpoint": { + "unit": "P4-W05", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "hosted_failure": { "run_id": 40192106767, "run_attempt": 1, - "hosted_result": "completed/failure", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "status": "completed_failure", "profiles": [ { "artifact_id": 12599033843, "name": "phase3-windows-2025-py3.13-40192106767-1", + "sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "zip_bytes": 361675, "raw_files": 48, - "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", "junit": { "name": "pytest", "errors": "0", @@ -461,20 +74,14 @@ "timestamp": "2026-10-25T12:14:11.583388+00:00", "hostname": "runnervmdaln5" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)" }, { "artifact_id": 12598913258, "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "zip_bytes": 354396, "raw_files": 48, - "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", "junit": { "name": "pytest", "errors": "0", @@ -485,20 +92,14 @@ "timestamp": "2026-10-25T12:13:29.022234+00:00", "hostname": "runnervmtai0g" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)" }, { "artifact_id": 12598889077, "name": "phase3-windows-2025-py3.11-40192106767-1", + "sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "zip_bytes": 361813, "raw_files": 48, - "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", "junit": { "name": "pytest", "errors": "0", @@ -509,20 +110,14 @@ "timestamp": "2026-10-25T12:14:13.684890+00:00", "hostname": "runnervmdaln5" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)" }, { "artifact_id": 12598853369, "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "zip_bytes": 354373, "raw_files": 48, - "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", - "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", "junit": { "name": "pytest", "errors": "0", @@ -533,706 +128,442 @@ "timestamp": "2026-10-25T12:13:22.517483+00:00", "hostname": "runnervmtai0g" }, - "pytest_exit": { - "exit_code": 1, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - } + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)" } ], - "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + "cause": "Two V02 probes still treated reporting/json_report.py as an inert slot after W05 activated it. The guard correctly accepted the active implementation; the stale fixture expectations failed.", + "failure_identities": [ + "test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]" + ], + "scope": "All4 original48-file artifacts retained with verifiedZIPdigests; all9874 ordered collection identities and228sourcehashes agree. Eachprofile2failed/9872passed/533successfulsubtests, noerrors/skips/timeouts. This is failure diagnosis, not accepted hosted success." + } + }, + "inherited_W01_repair": { + "owner_unit": "P4-W01", + "activation_stage": 5, + "local_commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "tree": "e9b8ac43fc5b1c167a82e39bb7b488e8eab6b046", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "change": "Only two inert-slot fixture path literals changed to permanently protected io/output_directory.py; original213orderedcases and assertions retained. No product, guard, workflow, scope or budget changes.", + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-002.xml" + ], + "head": "3525d294ac179e38948346188bd5e633a06b7a08", + "started_at_utc": "2026-10-25T16:34:38.526038+00:00", + "elapsed_seconds": 187.9850304490028, + "exit_code": 0, + "timed_out": false, + "incomplete": false, + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." }, - "changes": [ - { - "path": "tests/contract/test_verification_boundary.py", - "owner": "P4-W01", - "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + "junit": { + "summary": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "213", + "time": "187.770", + "timestamp": "2026-10-25T10:34:38.664925-06:00", + "hostname": "d6921570ec2c" + }, + "by_classname": { + "tests.contract.test_verification_boundary": 213 } - ], - "changed_scope": [ - "tests/contract/test_verification_boundary.py", + }, + "source_files": 228, + "source_bytes_unchanged": true, + "initial_attempt": { + "evidence": "p4w06-w01-repair/focused-001.*", + "result": "184passed and29setup errors; current_unit_path_not_allowed correctly rejected uncommitted W01 edits on a W05-owned checkout. No guard override; repair committed under realW01ownership before successful run002." + } + }, + "changes": [ + { + "paths": [ + "P05", + "P07" + ], + "behavior": "Additive charged pretty-J and exact dynamic fence scan; complete fixed16-root Markdown layout, validated tool-controlled headings, complete Result and canonical Reason details, original fractions plus six-place half-up display, one final LF. Output directly shares one counted writer; no intermediate body outputcounter/reset." + }, + { + "paths": [ + "N05", + "N09", + "N10" + ], + "behavior": "Independent exact JSON/Markdown references and parse equality, substantive omission mutants, controls for source markup/backticks/controls/bidi and real fixedcounter framing/LF/stops. Old38 N10orderedcases and W05encoder functions remain." + } + ], + "changed_scope": { + "unit": "P4-W06", + "paths": [ + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/markdown_report.py", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "phase4/report_contract_coverage.json", "phase4/implementation_evidence.json" ], - "validation": { - "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", - "attempt_001": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" - ], - "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", - "started_at_utc": "2026-10-25T16:31:30.867435+00:00", - "elapsed_seconds": 111.38650181399862, - "exit_code": 1, - "timed_out": false, - "incomplete": false, - "source_count": 228, - "source_unchanged": true, - "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." - }, - "junit": { - "name": "pytest", - "errors": "29", - "failures": "0", - "skipped": "0", - "tests": "213", - "time": "111.175", - "timestamp": "2026-10-25T10:31:30.996027-06:00", - "hostname": "d6921570ec2c" - }, - "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", - "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." + "approved_ids": [ + "P05", + "P07", + "N05", + "N09", + "N10", + "D04", + "D05" + ], + "unchanged": "Plan, contract/schema, JSON renderer and prior escaping methods, independent goldens/fixtures, private analysis, public APIs, runtime boundary/resources, budgets, workflow/pins, version and module inventory. V02 changed only in inheritedW01repair." + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_parity.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T16:36:25.533181+00:00", + "elapsed_seconds": 35.059611011995, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "source_files": 230, + "source_bytes_unchanged": true, + "scope": "Five named W06 Markdown/parity/rendering/output and prior JSON/oracle files; not a full suite or W07 public invocation." + }, + "junit": { + "summary": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "341", + "time": "34.750", + "timestamp": "2026-10-25T10:36:25.718461-06:00", + "hostname": "d6921570ec2c" }, - "collection_preservation": { - "created_at_utc": "2026-10-25T16:32:15.236018+00:00", - "original_ordered_case_count": 213, - "current_ordered_case_count": 213, - "ordered_case_ids_identical": true, - "case_ids": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "changed_function": [ - "test_current_module_ceiling_and_protected_slots" - ], - "unchanged_other_top_level_definitions": 63, - "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", - "permanently_inactive_target": "io/output_directory.py", - "all_ten_activation_stages_keep_target_inactive": true, - "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + "by_classname": { + "tests.contract.test_report_parity": 30, + "tests.security.test_rendering": 26, + "tests.security.test_report_resource_limits": 48, + "tests.contract.test_json_report": 148, + "tests.contract.test_report_test_oracles": 89 + } + }, + "actual_test_nodes": { + "tests/contract/test_report_parity.py": [ + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants" + ], + "tests/security/test_rendering.py": [ + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + ], + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair" + ] + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "c7219bd3e6d4b299574164522396065215933d140c3643a822c50df5bf1f018e", + "bytes": 17438 + }, + "src/source_integrity_toolkit/reporting/markdown_report.py": { + "sha256": "ae8eaa6ee6d1addc0df5ba294743a53703cbbd1014fc6f41e2ea759e48e170bc", + "bytes": 9019 + }, + "tests/contract/test_report_parity.py": { + "sha256": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "bytes": 21344 + }, + "tests/security/test_rendering.py": { + "sha256": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "bytes": 9553 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", + "bytes": 24878 } }, - "failure_and_repair": { - "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", - "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", - "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + "dual_renderer_probe": { + "exact_reference": true, + "markdown_bytes": 564555, + "json_bytes": 421307, + "markdown_sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", + "json_units": 3040258, + "markdown_units": 3982007, + "combined_units": 7022265, + "ledger_units": 7023292, + "output_counters": [ + 421307, + 564555 + ], + "elapsed_seconds": 2.2758739560013055, + "scope": "One real finalization ledger for both renderers; frozen input constructed separately; no W07 analysis/composition claim." + }, + "independent_review": { + "file": "p4w06-independent-review.json", + "sha256": "7004d007ece6a09ed8465107eed957e5f01ddc4af0aaffc70e595583867d0990", + "status": "passed_no_blocking_findings" }, - "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", - "remaining": [ - "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", - "New hosted candidate outcome is pending.", - "W06 product work is separate and not included in this repair.", - "Whole-invocation integration, public delivery, merge and release remain pending." + "post_test_inheritance": { + "commit": "3525d294ac179e38948346188bd5e633a06b7a08", + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py" + ], + "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." + }, + "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." + }, + "package_boundary": { + "activation_stage": 6, + "checked_modules": 48, + "entry_byte_protected_modules": 39, + "issues": [], + "ok": true, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "reporting/markdown_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" ], - "historical_records": { - "P4-W05": { - "phase": "P4", - "current_unit": "P4-W05", - "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", - "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", - "previous_checkpoint": { - "unit": "P4-W04", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", - "hosted_status": { - "saved_at_utc": "2026-10-25T12:03:35.195Z", - "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "runs": { - "workflow_runs": [ - { - "id": 40175369945, - "name": "P1-W02 selected-toolchain verification", - "status": "completed", - "conclusion": "skipped", - "run_number": 92, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", - "workflow_id": 361073157 - }, - { - "id": 40175369950, - "name": "Current verification", - "status": "completed", - "conclusion": "success", - "run_number": 106, - "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", - "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", - "workflow_id": 361447276 - } - ] + "protected_modules": 14, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "evidence": "p4w06-rendering-001.*", + "result": "16passed/10failed new security assertions; exact output/parsing already correct.", + "cause": "Test expected3 canary-containing blocks but counted only whole-string matches and missed a prefixed diagnostic qualification.", + "repair": "Count retained canary substrings; no product/golden change. CorrectedN09has26passes and finalunified341passes." + }, + { + "evidence": "p4w06-w01-repair/focused-001.*", + "result": "184passed/29setup errors due to actualowner scope before W01commit; successfulcleanowner213case rerun retained separately." + } + ], + "remaining": [ + "W07 must prove the original same invocation ledger across capture, analysis, disclosure, assembly, both encodings and parity. The7022265-unit dual-renderer probe starts from a separately frozen document; it is not complete pipeline feasibility proof.", + "All228 public pipeline/rendering obligation rows remain pending; public API activation and complete AuditReport delivery remain later units.", + "File/native/CLI publication, merge and release remain deferred.", + "New hosted outcome is unknown in this pre-publication record and will be reflected in PR/external evidence." + ], + "historical_records": { + "preceding_W01_repair_record": { + "phase": "P4", + "current_unit": "P4-W01", + "delivery_unit": "P4-W05", + "activation_stage": 5, + "status": "W01-owned V02 fixture repair implemented; clean committed-checkpoint validation pending", + "owner_authorization": "The approved repair-to-owning-unit rule is applied during the user-authorized W06 continuation; no new product behavior or permissions are added.", + "previous_checkpoint": { + "unit": "P4-W05", + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "tree": "60327a132ca62f444a132f42542fdbcb411f5357", + "run_id": 40192106767, + "run_attempt": 1, + "hosted_result": "completed/failure", + "profiles": [ + { + "artifact_id": 12599033843, + "name": "phase3-windows-2025-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "1064a02094c97db32095e2a80d67b088277b6e3c5a7a09d9dfd5227cb7425156", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2167.61s (0:36:07)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2167.529", + "timestamp": "2026-10-25T12:14:11.583388+00:00", + "hostname": "runnervmdaln5" }, - "jobs": { - "jobs": [ - { - "id": 121114762732, - "name": "analytical core (windows-2025, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762895, - "name": "analytical core (ubuntu-24.04, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762924, - "name": "analytical core (ubuntu-24.04, Python 3.13)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - }, - { - "id": 121114762983, - "name": "analytical core (windows-2025, Python 3.11)", - "status": "completed", - "conclusion": "success", - "run_id": 40175369950, - "logs_url": null, - "steps": [ - { - "name": "Set up job", - "status": "completed", - "conclusion": "success", - "number": 1 - }, - { - "name": "Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 2 - }, - { - "name": "Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 3 - }, - { - "name": "Check actual event, checkout, history and risk", - "status": "completed", - "conclusion": "success", - "number": 4 - }, - { - "name": "Prepare pinned tools for the recorded verification scope", - "status": "completed", - "conclusion": "success", - "number": 5 - }, - { - "name": "Run the recorded scope, including all five test directories when full", - "status": "completed", - "conclusion": "success", - "number": 6 - }, - { - "name": "Reconcile identities, installed witnesses and failure evidence", - "status": "completed", - "conclusion": "success", - "number": 7 - }, - { - "name": "Preserve verification records only", - "status": "completed", - "conclusion": "success", - "number": 8 - }, - { - "name": "Post Select reviewed CPython minor", - "status": "completed", - "conclusion": "success", - "number": 15 - }, - { - "name": "Post Checkout exact candidate without stored credentials", - "status": "completed", - "conclusion": "success", - "number": 16 - }, - { - "name": "Complete job", - "status": "completed", - "conclusion": "success", - "number": 17 - } - ] - } - ] - }, - "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, - "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." - }, - "changes": [ { - "paths": [ - "P05", - "P06" - ], - "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." + "artifact_id": 12598913258, + "name": "phase3-ubuntu-24.04-py3.13-40192106767-1", + "raw_files": 48, + "zip_sha256": "5b3c1531e94674361b6a02bd5d067dbe9ed338635c437e690864c98117a39b39", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1707.29s (0:28:27)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1707.237", + "timestamp": "2026-10-25T12:13:29.022234+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, { - "paths": [ - "P02", - "P08", - "P09" - ], - "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." + "artifact_id": 12598889077, + "name": "phase3-windows-2025-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "97dfb720cfd52b7d9b9f97e636caf035d122f3f1274e5c3797ebb613ee56ad28", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 2216.52s (0:36:56)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "2216.425", + "timestamp": "2026-10-25T12:14:13.684890+00:00", + "hostname": "runnervmdaln5" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } }, { - "paths": [ - "N04", - "N10" - ], - "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + "artifact_id": 12598853369, + "name": "phase3-ubuntu-24.04-py3.11-40192106767-1", + "raw_files": 48, + "zip_sha256": "d7a91254af75fda9536c7ebc878e23aa6d13fc0b6abb7053086e509e9dddb223", + "pytest_summary": "2 failed, 9872 passed, 533 subtests passed in 1530.09s (0:25:30)", + "junit": { + "name": "pytest", + "errors": "0", + "failures": "2", + "skipped": "0", + "tests": "10407", + "time": "1530.030", + "timestamp": "2026-10-25T12:13:22.517483+00:00", + "hostname": "runnervmtai0g" + }, + "pytest_exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + } } ], - "changed_scope": { - "unit": "P4-W05", - "paths": [ - "src/source_integrity_toolkit/contracts/execution.py", - "src/source_integrity_toolkit/reporting/escaping.py", - "src/source_integrity_toolkit/reporting/json_report.py", - "src/source_integrity_toolkit/runtime/resources.py", - "src/source_integrity_toolkit/runtime/diagnostics.py", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "approved_ids": [ - "P02", - "P05", - "P06", - "P08", - "P09", - "N04", - "N10", - "D04", - "D05" - ], - "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." - }, - "validation": { + "scope": "All four original raw artifacts were read for binding, JUnit, failure and exit status. Each has the same two failures, no timeout/error/skip,9872passes plus533successful subtests. No hosted pass or final phase acceptance." + }, + "changes": [ + { + "path": "tests/contract/test_verification_boundary.py", + "owner": "P4-W01", + "behavior": "Retarget only protected and inert_size negative fixture paths from stage5-active reporting/json_report.py to permanently inactive io/output_directory.py. Exact case IDs, parameter matrix, assertions and all other test functions remain." + } + ], + "changed_scope": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" + ], + "validation": { + "state": "pending clean committed W01 owner checkpoint; prior working-copy execution is not a pass", + "attempt_001": { "execution": { "command": [ "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", @@ -1240,2469 +571,5527 @@ "-m", "pytest", "-q", - "tests/contract/test_json_report.py", - "tests/security/test_report_resource_limits.py", - "tests/contract/test_report_test_oracles.py", - "tests/security/test_input_resource_limits.py", - "tests/security/test_analytical_resource_limits.py", - "tests/security/test_input_diagnostics.py", - "tests/security/test_analytical_diagnostics.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" + "tests/contract/test_verification_boundary.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w06-w01-repair/focused-001.xml" ], - "started_at_utc": "2026-10-25T12:07:49.098267+00:00", - "elapsed_seconds": 10.06384003399944, - "exit_code": 0, - "timeout_seconds": 900, + "head": "98dd68b71f84dad3286355dfdb05d528f3bcfab1", + "started_at_utc": "2026-10-25T16:31:30.867435+00:00", + "elapsed_seconds": 111.38650181399862, + "exit_code": 1, "timed_out": false, - "interrupted": false, "incomplete": false, - "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", - "source_files": 228, - "source_bytes_unchanged": true, - "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." + "source_count": 228, + "source_unchanged": true, + "scope": "Complete existing V02 file for two fixture retargets; no product, guard, workflow or budget change; no whole-suite or hosted-pass claim." }, "junit": { "name": "pytest", - "errors": "0", + "errors": "29", "failures": "0", "skipped": "0", - "tests": "432", - "time": "9.770", - "timestamp": "2026-10-25T06:07:49.242461-06:00", + "tests": "213", + "time": "111.175", + "timestamp": "2026-10-25T10:31:30.996027-06:00", "hostname": "d6921570ec2c" }, - "cases_by_classname": { - "tests.contract.test_json_report": 148, - "tests.security.test_report_resource_limits": 38, - "tests.contract.test_report_test_oracles": 89, - "tests.security.test_input_resource_limits": 36, - "tests.security.test_analytical_resource_limits": 60, - "tests.security.test_input_diagnostics": 32, - "tests.security.test_analytical_diagnostics": 29 - }, - "tested_product_and_test_bytes": { - "src/source_integrity_toolkit/contracts/execution.py": { - "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", - "bytes": 11231 - }, - "src/source_integrity_toolkit/reporting/escaping.py": { - "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", - "bytes": 10969 - }, - "src/source_integrity_toolkit/reporting/json_report.py": { - "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", - "bytes": 1064 - }, - "src/source_integrity_toolkit/runtime/resources.py": { - "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", - "bytes": 16699 - }, - "src/source_integrity_toolkit/runtime/diagnostics.py": { - "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", - "bytes": 9437 - }, - "tests/contract/test_json_report.py": { - "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", - "bytes": 10790 - }, - "tests/security/test_report_resource_limits.py": { - "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", - "bytes": 16947 - } - }, - "actual_test_nodes": { - "tests/contract/test_json_report.py": [ - "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", - "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", - "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", - "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", - "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", - "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", - "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", - "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", - "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", - "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", - "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", - "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" - ], - "tests/security/test_report_resource_limits.py": [ - "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", - "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", - "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", - "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", - "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", - "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", - "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", - "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", - "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", - "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", - "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", - "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", - "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", - "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" - ] - }, - "reference_probe": { - "exact_reference": true, - "bytes": 421307, - "assembly_units": 6740573, - "encoder_units": 2768497, - "total_units": 9509070, - "output": { - "json": 421307, - "markdown": 0 - }, - "elapsed_seconds": 3.0059238750000077, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "independent_review": { - "status": "passed_no_blocking_findings", - "file": "p4w05-independent-review.json", - "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" - }, - "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." + "result": "184passed and29setup errors, no test failures. current_stage fixture correctly rejected uncommitted W01-only V02 changes while actual HEAD was owned by W05.", + "next_action": "Commit the authorized W01 repair, preserve stage5, and run the complete V02 file against that real clean checkpoint. No policy bypass or contextual override." }, - "package_boundary": { - "activation_stage": 5, - "checked_modules": 48, - "entry_byte_protected_modules": 40, - "issues": [], - "ok": true, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "reporting/escaping.py", - "reporting/json_report.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" + "collection_preservation": { + "created_at_utc": "2026-10-25T16:32:15.236018+00:00", + "original_ordered_case_count": 213, + "current_ordered_case_count": 213, + "ordered_case_ids_identical": true, + "case_ids": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" ], - "protected_modules": 15, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "evidence": "p4w05-json-001.log/.xml/-execution.json", - "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", - "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", - "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." - } - ], - "remaining": [ - "W06 Markdown and substantive parity are not started.", - "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", - "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", - "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", - "File/CLI/native publication, merge and release remain deferred.", - "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." - ], - "historical_records": { - "P4-W04": { - "phase": "P4", - "current_unit": "P4-W04", - "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", - "owner_authorization": { - "instruction": "W04继续", - "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "W03_local_targeted_tests": 5982, - "hosted_result": { - "run_id": 40170942968, - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "attempt": 1, - "run_status": "completed", - "run_conclusion": "failure", - "failed_profile": { - "matrix": "windows-2025 / Python 3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "artifact_bytes": 244690, - "raw_files": 47, - "pytest_exit": { - "error_type": "TimeoutExpired", - "exit_code": null, - "incomplete": true, - "interrupted": false, - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "timed_out": true, - "timeout_seconds": 2400 - }, - "test_failure": { - "error_type": "TimeoutExpired", - "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", - "stage": "test" - }, - "evidence_failure": { - "error_type": "ValueError", - "message": "earlier_stage_failed", - "stage": "evidence" - }, - "collection_count": 9653, - "junit_present": false, - "test_record_present": false, - "source_after_present": false, - "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." - }, - "comparison_profile": { - "matrix": "windows-2025 / Python 3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "artifact_bytes": 363913, - "pytest_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 2400 - }, - "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", - "timing": "windows313-timing-focused.json", - "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." - }, - "diagnostic_profile": "guard-single-call-profile.json", - "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", - "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" - }, - "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." - }, - "inherited_W01_repair": { - "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", - "owner": "P4-W01", - "activation_stage": 3, - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_verification_boundary.py", - "tests/scaffold/test_imports.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_module_manifest.py", - "tests/security/test_preparation_inertness.py", - "tests/scaffold/test_ci_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" - ], - "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "started_at_utc": "2026-10-25T07:57:05.151778+00:00", - "elapsed_seconds": 259.7052340929986, - "exit_code": 0, - "timeout_seconds": 1200, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_count": 224, - "source_hashes_unchanged": true, - "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "576", - "time": "259.471", - "timestamp": "2026-10-25T01:57:05.272902-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_verification_boundary": 213, - "tests.scaffold.test_imports": 50, - "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, - "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, - "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, - "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, - "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, - "tests.security.test_preparation_inertness": 39, - "tests.scaffold.test_ci_contract.CiContractTests": 14, - "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, - "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 - }, - "collection_preservation": { - "before_exit": 0, - "after_exit": 0, - "before_count": 211, - "after_count": 213, - "original_211_ordered_cases_unchanged": true, - "added": [ - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ], - "before_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" - ], - "after_nodes": [ - "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", - "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", - "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", - "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", - "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", - "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", - "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", - "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", - "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", - "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", - "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", - "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", - "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", - "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", - "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", - "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", - "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", - "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", - "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", - "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", - "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", - "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", - "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", - "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", - "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", - "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", - "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", - "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", - "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", - "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", - "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", - "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" - ] - }, - "same_source_timing": { - "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", - "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", - "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "module_sha256": { - "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", - "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", - "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", - "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", - "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", - "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", - "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", - "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", - "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", - "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", - "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", - "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", - "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", - "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", - "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", - "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", - "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", - "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", - "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", - "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", - "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", - "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", - "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", - "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", - "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", - "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", - "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", - "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", - "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", - "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", - "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", - "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", - "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", - "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", - "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", - "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", - "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", - "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", - "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", - "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", - "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", - "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", - "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", - "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", - "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", - "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", - "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", - "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" - }, - "guard_sha256": { - "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", - "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" - }, - "seconds": { - "before": [ - 1.170046082999761, - 1.182108517998131, - 1.114261736998742 - ], - "after": [ - 0.6021103010025399, - 0.5637806820013793, - 0.5558995499995945 - ] - }, - "median_seconds": { - "before": 1.170046082999761, - "after": 0.5637806820013793 - }, - "same_empty_issues": { - "before": [], - "after": [] - }, - "after_parse_counts": { - "current_module_issues": 48, - "_phase2_layer_issues": 18, - "executable_ast": 36 - } - }, - "raw_directory": "p4w04-w01-repair", - "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." - }, - "changes": [ - "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", - "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", - "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", - "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", - "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." - ], - "changed_scope": { - "W04": [ - "src/source_integrity_toolkit/reporting/assemble.py", - "src/source_integrity_toolkit/runtime/disclosure.py", - "tests/contract/test_report_assembly.py", - "tests/security/test_report_disclosure.py", - "tests/fixtures/adversarial/phase4_report_cases.json", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "separate_W01": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" - ], - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/security/test_report_disclosure.py", - "tests/contract/test_report_test_oracles.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" - ], - "started_at_utc": "2026-10-25T07:57:29.452245+00:00", - "elapsed_seconds": 73.28405752199978, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "source_files": 226, - "source_bytes_unchanged": true, - "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." - }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "186", - "time": "73.047", - "timestamp": "2026-10-25T01:57:29.593002-06:00", - "hostname": "d6921570ec2c" - }, - "cases_by_classname": { - "tests.contract.test_report_assembly": 55, - "tests.contract.test_report_identity": 16, - "tests.security.test_report_disclosure": 26, - "tests.contract.test_report_test_oracles": 89 - }, - "final_product_and_test_bytes": { - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58955, - "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" - }, - "src/source_integrity_toolkit/runtime/disclosure.py": { - "bytes": 38666, - "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 71321, - "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" - }, - "tests/security/test_report_disclosure.py": { - "bytes": 16111, - "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" - }, - "tests/fixtures/adversarial/phase4_report_cases.json": { - "bytes": 64693, - "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" - } - }, - "post_test_inheritance": { - "paths": [ - "phase4/implementation_evidence.json", - "tests/contract/test_verification_boundary.py", - "tools/check_scaffold_boundary.py" - ], - "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", - "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." - } - }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 4, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/disclosure.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 17, - "entry_byte_protected_modules": 44, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" - }, - "failures_and_repairs": [ - { - "failure": "Initial product reference differed only in the set order of Finding input references.", - "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", - "raw": "p4w04-product-reference-01" - }, - { - "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", - "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", - "raw": [ - "p4w04-security-001", - "p4w04-product-frontier-01" - ] - }, - { - "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", - "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", - "raw": [ - "p4w04-correction-home-diagnosis.json", - "p4w04-security-001", - "p4w04-security-002" - ] - }, - { - "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", - "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", - "raw": [ - "p4w04-n02-full-01", - "p4w04-scan-fixture-trace-01", - "p4w04-security-001" - ] - } - ], - "remaining": { - "W05_W06": "JSON and Markdown product encoders pending", - "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", - "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", - "W09_W10": "Full public obligation execution and final phase acceptance pending", - "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", - "file_native_cli_release": "Deferred" - }, - "historical_records": [ - { - "phase": "P4", - "current_unit": "P4-W03", - "active_repair_owner_unit": "P4-W01", - "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", - "owner_authorization": { - "instruction": "W04继续", - "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", - "owner_unit": "P4-W01", - "activation_stage": 3, - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." - }, - "previous_checkpoint": { - "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", - "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", - "local_targeted_tests": 5982, - "hosted_run": 40170942968, - "attempt": 1, - "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." - }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 - }, - "failure_diagnosis": { - "failed_profile": "windows-2025 Python3.11", - "job_id": 121101460187, - "artifact_id": 12591625367, - "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", - "raw_files": 47, - "pytest": { - "exit_code": null, - "error_type": "TimeoutExpired", - "timeout_seconds": 2400, - "timed_out": true, - "incomplete": true, - "junit_present": false - }, - "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", - "comparison": { - "profile": "windows-2025 Python3.13", - "artifact_id": 12591237206, - "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", - "passed_tests": 9653, - "successful_subtests": 533, - "pytest_seconds": 2397.33, - "junit_seconds": 2397.258, - "testcase_seconds": 2388.211, - "V02_seconds": 668.918, - "largest_V02_case_seconds": 145.581, - "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." - }, - "raw_directory": "p4w04-prior-ci-diagnosis", - "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." - }, - "changes": [ - { - "path": "tools/check_scaffold_boundary.py", - "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." - }, + "changed_function": [ + "test_current_module_ceiling_and_protected_slots" + ], + "unchanged_other_top_level_definitions": 63, + "exact_edit": "Only two existing fixture path string literals replaced reporting/json_report.py with io/output_directory.py. All assertions and parameter IDs unchanged.", + "permanently_inactive_target": "io/output_directory.py", + "all_ten_activation_stages_keep_target_inactive": true, + "guard_sha256": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + } + }, + "failure_and_repair": { + "cause": "Two V02 inert-slot fixtures target reporting/json_report.py, correctly active from stage5. Their expected non_scaffold_body and16KiB inert_size errors therefore no longer apply to that path. Guard correctly accepts those mutations under active-module rules.", + "repair": "W01-owned V02 fixture targets only: use permanently inactive io/output_directory.py for protected and inert_size cases. Preserve IDs and assertions, rule and budget bytes. D05 records actual failure and validation.", + "retained_evidence": "p4w06-prior-ci contains all4 original ZIPs, matching digests, extracted48-file records perprofile and decoded job logs." + }, + "unchanged": "V01 guard policy/implementation, every product path, workflow, pins, budgets, source/specification, all213ordered V02case IDs and assertions, other tests.", + "remaining": [ + "Complete V02 validation on this actual W01-owned/stage5 checkpoint remains pending.", + "New hosted candidate outcome is pending.", + "W06 product work is separate and not included in this repair.", + "Whole-invocation integration, public delivery, merge and release remain pending." + ], + "historical_records": { + "P4-W05": { + "phase": "P4", + "current_unit": "P4-W05", + "status": "implemented_and_locally_verified_internal_checkpoint; new hosted candidate pending", + "owner_authorization": "User explicitly requested W05 continuation after the missing prerequisite was identified. Only W05 is started in this checkpoint.", + "previous_checkpoint": { + "unit": "P4-W04", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "tree": "f3c5754321a17c4a7ee6971fa13e406846394a78", + "hosted_status": { + "saved_at_utc": "2026-10-25T12:03:35.195Z", + "head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "runs": { + "workflow_runs": [ { - "path": "tests/contract/test_verification_boundary.py", - "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + "id": 40175369945, + "name": "P1-W02 selected-toolchain verification", + "status": "completed", + "conclusion": "skipped", + "run_number": 92, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369945/logs", + "workflow_id": 361073157 }, { - "path": "phase4/implementation_evidence.json", - "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + "id": 40175369950, + "name": "Current verification", + "status": "completed", + "conclusion": "success", + "run_number": 106, + "jobs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/jobs", + "logs_url": "https://api.github.com/repos/DavidWallstructurallaw/source-integrity-toolkit/actions/runs/40175369950/logs", + "workflow_id": 361447276 } - ], - "preserved_guarantees": [ - "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", - "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", - "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", - "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", - "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." - ], - "validation": { - "state": "pending after this locally reviewable commit", - "original_V02_definitions": 62, - "changed_existing_V02_definitions": [], - "added_V02_tests": [ - "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", - "test_current_source_checks_parse_fresh_after_mutation_and_restoration" - ], - "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." - }, - "historical_records": [ + ] + }, + "jobs": { + "jobs": [ { - "phase": "P4", - "current_unit": "P4-W03", - "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", - "owner_authorization": { - "instruction": "很好,继续 W03", - "scope": "P4-W03 only; no W04+, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 - }, - "previous_checkpoint": { - "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", - "tree": "82265150e952099466d7cbd5f49f03260a857538", - "hosted_run": 38682280459, - "attempt": 1, - "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", - "per_profile_tests": 9589, - "per_profile_successful_subtests": 533, - "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." - }, - "changes": [ - "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", - "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", - "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", - "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", - "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." - ], - "changed_scope": { - "paths": [ - "src/source_integrity_toolkit/contracts/report.py", - "src/source_integrity_toolkit/reporting/assemble.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "phase4/report_contract_coverage.json", - "phase4/implementation_evidence.json" - ], - "all_other_baseline_files_unchanged": true, - "new_tests": "N02 and N03; no original tests removed, disabled or weakened", - "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" - }, - "validation": { - "execution": { - "command": [ - "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", - "-B", - "-m", - "pytest", - "-q", - "tests/contract/test_report_contract.py", - "tests/contract/test_report_assembly.py", - "tests/contract/test_report_identity.py", - "tests/contract/test_report_test_oracles.py", - "tests/contract/test_result_contract.py", - "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" - ], - "started_at_utc": "2026-10-25T06:53:28.806620+00:00", - "elapsed_seconds": 71.38994021100007, - "exit_code": 0, - "timeout_seconds": 900, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files": 224, - "source_bytes_unchanged": true, - "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." + "id": 121114762732, + "name": "analytical core (windows-2025, Python 3.13)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "5982", - "time": "70.779", - "timestamp": "2026-10-25T00:53:28.931807-06:00", - "hostname": "d6921570ec2c" + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 }, - "cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_assembly": 48, - "tests.contract.test_report_identity": 16, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_result_contract": 104 + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 }, - "raw": { - "p4w03-targeted-002.log": { - "bytes": 6752, - "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" - }, - "p4w03-targeted-002-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w03-targeted-002.xml": { - "bytes": 1097486, - "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" - }, - "p4w03-targeted-002-exit.json": { - "bytes": 807, - "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" - }, - "p4w03-targeted-002-source-before.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-targeted-002-source-after.json": { - "bytes": 24654, - "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" - }, - "p4w03-package-boundary-final.json": { - "bytes": 1177, - "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" - } + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 }, - "legacy_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "accepted_private_core": { - "existing_definitions": 46, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 72, - "changed_definitions": [ - "_report_matches", - "_report_schema", - "_report_shape", - "_report_semantics" - ] - } - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "accepted_private_core": { - "existing_definitions": 0, - "changed_definitions": [] - }, - "accepted_W02": { - "existing_definitions": 0, - "changed_definitions": [] - } - } + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 }, - "products_and_new_tests": { - "src/source_integrity_toolkit/contracts/report.py": { - "bytes": 252463, - "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" - }, - "src/source_integrity_toolkit/reporting/assemble.py": { - "bytes": 58453, - "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" - }, - "tests/contract/test_report_assembly.py": { - "bytes": 61053, - "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" - }, - "tests/contract/test_report_identity.py": { - "bytes": 29285, - "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" - } + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 }, - "package_boundary": { - "ok": true, - "checked_modules": 48, - "issues": [], - "activation_stage": 3, - "promoted_modules": [ - "analysis/context.py", - "analysis/contribution_profile.py", - "analysis/correction_outcomes.py", - "analysis/correction_routes.py", - "analysis/evaluator_lineage.py", - "analysis/findings.py", - "analysis/human_review.py", - "analysis/inventory.py", - "analysis/origins.py", - "analysis/presence.py", - "analysis/process_comparison.py", - "contracts/bundle.py", - "contracts/constants.py", - "contracts/evidence.py", - "contracts/execution.py", - "contracts/report.py", - "contracts/results.py", - "graph/cycles.py", - "graph/projections.py", - "graph/traversal.py", - "graph/witnesses.py", - "io/input_file.py", - "reporting/assemble.py", - "runtime/boundary.py", - "runtime/diagnostics.py", - "runtime/resources.py", - "validation/limits.py", - "validation/references.py", - "validation/semantics.py", - "validation/structure.py" - ], - "protected_modules": 18, - "entry_byte_protected_modules": 45, - "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 }, - "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." - }, - "failures_and_repairs": [ { - "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", - "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", - "raw": [ - "p4w03-n02-reference-initial", - "p4w03-n02-reference-inquiries-08", - "p4w03-identity-001", - "p4w03-identity-002" - ] + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 }, { - "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", - "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", - "raw": [ - "p4w03-n02-reference-02", - "p4w03-n02-reference-04", - "p4w03-n02-reference-05", - "p4w03-n02-bounded-stage-profile-01.json", - "p4w03-n02-bounded-stage-profile-02.json" - ] + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 }, { - "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", - "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", - "raw": [ - "p4w03-n02-reference-diff-06.json", - "p4w03-n02-reference-diff-09.json", - "p4w03-n02-reference-twohop-10" - ] + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 }, { - "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", - "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", - "raw": [ - "p4w03-identity-003" - ] + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762895, + "name": "analytical core (ubuntu-24.04, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 }, { - "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", - "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", - "raw": [ - "p4w03-n02-reference-inquiries-twohop-09" - ] + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 }, { - "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", - "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", - "raw": [ - "p4w03-n02-reference-diagnostic-03", - "p4w03-identity-small-001", - "p4w03-identity-scope-004", - "p4w03-targeted-001" - ] - } - ], - "remaining": { - "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", - "W05_W06": "Product JSON/Markdown renderers pending.", - "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", - "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", - "W09_W10": "Full public obligation matrix and final phase acceptance pending.", - "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." - }, - "historical_records": [ + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, { - "phase": "P4", - "current_unit": "P4-W02", - "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", - "owner_authorization": { - "instruction": "启动 P4-W02", - "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" - }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" - ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 - }, - "previous_checkpoint": { - "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", - "hosted_run": 38536145728, - "attempt": 1, - "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", - "per_profile_tests": 3774, - "per_profile_successful_subtests": 533, - "per_profile_junit_total": 4307, - "per_profile_test_files": 73, - "raw_exit_receipts_per_profile": 12, - "tracked_source_hashes_per_profile": 215, - "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", - "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." - }, - "changes": [ - "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", - "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", - "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", - "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", - "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", - "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." - ], - "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", - "guarantee_migrations": [ - { - "path": "tests/contract/test_input_schema_mapping.py", - "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." - }, - { - "path": "tests/scaffold/test_contract_catalogs.py", - "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." - }, - { - "path": "tests/contract/test_verification_boundary.py", - "owner_unit": "P4-W01", - "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." - } - ], - "validation": { - "targeted_final": { - "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", - "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "pytest_tests": 6217, - "successful_subtests": 12, - "pytest_seconds": 83.33, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "83.292", - "timestamp": "2026-10-14T20:32:28.623669-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "same_ordered_test_identities_as_combined_02": true, - "raw": { - "p4w02-targeted-combined-03-source-after.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-03.log": { - "bytes": 6992, - "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" - }, - "p4w02-targeted-combined-03-exit.json": { - "bytes": 792, - "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" - }, - "p4w02-targeted-combined-03-source-before.json": { - "bytes": 24430, - "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" - }, - "p4w02-targeted-combined-03.xml": { - "bytes": 1134879, - "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - } + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762924, + "name": "analytical core (ubuntu-24.04, Python 3.13)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + }, + { + "id": 121114762983, + "name": "analytical core (windows-2025, Python 3.11)", + "status": "completed", + "conclusion": "success", + "run_id": 40175369950, + "logs_url": null, + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1 + }, + { + "name": "Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 2 + }, + { + "name": "Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 3 + }, + { + "name": "Check actual event, checkout, history and risk", + "status": "completed", + "conclusion": "success", + "number": 4 + }, + { + "name": "Prepare pinned tools for the recorded verification scope", + "status": "completed", + "conclusion": "success", + "number": 5 + }, + { + "name": "Run the recorded scope, including all five test directories when full", + "status": "completed", + "conclusion": "success", + "number": 6 + }, + { + "name": "Reconcile identities, installed witnesses and failure evidence", + "status": "completed", + "conclusion": "success", + "number": 7 + }, + { + "name": "Preserve verification records only", + "status": "completed", + "conclusion": "success", + "number": 8 + }, + { + "name": "Post Select reviewed CPython minor", + "status": "completed", + "conclusion": "success", + "number": 15 + }, + { + "name": "Post Checkout exact candidate without stored credentials", + "status": "completed", + "conclusion": "success", + "number": 16 + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17 + } + ] + } + ] + }, + "scope": "Exact-head GitHub API run/job completion status only. Four profiles succeeded; this record does not claim a new complete raw-artifact audit." + }, + "meaning": "The prior pending API run is now completed/success in all four profiles. This closes its running-status note, not a new complete raw-artifact audit." + }, + "changes": [ + { + "paths": [ + "P05", + "P06" + ], + "behavior": "Explicit-stack J encoding for project-held frozen values, charged stable Unicode scalar key sorting, exact portable integers/private numeric atoms, control escapes and UTF8, original rational components and ordered arrays; report adds exactly one LF under the same byte cap." + }, + { + "paths": [ + "P02", + "P08", + "P09" + ], + "behavior": "Narrow report-encoding capability over an existing authenticated finalizer; original ledger/deadline/reserve unchanged. Separate fixed output counters, prospective L14, first established stop retained, safe fixed abort/cancel mapping; old private helpers preserved." + }, + { + "paths": [ + "N04", + "N10" + ], + "behavior": "Independent reference byte equality and literal scalar/hostile controls; real cap counters and remaining-space +/-1 tests, LF boundary, interrupted output, work/time/failure/cancellation and port identity." + } + ], + "changed_scope": { + "unit": "P4-W05", + "paths": [ + "src/source_integrity_toolkit/contracts/execution.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/json_report.py", + "src/source_integrity_toolkit/runtime/resources.py", + "src/source_integrity_toolkit/runtime/diagnostics.py", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "approved_ids": [ + "P02", + "P05", + "P06", + "P08", + "P09", + "N04", + "N10", + "D04", + "D05" + ], + "unchanged": "Plan, P01 report/schema, N16/N17/N18 independent fixtures/goldens, all old tests, analytical/source semantics, public APIs, Markdown, runtime boundary, budget values, workflow/pins, version and module inventory." + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_json_report.py", + "tests/security/test_report_resource_limits.py", + "tests/contract/test_report_test_oracles.py", + "tests/security/test_input_resource_limits.py", + "tests/security/test_analytical_resource_limits.py", + "tests/security/test_input_diagnostics.py", + "tests/security/test_analytical_diagnostics.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w05-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T12:07:49.098267+00:00", + "elapsed_seconds": 10.06384003399944, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "dfbbbac7a187cbb7a37d775ea7fbc786b82d1110", + "source_files": 228, + "source_bytes_unchanged": true, + "scope": "Seven named W05 JSON/output boundary and prior private resource/diagnostic/oracle files; not a whole suite, installed witness, or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "432", + "time": "9.770", + "timestamp": "2026-10-25T06:07:49.242461-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_json_report": 148, + "tests.security.test_report_resource_limits": 38, + "tests.contract.test_report_test_oracles": 89, + "tests.security.test_input_resource_limits": 36, + "tests.security.test_analytical_resource_limits": 60, + "tests.security.test_input_diagnostics": 32, + "tests.security.test_analytical_diagnostics": 29 + }, + "tested_product_and_test_bytes": { + "src/source_integrity_toolkit/contracts/execution.py": { + "sha256": "54d861f22b787ac2530d4f1efaef92d846a94e462b81465e81c103c3b1e0d735", + "bytes": 11231 + }, + "src/source_integrity_toolkit/reporting/escaping.py": { + "sha256": "8c47f867653aa28277d063fdb40f872475ddb1f14f7d368b1106940405820b22", + "bytes": 10969 + }, + "src/source_integrity_toolkit/reporting/json_report.py": { + "sha256": "a7d07c8ad10c2b501518c2ec6314d82e12a03256e32cc3c7f6ca4560869f2eba", + "bytes": 1064 + }, + "src/source_integrity_toolkit/runtime/resources.py": { + "sha256": "118d735face412cefc8bb37ebcf1962966fa774313904809d8c5a7528f21a6f3", + "bytes": 16699 + }, + "src/source_integrity_toolkit/runtime/diagnostics.py": { + "sha256": "52534edea796e1bd091cff2fabb297dde1cadd3a1ae20f93e036955b7913b10f", + "bytes": 9437 + }, + "tests/contract/test_json_report.py": { + "sha256": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "bytes": 10790 + }, + "tests/security/test_report_resource_limits.py": { + "sha256": "722b14062652ba9abd9b70970fba5cbf6155e9c0dd15d9f81eed482b3dc2c965", + "bytes": 16947 + } + }, + "actual_test_nodes": { + "tests/contract/test_json_report.py": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" + ], + "tests/security/test_report_resource_limits.py": [ + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols" + ] + }, + "reference_probe": { + "exact_reference": true, + "bytes": 421307, + "assembly_units": 6740573, + "encoder_units": 2768497, + "total_units": 9509070, + "output": { + "json": 421307, + "markdown": 0 + }, + "elapsed_seconds": 3.0059238750000077, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "independent_review": { + "status": "passed_no_blocking_findings", + "file": "p4w05-independent-review.json", + "sha256": "9b584763bb0f8ac93ce778f76f215173d4b5bba4d356accf823e80bf7a2c0859" + }, + "scope": "Internal exact JSON and existing-ledger output boundary only; seven-file focused execution, no public delivery or whole-invocation/Markdown parity claim." + }, + "package_boundary": { + "activation_stage": 5, + "checked_modules": 48, + "entry_byte_protected_modules": 40, + "issues": [], + "ok": true, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 15, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "evidence": "p4w05-json-001.log/.xml/-execution.json", + "actual_result": "147 passed; one failed assertion in the new test. Exact expected output already matched.", + "cause": "A redundant search for backslash-slash also matched the tail of a correctly escaped literal backslash adjacent to a slash.", + "repair": "Test now checks the slash scalar directly against its independent literal. Product code and goldens unchanged; corrected full N04 has148passes and final unified run has432passes." + } + ], + "remaining": [ + "W06 Markdown and substantive parity are not started.", + "W07 must prove capture, analysis, disclosure, assembly, both encodings and parity on the actual same invocation ledger. The9509070-unit component probe excludes prior analysis and future Markdown/parity and cannot establish W07 feasibility.", + "All228 public pipeline/rendering obligation rows remain pending; public AuditReport delivery and API activation await later units.", + "Pre-admission/rejection runtime composition and complete safe report delivery remain W07/W08.", + "File/CLI/native publication, merge and release remain deferred.", + "The new published candidate has not yet received a hosted result in this committed record; later real status belongs in PR/external evidence." + ], + "historical_records": { + "P4-W04": { + "phase": "P4", + "current_unit": "P4-W04", + "status": "W04 implementation and focused verification complete; separately owned W01 verification repair validated locally; new published-head configured CI pending", + "owner_authorization": { + "instruction": "W04继续", + "scope": "P4-W04 only, plus necessary original-owner repair under approved plan section6 closing rule", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "W03_local_targeted_tests": 5982, + "hosted_result": { + "run_id": 40170942968, + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "attempt": 1, + "run_status": "completed", + "run_conclusion": "failure", + "failed_profile": { + "matrix": "windows-2025 / Python 3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "artifact_bytes": 244690, + "raw_files": 47, + "pytest_exit": { + "error_type": "TimeoutExpired", + "exit_code": null, + "incomplete": true, + "interrupted": false, + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "timed_out": true, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "TimeoutExpired", + "message": "Command '['D:\\\\a\\\\_temp\\\\sit-p3\\\\tools\\\\Scripts\\\\python.exe', '-B', '-m', 'pytest', 'tests/scaffold', 'tests/security', 'tests/contract', 'tests/unit', 'tests/integration', '-q', '--basetemp', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\pytest', '--junitxml', 'D:\\\\a\\\\_temp\\\\sit-p3\\\\evidence\\\\junit.xml']' timed out after 2400.0 seconds", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "collection_count": 9653, + "junit_present": false, + "test_record_present": false, + "source_after_present": false, + "interpretation": "Full pytest exceeded unchanged 2400 seconds. Partial progress does not establish completed test totals or identify the exact active test. No complete passing attestation." + }, + "comparison_profile": { + "matrix": "windows-2025 / Python 3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "artifact_bytes": 363913, + "pytest_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "pytest_tail": "........................... [ 95%]\n........................................................................ [ 95%]\n........................................................................ [ 96%]\n........................................................................ [ 97%]\n........................................................................ [ 98%]\n........................................................................ [ 98%]\n........................................................................ [ 99%]\n.................................. [100%]\n9653 passed, 533 subtests passed in 2397.33s (0:39:57)\n", + "timing": "windows313-timing-focused.json", + "scope": "Actual completed profile used for timing diagnosis only; not a full four-profile independent audit." + }, + "diagnostic_profile": "guard-single-call-profile.json", + "recommended_repair": "W01-owner current-module guard may freshly parse each active source once per call and reuse only that call's read-only AST and import target data across dependency, effects and cycle checks. No cross-call cache, no rule/test/budget relaxation. Root decision pending.", + "recorded_at_utc": "2026-10-25T07:48:09.234102+00:00" + }, + "meaning": "W03 local checkpoint remains valid; its later Windows3.11 incomplete full run is not accepted as a successful profile." + }, + "inherited_W01_repair": { + "commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "tree": "76027ddd617e4e9c0145c1a96a460c4a1411de5b", + "owner": "P4-W01", + "activation_stage": 3, + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_verification_boundary.py", + "tests/scaffold/test_imports.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_module_manifest.py", + "tests/security/test_preparation_inertness.py", + "tests/scaffold/test_ci_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-w01-repair/focused-001.xml" + ], + "head": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "started_at_utc": "2026-10-25T07:57:05.151778+00:00", + "elapsed_seconds": 259.7052340929986, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_count": 224, + "source_hashes_unchanged": true, + "scope": "Complete V02 and six existing effects/dependency/package/CI boundary files; not the full suite or a hosted timing guarantee." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "576", + "time": "259.471", + "timestamp": "2026-10-25T01:57:05.272902-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_verification_boundary": 213, + "tests.scaffold.test_imports": 50, + "tests.scaffold.test_layer_boundaries.LayerBoundaryTests": 7, + "tests.scaffold.test_no_runtime_implementation.NoRuntimeImplementationTests": 12, + "tests.scaffold.test_no_runtime_implementation.W04R01LiveGuardTests": 5, + "tests.scaffold.test_module_manifest.ModuleManifestTests": 8, + "tests.scaffold.test_module_manifest.LiveModuleManifestTests": 5, + "tests.security.test_preparation_inertness": 39, + "tests.scaffold.test_ci_contract.CiContractTests": 14, + "tests.scaffold.test_ci_contract.JunitAccountingTests": 6, + "tests.scaffold.test_ci_contract.DriverEvidenceTests": 25 + }, + "collection_preservation": { + "before_exit": 0, + "after_exit": 0, + "before_count": 211, + "after_count": 213, + "original_211_ordered_cases_unchanged": true, + "added": [ + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ], + "before_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit" + ], + "after_nodes": [ + "tests/contract/test_verification_boundary.py::test_bootstrap_repository_copies_isolate_files_history_and_objects", + "tests/contract/test_verification_boundary.py::test_current_anchor_and_frozen_records", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[plan_and_map]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[policy_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[map_and_product]", + "tests/contract/test_verification_boundary.py::test_current_paired_metadata_and_source_mutations_fail[frozen_record]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[without_git]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "tests/contract/test_verification_boundary.py::test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "tests/contract/test_verification_boundary.py::test_current_package_probe_cannot_substitute_for_checkout_authorization", + "tests/contract/test_verification_boundary.py::test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[extra-unexpected_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[missing-missing_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[protected-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[syntax-invalid_python]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[public_report-non_scaffold_body]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[encoding-invalid_utf8]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[active_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/hidden.pyc-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/native.pyd-current_unexpected_source_file]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/__pycache__/injected.py-current_unexpected_cache_entry]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/source_integrity_toolkit/unapproved/hidden.pyc-current_unexpected_source_directory]", + "tests/contract/test_verification_boundary.py::test_current_module_tree_includes_ignored_paths[src/extra/hidden.pyc-current_unexpected_source_entry]", + "tests/contract/test_verification_boundary.py::test_current_context_comes_from_exact_external_event", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[head-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[branch-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[fork-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base_ref-current_wrong_base_ref]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[repository-current_wrong_repository]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[base-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[missing-current_malformed_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[duplicate-duplicate_policy_key]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[unknown_event-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_rejects_candidate_self_authorization[forged_message-current_event_commit_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report; injected-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report\\n-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-phase4/public-report/extra-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[branch-verification/consolidation-current_unapproved_branch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_ref-refs/heads/phase4/public-report-current_unsupported_event]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_after-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_head_id-fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_deleted-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[push_forced-True-current_event_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-HEAD-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-None-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[base-3dc6c7860e8206158338179d41d10ca6c37d13f1-current_invalid_base]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3dc6c7860e82-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-3DC6C7860E8206158338179D41D10CA6C37D13F1-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_context_preserves_exact_branch_footer_and_commit_boundaries[review_head-None-current_invalid_review_head]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[src/source_integrity_toolkit/runtime/boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md.bak]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/contract/test_verification_boundaries.py]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[./README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests/../README.md]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md/]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[README.md:stream]", + "tests/contract/test_verification_boundary.py::test_current_exact_scope_rejects_unlisted_and_lookalike_paths[tests\\\\contract\\\\test_verification_boundary.py]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[unstaged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[staged_restored-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[untracked-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[deleted-current_forbidden_deletion]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[rename-current_unlisted_path]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[assume_unchanged-current_premature_activation]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mode-current_file_mode_changed]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[allowed_dirty-current_dirty_checkout]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[wrong_head-current_checkout_head_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_checkout_rejects_out_of_scope_states[mixed_semantic-current_mixed_semantics_changed]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return open(\"x\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f():\\n return eval(\"1\")\\n-forbidden_effect]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import socket\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import ctypes\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-import subprocess\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from pathlib import Path\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-import recursive_integrity_toolkit\\n-unapproved_import]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = sum((1, 2))\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-def f(x=sum((1, 2))):\\n return x\\n-import_time_execution]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-class X(metaclass=type):\\n pass\\n-custom_metaclass]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-async def f():\\n pass\\n-async_execution_not_selected]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-VALUE = \"tests/golden/answer\"\\n-runtime_catalog_or_oracle_reference]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[contracts/results.py-from source_integrity_toolkit.runtime import boundary\\n-layer_violation]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from source_integrity_toolkit.reporting import json_report\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..reporting import assemble\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[runtime/boundary.py-from ..io import platform_windows\\n-forbidden_dependency]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from ..... import x\\n-relative_import_escape]", + "tests/contract/test_verification_boundary.py::test_current_live_effects_and_dependencies[graph/cycles.py-from typing import *\\n-wildcard_import]", + "tests/contract/test_verification_boundary.py::test_current_live_declaration_positive_control", + "tests/contract/test_verification_boundary.py::test_reporting_composition_activation_does_not_grant_lower_layers_authority", + "tests/contract/test_verification_boundary.py::test_current_collection_is_complete_and_unique", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[substitution-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[omission-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[duplicate-current_junit_identity_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[false_zero-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[subtest_failure-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[skip-current_unsuccessful_test_evidence]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[aggregate-current_subtest_count_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_collection_rejects_same_count_substitution[negative-current_invalid_junit_count]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[permissions-current_workflow_permissions]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[event-current_workflow_triggers]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[matrix-current_workflow_matrix]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[credentials-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[head-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[shallow-current_workflow_checkout]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[pin-current_workflow_python]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[plugins-current_workflow_environment]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[filter-current_workflow_stage]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[continue-current_workflow_job_keys]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_job-current_workflow_jobs]", + "tests/contract/test_verification_boundary.py::test_current_workflow_policy_and_mutations[extra_step-current_workflow_steps]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[float_budget-current_workflow_budget]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[evidence_success_only-current_workflow_evidence]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[upload_success_only-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[empty_artifacts-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_ci_budgets_and_failure_evidence[artifact_scope-current_workflow_upload]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_forbidden_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_workflow_security_changes", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[body]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[decorator]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_audit_file_changes_after_w08[rebind]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_restored_later_product_effects", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[1]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[5]", + "tests/contract/test_verification_boundary.py::test_current_risk_early_records_only_changes_require_full_verification[9]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[PHASE_4_COMPLETION.md]", + "tests/contract/test_verification_boundary.py::test_current_risk_allows_only_explicit_non_executable_documentation[phase4/implementation_evidence.json]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[packaged_readme]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[executable]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[mixed]", + "tests/contract/test_verification_boundary.py::test_current_risk_escalates_package_code_and_mixed_changes[candidate_override]", + "tests/contract/test_verification_boundary.py::test_current_risk_cannot_hide_executable_change_by_restoring_final_tree", + "tests/contract/test_verification_boundary.py::test_current_risk_includes_restored_executable_changes_on_merge_sides", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[same_endpoint]", + "tests/contract/test_verification_boundary.py::test_current_risk_empty_changes_do_not_claim_documentation_success[restored_docs]", + "tests/contract/test_verification_boundary.py::test_current_risk_does_not_authorize_unknown_markdown_paths", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[valid_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[forbidden_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[pre_anchor_side]", + "tests/contract/test_verification_boundary.py::test_current_history_validates_anchor_parents_and_side_branches[wrong_base]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[root]", + "tests/contract/test_verification_boundary.py::test_current_tree_objects_reject_hash_inconsistent_bodies[nested]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[missing-current_incomplete_object_batch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[duplicate-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[reordered-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[extra-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[truncated-current_truncated_object]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_type-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_id-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[size-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_parent-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[wrong_tree-current_git_object_hash_mismatch]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[leading_blank-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_malformed_responses[trailing_blank-current_extra_object_records]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_tree-current_invalid_commit_tree]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[invalid_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_parent-current_invalid_commit_parent]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[duplicate_tree-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[late_parent-current_malformed_commit_headers]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rejects_hash_valid_malformed_commit_headers[missing_separator-current_malformed_commit]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids0-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids1-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids2-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids4-current_duplicate_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_invalid_requests_do_not_launch_git[commit_ids5-current_invalid_object_request]", + "tests/contract/test_verification_boundary.py::test_current_git_metadata_rereads_root_and_state", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[shallow-current_shallow_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[replace-current_replaced_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[graft-current_grafted_history]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_commit-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_tree-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_parent-current_git_unavailable_or_incomplete]", + "tests/contract/test_verification_boundary.py::test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "tests/contract/test_verification_boundary.py::test_current_history_rejects_wrong_parent", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 ]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01 injected]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W00]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W11]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P4-W01]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Verification-Unit: VC]", + "tests/contract/test_verification_boundary.py::test_actual_commit_footer_cannot_be_replaced_by_candidate_claims[SIT-Phase-Unit: P4-W01\\nSIT-Phase-Unit: P3-W15]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[__init__.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[api.py-8]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/execution.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[contracts/report.py-2]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/assemble.py-3]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/escaping.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/json_report.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[reporting/markdown_report.py-6]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/boundary.py-7]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/diagnostics.py-5]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/disclosure.py-4]", + "tests/contract/test_verification_boundary.py::test_all_twelve_product_activation_boundaries_are_independent[runtime/resources.py-5]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[1-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[2-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[3-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[4-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[5-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[6-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[7-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[8-src/source_integrity_toolkit/reporting/json_report.py]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[9-README.md]", + "tests/contract/test_verification_boundary.py::test_each_unit_rejects_paths_owned_by_another_approved_unit[10-src/source_integrity_toolkit/contracts/report.py]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-3]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[1-10]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[2-4]", + "tests/contract/test_verification_boundary.py::test_first_units_cannot_skip_their_predecessors[7-9]", + "tests/contract/test_verification_boundary.py::test_later_repair_keeps_monotonic_activation_and_exact_owner", + "tests/contract/test_verification_boundary.py::test_final_normal_merge_inherits_verified_candidate_without_w10_path_expansion", + "tests/contract/test_verification_boundary.py::test_two_ordered_branches_cannot_combine_to_authorize_skipped_unit", + "tests/contract/test_verification_boundary.py::test_current_source_checks_parse_fresh_after_mutation_and_restoration", + "tests/contract/test_verification_boundary.py::test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics" + ] + }, + "same_source_timing": { + "scope": "Three alternating current-source pure guard checks on the exact same Git95a8462 module bytes at stage3; diagnostic timing only, no timing acceptance threshold or verdict cache. Before loads unchanged live main-worktree guard; after loads isolated repair guard.", + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "executable": "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "module_source_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "module_sha256": { + "__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "contracts/execution.py": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55", + "contracts/report.py": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1", + "contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "reporting/assemble.py": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c", + "reporting/escaping.py": "9b910e3cc9e6d3bdbb20824420d8a2a599e12f3a300e0dffb9674a8696db0ca8", + "reporting/json_report.py": "5e5b41e8e1a1f0c6d731a22d288905f8ad5d969e6904f374487be1d54bec26dc", + "reporting/markdown_report.py": "e2af7736cc1254fd6f4ad4366ed24e6fc6163e2761c17c1cce8f48307a83ca7e", + "runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "runtime/boundary.py": "a53ce75d52b8720a7a7981b88d06dcc16d5e4ba6d21d0bb17094e67b693d5101", + "runtime/diagnostics.py": "2763dd36343ad5e60aca3d5c244d6c94a288b09ebf268f045dcc3d5f01445814", + "runtime/disclosure.py": "a9cf0d4b24eb4ddaa239747fc487a91aaf2708f8bd9954035dd42536b1c15b11", + "runtime/resources.py": "0ff61d32061f78e5eb46ff9903d322dd9335cc964411dc10ffc91eef0a440449", + "validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315" + }, + "guard_sha256": { + "before": "f361eb985b6ed0c428baa2be0760b2ca60f844d3c34b20a597a90791ba1885fb", + "after": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63" + }, + "seconds": { + "before": [ + 1.170046082999761, + 1.182108517998131, + 1.114261736998742 + ], + "after": [ + 0.6021103010025399, + 0.5637806820013793, + 0.5558995499995945 + ] + }, + "median_seconds": { + "before": 1.170046082999761, + "after": 0.5637806820013793 + }, + "same_empty_issues": { + "before": [], + "after": [] + }, + "after_parse_counts": { + "current_module_issues": 48, + "_phase2_layer_issues": 18, + "executable_ast": 36 + } + }, + "raw_directory": "p4w04-w01-repair", + "qualification": "Local seven-file verification and same-source timing; no claim that the next Windows full suite has already completed." + }, + "changes": [ + "P04 selects native basis, each registered disclosure payload and retained witness components through literal named-field rules, preserving required IDs, attribution, support, methods, context, availability, outcomes, lifecycle and ordered qualifications.", + "P04 selects and assembles through one supplied finite internal port. It neither allocates another budget nor activates runtime/boundary or public audit APIs.", + "P03 recognizes an already validated exact-scope/exact-owner Finding component as a real home for its retained correction source slots; unmatched components retain the original strict Result-home check.", + "N02 adds seven actual-selector integration cases; N08/N16 add twenty-six privacy and preservation cases over four independently specified finite dossiers.", + "The separate W01 repair removes repeated parsing within one guard call while preserving fresh source reads and all dependency/effect/cycle/pin checks; all original 211 V02 cases remain ordered and two focused regressions are added." + ], + "changed_scope": { + "W04": [ + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/runtime/disclosure.py", + "tests/contract/test_report_assembly.py", + "tests/security/test_report_disclosure.py", + "tests/fixtures/adversarial/phase4_report_cases.json", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "separate_W01": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, public API/exports/version, runtime boundary, workflow, dependency pins and resource limits" + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/security/test_report_disclosure.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w04-targeted-001.xml" + ], + "started_at_utc": "2026-10-25T07:57:29.452245+00:00", + "elapsed_seconds": 73.28405752199978, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "source_files": 226, + "source_bytes_unchanged": true, + "scope": "Four explicitly named W04 integration/privacy and related identity/oracle files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "186", + "time": "73.047", + "timestamp": "2026-10-25T01:57:29.593002-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_report_assembly": 55, + "tests.contract.test_report_identity": 16, + "tests.security.test_report_disclosure": 26, + "tests.contract.test_report_test_oracles": 89 + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58955, + "sha256": "bdd408f03a36985f6aa098ac9ea56f5ee8522be67b30cc943accf8b599ac4e8f" + }, + "src/source_integrity_toolkit/runtime/disclosure.py": { + "bytes": 38666, + "sha256": "0ee0cb170bc017fd80bd45ee7a5f42fc5b83b598c7204ad2ae0bf08cd9b57a43" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 71321, + "sha256": "4c7ce1b290cd89651ff1310ba5d4af13ea189617a92240e779f58132835df711" + }, + "tests/security/test_report_disclosure.py": { + "bytes": 16111, + "sha256": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72" + }, + "tests/fixtures/adversarial/phase4_report_cases.json": { + "bytes": 64693, + "sha256": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5" + } + }, + "post_test_inheritance": { + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_verification_boundary.py", + "tools/check_scaffold_boundary.py" + ], + "repair_commit": "8db88278a99fed8c32d8323853ce5063b07fb2f9", + "meaning": "Only the separately tested W01 guard/test/evidence repair was inherited after this product run. All W04 product, fixture and test bytes are identical." + } + }, + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 4, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 17, + "entry_byte_protected_modules": 44, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "failures_and_repairs": [ + { + "failure": "Initial product reference differed only in the set order of Finding input references.", + "repair": "Typed-reference ordering for set-valued input_refs; native ordered arrays remain ordered.", + "raw": "p4w04-product-reference-01" + }, + { + "failure": "Private whole-entity SourceAddress used an empty selector in the unknown-frontier disclosure.", + "repair": "Normalize only the private empty whole-entity selector to public null; retain all nonempty selectors.", + "raw": [ + "p4w04-security-001", + "p4w04-product-frontier-01" + ] + }, + { + "failure": "Correction owner material was rejected despite already being retained in an exact matching Finding component.", + "repair": "Use that validated component as its explicit home; preserve all selector slots, including the case null field.", + "raw": [ + "p4w04-correction-home-diagnosis.json", + "p4w04-security-001", + "p4w04-security-002" + ] + }, + { + "failure": "A test source duplicated one role/object selector, and a Windows path assertion compared JSON escaping rather than the source string.", + "repair": "Use two legitimate roles sharing the Actor for repeated source-slot coverage; compare actual scalar strings. Frozen product analysis rules were unchanged.", + "raw": [ + "p4w04-n02-full-01", + "p4w04-scan-fixture-trace-01", + "p4w04-security-001" + ] + } + ], + "remaining": { + "W05_W06": "JSON and Markdown product encoders pending", + "W07": "Single analysis-plus-report invocation ledger, witness/output accounting and final stop integration pending", + "W08": "Public AuditReport delivery pending; both audit APIs retain their current refusal", + "W09_W10": "Full public obligation execution and final phase acceptance pending", + "privacy": "Required allowed strings, identifiers and topology can remain identifying; no anonymization or public-distribution approval is claimed", + "file_native_cli_release": "Deferred" + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W03", + "active_repair_owner_unit": "P4-W01", + "status": "W03 internal implementation retained; its completed hosted run has one genuine 2400-second incomplete timeout. W01 guard traversal repair prepared; exact clean-checkout validation pending.", + "owner_authorization": { + "instruction": "W04继续", + "repair_basis": "Approved PHASE_4_PLAN.md section 408 permits returning to the original owner unit for a necessary repair while preserving monotonic activation and owner path scope.", + "owner_unit": "P4-W01", + "activation_stage": 3, + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "scope": "V01/V02/D05 only; no W04 product bytes or workflow, pins, test filters, resource ceilings or public API changes." + }, + "previous_checkpoint": { + "head": "95a8462105e5e5c5cfb3ab7f24cbf8b8cb37611f", + "tree": "55e8522ef226481ed380f59b0623d39e4a3fc000", + "local_targeted_tests": 5982, + "hosted_run": 40170942968, + "attempt": 1, + "hosted_state": "completed/failure; Ubuntu 3.11/3.13 and Windows3.13 succeeded; Windows3.11 timed out." + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "failure_diagnosis": { + "failed_profile": "windows-2025 Python3.11", + "job_id": 121101460187, + "artifact_id": 12591625367, + "artifact_sha256": "380909bbd64139783ecf8d303fc6efb3e05710028063fbdec80716a44eba6934", + "raw_files": 47, + "pytest": { + "exit_code": null, + "error_type": "TimeoutExpired", + "timeout_seconds": 2400, + "timed_out": true, + "incomplete": true, + "junit_present": false + }, + "meaning": "No completed or partial passing test total is inferred. The retained progress output does not identify the active test at interruption.", + "comparison": { + "profile": "windows-2025 Python3.13", + "artifact_id": 12591237206, + "artifact_sha256": "4e2342ae12166b7c963c8ca66ac605db7c66ac077aa9618d4f5e3d23ae6e5618", + "passed_tests": 9653, + "successful_subtests": 533, + "pytest_seconds": 2397.33, + "junit_seconds": 2397.258, + "testcase_seconds": 2388.211, + "V02_seconds": 668.918, + "largest_V02_case_seconds": 145.581, + "scope": "One completed profile timing diagnosis; not a completed four-profile independent raw-evidence audit." + }, + "raw_directory": "p4w04-prior-ci-diagnosis", + "specific_repeated_work": "One actual stage3 current_module_issues call parsed 162 times: each of 30 active source modules separately for dependency, effects and cycle inspection. Profiling recorded approximately 979,000 AST node visits." + }, + "changes": [ + { + "path": "tools/check_scaffold_boundary.py", + "change": "Parse each active module freshly once within one current_module_issues call. Apply the same dependency/effect checks to that read-only tree and reuse only this call's import targets for cycle checking. Existing standalone entry points still parse their current source anew; no pre-parsed input parameter, cross-call AST store or cached validation result is exposed." + }, + { + "path": "tests/contract/test_verification_boundary.py", + "change": "Preserve every original function, fixture and test AST unchanged. Add two direct regressions for fresh parsing through good/mutated/restored sources and cycles, and exact combined dependency/effect/scaffold/syntax diagnostics." + }, + { + "path": "phase4/implementation_evidence.json", + "change": "Record the actual timeout, narrowly owned repair and pending validation. Preserve the entire prior record unchanged below." + } + ], + "preserved_guarantees": [ + "All byte ceilings, stage activations and frozen source hashes remain checked on current input.", + "Every dependency, wildcard/alias, layer, side-effect, scaffold, public-export, protected-file and cycle rule retains its result. Invalid syntax retains both module-local and aggregate import-graph diagnostics.", + "form_issues still uses a separate parse for its docstring-removing comparison, so shared inspection trees are never mutated.", + "The original 211 V02 cases and isolated-repository copy/destructive controls remain; no guard check or assertion was removed.", + "All Git/source reads and current history/clean-checkout checks remain real. Workflow timeouts, dependency pins and test collection scope remain unchanged." + ], + "validation": { + "state": "pending after this locally reviewable commit", + "original_V02_definitions": 62, + "changed_existing_V02_definitions": [], + "added_V02_tests": [ + "test_current_module_analysis_keeps_all_dependency_effect_and_syntax_diagnostics", + "test_current_source_checks_parse_fresh_after_mutation_and_restoration" + ], + "planned_direct_checks": "Actual clean stage3 W01-owner history; complete V02 and existing scaffold/effect/security boundary tests; ordered old/new collection comparison; source hashes and actual exit/JUnit. No timing threshold test." + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W03", + "status": "W03 implementation and focused checks complete; exact published-head configured CI pending at this commit", + "owner_authorization": { + "instruction": "很好,继续 W03", + "scope": "P4-W03 only; no W04+, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "previous_checkpoint": { + "head": "7919288509e9a9232f5b26b004be5ba1d0a810f6", + "tree": "82265150e952099466d7cbd5f49f03260a857538", + "hosted_run": 38682280459, + "attempt": 1, + "four_profiles": "Ubuntu 24.04 / Windows 2025, Python 3.11 / 3.13, all successful", + "per_profile_tests": 9589, + "per_profile_successful_subtests": 533, + "meaning": "Closes the historical pending-hosted statement in the unmodified W02 record below." + }, + "changes": [ + "P01 adds bounded immutable selected-disclosure capture and real prepared-input/report reference closure, without changing accepted private-core definitions.", + "P03 builds the frozen internal root/run/input envelope, eight local ID collections, five global domains and fifteen four-state capability partitions per Inquiry.", + "Stable semantic anchors and complete-body tie keys deduplicate equal representations, preserve distinct source IDs and qualification/native ordering, and reject unequal Result-slot bodies; cyclic links terminate at anchors.", + "Retained paths/traces and actual witness owners link to concrete Findings with their exact supporting premises. Existing interval/incidence/fraction/partition values and required disclosures are preserved without new analysis.", + "Existing W02 fixed-schema dispatch avoids redundant validation work while retaining all schema checks; assembly avoids repeated semantic expansion without changing budget limits or charge rates." + ], + "changed_scope": { + "paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "phase4/report_contract_coverage.json", + "phase4/implementation_evidence.json" + ], + "all_other_baseline_files_unchanged": true, + "new_tests": "N02 and N03; no original tests removed, disabled or weakened", + "unchanged": "Approved plan, schemas, independent goldens, analysis algorithms, guards/workflows, dependencies, budgets, public API, renderers and runtime entry points" + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_identity.py", + "tests/contract/test_report_test_oracles.py", + "tests/contract/test_result_contract.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w03-targeted-002.xml" + ], + "started_at_utc": "2026-10-25T06:53:28.806620+00:00", + "elapsed_seconds": 71.38994021100007, + "exit_code": 0, + "timeout_seconds": 900, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files": 224, + "source_bytes_unchanged": true, + "scope": "Five explicitly named W03 and related contract files; not a complete suite or hosted matrix." + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "5982", + "time": "70.779", + "timestamp": "2026-10-25T00:53:28.931807-06:00", + "hostname": "d6921570ec2c" + }, + "cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_assembly": 48, + "tests.contract.test_report_identity": 16, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_result_contract": 104 + }, + "raw": { + "p4w03-targeted-002.log": { + "bytes": 6752, + "sha256": "56a716581f58ae38b0432a35f1848e66212006475d352219fb6227cd991f59fe" }, - "schema_final": { - "schema_accepts": true, - "errors": [], - "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", - "schema_bytes": 244640, - "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", - "reference_bytes": 421307, - "defs": 195, - "closed_objects": 160, - "local_refs": 586, - "counts": { - "scopes": 23, - "populations": 40, - "basis_index": 16, - "capabilities": 15, - "checks": 671, - "observability_domains": 5, - "results": 78, - "findings": 22, - "reasons": 38 - }, - "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + "p4w03-targeted-002-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "oracle_final": { - "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", - "artifacts": { - "tests/fixtures/micro/phase4_public_cases.json": { - "bytes": 16543, - "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" - }, - "tests/golden/phase4_report_expectations.json": { - "bytes": 638421, - "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" - }, - "tests/golden/phase4_reference_report.json": { - "bytes": 421307, - "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" - }, - "tests/golden/phase4_reference_report.md": { - "bytes": 564555, - "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" - }, - "tests/contract/test_report_test_oracles.py": { - "bytes": 18051, - "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" - } - }, - "sources": { - "requirements": [ - "PHASE_4_PLAN.md sections4-6", - "OBSERVABILITY_AND_REPORTING.md sections12-19", - "REPOSITORY_ARCHITECTURE.md sections17-19", - "GOVERNANCE_AND_HANDOFF.md section22.5", - "PRIVACY_AND_DATA_HANDLING.md section4" - ], - "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." - }, - "tests": [ - { - "log": "p4w02-oracle-first.log", - "result": "environment failure: system Python has no pytest; no test collected" - }, - { - "log": "p4w02-oracle-second.log", - "result": "78 passed", - "seconds": 2.91 - }, - { - "log": "p4w02-oracle-third.log", - "result": "83 passed", - "seconds": 3.62 - }, - { - "log": "p4w02-oracle-fourth.log", - "result": "89 passed", - "seconds": 3.2, - "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." - } - ], - "frozen_private_crosschecks": [ - { - "log": "p4w02-literal-crosscheck-01.log", - "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", - "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." - }, - { - "log": "p4w02-literal-crosscheck-02.log", - "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", - "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", - "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." - } - ], - "source_resolved_corrections": [ - { - "change": "Four M015 PC04 states met -> unmet", - "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." - }, - { - "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", - "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." - }, - { - "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", - "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." - }, - { - "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", - "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", - "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", - "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." - } - ], - "counts": { - "results": 78, - "field_keys": 57, - "scopes": 23, - "populations": 40, - "basis": 16, - "checks": 671, - "capabilities": 15, - "domains": 5, - "findings": 22, - "reasons": 38 - }, - "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", - "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", - "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + "p4w03-targeted-002.xml": { + "bytes": 1097486, + "sha256": "e6d6c512cb0d78f44799ce131e5681ea7c613bf180564e00668f85ade83b82ce" }, - "package_boundary": { - "result": "passed", - "activation_stage": 2, - "checked_modules": 48, - "entry_byte_protected_modules": 46, - "raw": "p4w02-package-boundary-final.json", - "scope": "package bytes/effects only; not checkout authorization" + "p4w03-targeted-002-exit.json": { + "bytes": 807, + "sha256": "59853a24e959cd05538fadec0ba55ba3a16a3ac9035d1394e369446397b08e0a" }, - "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", - "full_local_suite": "not run for W02; targeted checks do not claim all suites", - "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", - "first_hosted_candidate": { - "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", - "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", - "run_id": 38672908042, - "attempt": 1, - "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", - "passed_tests_per_completed_profile": 4789, - "failed_tests_per_completed_profile": 27, - "successful_subtests_per_completed_profile": 533, - "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", - "failed_profiles": 4, - "failed_test_categories": { - "frozen_preparation_bytes": 1, - "module_ceiling_and_protected_slots": 8, - "live_effects_and_dependencies": 18 + "p4w03-targeted-002-source-before.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-targeted-002-source-after.json": { + "bytes": 24654, + "sha256": "a732da9020950563cd6d63a74abf9b4277bc332bc7030f1fd094d5a93cfb36da" + }, + "p4w03-package-boundary-final.json": { + "bytes": 1177, + "sha256": "5a39aee4b8d06e53c6fdf2b955b512d5237fbc729ee1de65e97ae56d67e7ba82" + } + }, + "legacy_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "accepted_private_core": { + "existing_definitions": 46, + "changed_definitions": [] }, - "audit": { - "file": "p4w02-first-ci-failure-audit.json", - "bytes": 78635, - "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" + "accepted_W02": { + "existing_definitions": 72, + "changed_definitions": [ + "_report_matches", + "_report_schema", + "_report_shape", + "_report_semantics" + ] } }, - "targeted_initial": { - "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", - "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", - "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", - "pytest_tests": 1445, - "successful_subtests": 12, - "pytest_seconds": 28.53, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "1457", - "time": "28.505", - "timestamp": "2026-10-14T19:42:04.245729-07:00", - "hostname": "502c238e1080" - }, - "junit_cases_by_classname": { - "tests.contract.test_report_contract": 953, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 + "src/source_integrity_toolkit/reporting/assemble.py": { + "accepted_private_core": { + "existing_definitions": 0, + "changed_definitions": [] }, - "raw": { - "p4w02-targeted-combined-01.log": { - "bytes": 1710, - "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" - }, - "p4w02-targeted-combined-01.xml": { - "bytes": 244682, - "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" - }, - "p4w02-package-boundary-final.json": { - "bytes": 1010, - "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" - } - }, - "legacy_private_definitions": { - "src/source_integrity_toolkit/contracts/report.py": { - "existing_definitions": 46, - "changed_or_missing_existing_definitions": [], - "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" - }, - "src/source_integrity_toolkit/contracts/execution.py": { - "existing_definitions": 9, - "changed_or_missing_existing_definitions": [], - "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" - } - }, - "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." - }, - "targeted_expanded_before_schema_reuse": { - "run": "targeted-combined-02", - "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", - "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", - "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", - "tests": 6217, - "successful_subtests": 12, - "seconds": 118.16, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "6229", - "time": "118.116", - "timestamp": "2026-10-14T20:26:17.158773-07:00", - "hostname": "502c238e1080" - }, - "by_classname": { - "tests.contract.test_report_contract": 5725, - "tests.contract.test_report_test_oracles": 89, - "tests.contract.test_input_schema_mapping": 75, - "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, - "tests.contract.test_result_contract": 104, - "tests.contract.test_observability_preparation": 71, - "tests.contract.test_prerequisite_contract": 110, - "tests.security.test_input_diagnostics": 32 - }, - "raw": { - "p4w02-targeted-combined-02-exit.json": { - "bytes": 750, - "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" - }, - "p4w02-targeted-combined-02-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "p4w02-targeted-combined-02.xml": { - "bytes": 1134880, - "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" - }, - "p4w02-targeted-combined-02.log": { - "bytes": 6993, - "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" - } + "accepted_W02": { + "existing_definitions": 0, + "changed_definitions": [] } + } + }, + "products_and_new_tests": { + "src/source_integrity_toolkit/contracts/report.py": { + "bytes": 252463, + "sha256": "d4ae2530f55afd994b80e7b9fe36d7fa1b0f662652fb9f22a23fa5556a52d6c1" }, - "verification_owner_repair": { - "state": { - "clean": true, - "unit": "P4-W01", - "activation_stage": 2, - "head": "6d83a70c52f0bab1626026228b525cee284095f9", - "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" + "src/source_integrity_toolkit/reporting/assemble.py": { + "bytes": 58453, + "sha256": "4a88a8a21fa820b2a5fc370ebbdfcd2be56f892ceae1b690fc2e95a35194da7c" + }, + "tests/contract/test_report_assembly.py": { + "bytes": 61053, + "sha256": "a34721a824fbbaa7fd60d2e36f39951e80c5793d0a5117c65c8a9f22b0198ee6" + }, + "tests/contract/test_report_identity.py": { + "bytes": 29285, + "sha256": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8" + } + }, + "package_boundary": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 3, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 18, + "entry_byte_protected_modules": 45, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "scope": "Five named contract files only. Trusted selected-disclosure fixtures are not a public invocation or W04 selector." + }, + "failures_and_repairs": [ + { + "finding": "Initial Scope keys and nested canonical-J bytes were not accepted by their narrow internal encoders.", + "repair": "Explicit charged Scope key handling and lossless UTF-8 canonical-J tie tokens; no public JSON type widening.", + "raw": [ + "p4w03-n02-reference-initial", + "p4w03-n02-reference-inquiries-08", + "p4w03-identity-001", + "p4w03-identity-002" + ] + }, + { + "finding": "Early complete-reference assembly exhausted the unchanged ten-million work-unit port.", + "repair": "Reduce actual repeated scope lookup, body expansion and schema traversal; no raised budget, skipped checks or changed expected report.", + "raw": [ + "p4w03-n02-reference-02", + "p4w03-n02-reference-04", + "p4w03-n02-reference-05", + "p4w03-n02-bounded-stage-profile-01.json", + "p4w03-n02-bounded-stage-profile-02.json" + ] + }, + { + "finding": "Reference comparisons exposed ordering, witness association and missing retained-path basis links.", + "repair": "Preserve native category order, complete Scope ordering and exact retained owner/path premises. Independent N17/N18 expectations remain unchanged.", + "raw": [ + "p4w03-n02-reference-diff-06.json", + "p4w03-n02-reference-diff-09.json", + "p4w03-n02-reference-twohop-10" + ] + }, + { + "finding": "Constructed immutable Scope aliases referenced by retained witnesses were not present in an object-identity lookup.", + "repair": "Charge and obtain the same full Scope semantic key for a valid detached alias; do not erase qualification distinctions.", + "raw": [ + "p4w03-identity-003" + ] + }, + { + "finding": "A doubled full-reference Inquiry case stopped at the fixed ten-million-unit budget.", + "repair": "Preserve the real stop record. Multi-Inquiry success uses a separate explicitly smaller real prepared case with all fifteen families per Inquiry; no claim that the larger case completed.", + "raw": [ + "p4w03-n02-reference-inquiries-twohop-09" + ] + }, + { + "finding": "Exploratory diagnostic tuple capture, a small fixture missing selected-member payloads, and a changed-dimension fixture missing its WitnessRecord ref rewrite failed. The first unified run passed 5981 cases and rejected one population fixture whose reconstructed witness had inconsistent Scope identity.", + "repair": "Use the exact immutable-to-capture boundary and repair the trusted fixtures. Retain the product Scope-alias regression independently; earlier failures remain retained.", + "raw": [ + "p4w03-n02-reference-diagnostic-03", + "p4w03-identity-small-001", + "p4w03-identity-scope-004", + "p4w03-targeted-001" + ] + } + ], + "remaining": { + "W04": "Actual runtime disclosure selector pending; project-owned selected fixtures do not replace it.", + "W05_W06": "Product JSON/Markdown renderers pending.", + "W07": "One-invocation runtime ledger, output/witness accounting and safe stops pending; local assembly port is an internal component test.", + "W08": "Public audit_bundle remains refused; no AuditReport delivery claimed.", + "W09_W10": "Full public obligation matrix and final phase acceptance pending.", + "file_native_cli_release": "Deferred. This seam covers constructed_value/in_process; supplied UTF-8 file metadata/digests are not fabricated or claimed." + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W02", + "status": "W02 implementation and focused tests verified; both earlier hosted candidates retained as failures; W01 isolated-repository repair passed all 211 V02 tests; new exact published-head full matrix pending", + "owner_authorization": { + "instruction": "启动 P4-W02", + "scope": "P4-W02 only; no W03 execution, merge, release or public API activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 + }, + "previous_checkpoint": { + "head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "tree": "9c7b4d1a44e66978ea06b8b055e30a5442191b01", + "hosted_run": 38536145728, + "attempt": 1, + "four_profiles": "all successful; ubuntu-24.04 and windows-2025, Python 3.11 and 3.13", + "per_profile_tests": 3774, + "per_profile_successful_subtests": 533, + "per_profile_junit_total": 4307, + "per_profile_test_files": 73, + "raw_exit_receipts_per_profile": 12, + "tracked_source_hashes_per_profile": 215, + "evidence_zip_sha256": "5218e51dbbc4b263abf6a4824ed6a5bacba9fa5b6417ca515ce2a28c949fcfd7", + "scope_note": "This closes the historical pending-hosted state of the preserved W01 record below. Original local receipt gaps and earlier failures retain their original qualified claims." + }, + "changes": [ + "Declare immutable AuditReport with sixteen read-only root attributes, cached-byte interfaces and a rejecting public constructor; freeze/validate exact owned JSON-domain data through a restricted accounting port.", + "Declare fixed safe AuditAbort, AuditCancelled and AuditUsageError transports and later report-finalization port methods without changing the nine original private execution definitions or activating runtime composition.", + "Add closed repository-only report schema: 195 definitions, 160 closed object shapes, 586 local references, 57 family/field bindings, seven value kinds, 19 typed disclosure payloads and six finite witness component forms.", + "Record explicit private/public representation choices, including full owner-scope graph traces, whole-entity typed references, field-specific native selections and exact human-review scan/source-slot disclosure markers.", + "Add an independently source-authored fully runnable private-core case and exact logical/JSON/Markdown reference, plus case-bound positive-before-mutant oracles. No product dump or renderer capture generated the expected output.", + "Complete independent positive/member/enum/array-item/state controls for all 160 closed schema object positions and 627 member positions. Reuse only read-only schema decoding in tests with before/after fresh-value and byte checks; product verdicts, source specimens and expected values are not cached." + ], + "changed_scope": "First W02 candidate: exactly fourteen W02 paths. Follow-up W01-owner repair: only V02 and D05. This W02 follow-up: only N01, D04 and D05. The cumulative W02 execution adds no later-unit implementation; plan, product files outside P01/P02, workflow, dependency pins, budgets, API and renderers remain frozen. A further W01-owner timeout repair is limited to V02 fixture setup/isolation and D05 evidence. Guard and all product/schema/oracle bytes remain unchanged.", + "guarantee_migrations": [ + { + "path": "tests/contract/test_input_schema_mapping.py", + "migration": "Only the obsolete assertion that report schema is absent becomes exact report-schema existence/identity/root assertions; original input-schema mapping guarantees remain." }, - "junit": { - "name": "pytest", - "errors": "0", - "failures": "0", - "skipped": "0", - "tests": "210", - "time": "422.404", - "timestamp": "2026-10-14T20:17:32.485386-07:00", - "hostname": "502c238e1080" + { + "path": "tests/scaffold/test_contract_catalogs.py", + "migration": "Only report schema inventory and report README state assertions move to W02; historical catalog meaning remains unchanged." }, - "zero_git_collection_modes": [ - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": "6.344" - }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": "5.983" + { + "path": "tests/contract/test_verification_boundary.py", + "owner_unit": "P4-W01", + "migration": "Resolve actual activation_stage through validated current_local_state in a runtime-only module fixture. Pin all currently inactive or permanently frozen module bytes; preserve the independent 48-module accepted-anchor hashes, all permanent byte locks and explicit stage boundary probes. Pass actual stage into present-source baseline and ceiling checks. Include this file in all three Git-free collection modes." + } + ], + "validation": { + "targeted_final": { + "command": "PYTHONPATH=src /workspace/scratch/4e5267fe5990/p4w01-venv/bin/python -B -m pytest tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py -q --junitxml=/workspace/scratch/4e5267fe5990/p4w02-targeted-combined-03.xml", + "scope": "All eight targeted files after nested-variant coverage and schema decode reuse; not full suite or hosted acceptance. All 222 tracked bytes were identical before and after execution.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "pytest_tests": 6217, + "successful_subtests": 12, + "pytest_seconds": 83.33, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "83.292", + "timestamp": "2026-10-14T20:32:28.623669-07:00", + "hostname": "502c238e1080" }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": "6.052" - } - ], - "slowest_cases": [ - { - "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", - "seconds": 127.224 + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - { - "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", - "seconds": 24.963 + "same_ordered_test_identities_as_combined_02": true, + "raw": { + "p4w02-targeted-combined-03-source-after.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-03.log": { + "bytes": 6992, + "sha256": "e4162dc6b236e0cd5e41b2e5c477b5b84186e264f6b5ab98e49f77f599e44b68" + }, + "p4w02-targeted-combined-03-exit.json": { + "bytes": 792, + "sha256": "05fc158fa36ce52afe907d5fd01ef65a8d4987af4904861c2ad3bd719fc7f9b1" + }, + "p4w02-targeted-combined-03-source-before.json": { + "bytes": 24430, + "sha256": "7843ede83502f2509a9a34ed068ab9f4026e58a2e617634d54985094d5a9bf52" + }, + "p4w02-targeted-combined-03.xml": { + "bytes": 1134879, + "sha256": "41a835561f7957fcb56706f0b668ffd37b4fe050576dfc81a768b509143b7656" + } }, - { - "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", - "seconds": 10.693 + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" + }, + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" + } + } + }, + "schema_final": { + "schema_accepts": true, + "errors": [], + "schema_sha256": "d285249028d1fbb03c1767360fe3c23f0d2efd74d893c5366ff10ac5e8884c4c", + "schema_bytes": 244640, + "reference_sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "reference_bytes": 421307, + "defs": 195, + "closed_objects": 160, + "local_refs": 586, + "counts": { + "scopes": 23, + "populations": 40, + "basis_index": 16, + "capabilities": 15, + "checks": 671, + "observability_domains": 5, + "results": 78, + "findings": 22, + "reasons": 38 }, - { - "name": "test_current_git_metadata_rereads_root_and_state", - "seconds": 6.635 + "method": "AST-extracted finite test-side schema evaluator; no product import or execution; not general Draft certification" + }, + "oracle_final": { + "scope": "P4-W02 independent finite-case oracle authoring; only the five assigned repository paths were edited; no commit and no public API/rendering implementation.", + "artifacts": { + "tests/fixtures/micro/phase4_public_cases.json": { + "bytes": 16543, + "sha256": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb" + }, + "tests/golden/phase4_report_expectations.json": { + "bytes": 638421, + "sha256": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0" + }, + "tests/golden/phase4_reference_report.json": { + "bytes": 421307, + "sha256": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48" + }, + "tests/golden/phase4_reference_report.md": { + "bytes": 564555, + "sha256": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd" + }, + "tests/contract/test_report_test_oracles.py": { + "bytes": 18051, + "sha256": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + } }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", - "seconds": 6.344 + "sources": { + "requirements": [ + "PHASE_4_PLAN.md sections4-6", + "OBSERVABILITY_AND_REPORTING.md sections12-19", + "REPOSITORY_ARCHITECTURE.md sections17-19", + "GOVERNANCE_AND_HANDOFF.md section22.5", + "PRIVACY_AND_DATA_HANDLING.md section4" + ], + "derivation": "Finite input was authored before execution; semantic literal modules were derived by static inspection of accepted owner sources. Independent J/Markdown authoring used those literal expectations, not captured product output." }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", - "seconds": 6.052 + "tests": [ + { + "log": "p4w02-oracle-first.log", + "result": "environment failure: system Python has no pytest; no test collected" + }, + { + "log": "p4w02-oracle-second.log", + "result": "78 passed", + "seconds": 2.91 + }, + { + "log": "p4w02-oracle-third.log", + "result": "83 passed", + "seconds": 3.62 + }, + { + "log": "p4w02-oracle-fourth.log", + "result": "89 passed", + "seconds": 3.2, + "scope": "Final byte artifact hashes match this run; subsequent change only clarifies N17 authorship/mapping prose." + } + ], + "frozen_private_crosschecks": [ + { + "log": "p4w02-literal-crosscheck-01.log", + "fixed_expected_json_sha256": "2f9c467d0bfec054a67dc7d8e3600ad6bc574cfea0cc9145201089f3682d4b13", + "result": "Four differences: M015 PC04 met expected, unmet actual. No other differences in 78 results across scoped metadata/selected values." + }, + { + "log": "p4w02-literal-crosscheck-02.log", + "fixed_expected_json_sha256": "4834a1159931dc905037922c9244b012fb2866d7f5b4d48ea05f88c3821b7bfb", + "result": "Zero differences in all 78 literal private result declarations, including exact scopes, population units/members/selections/limits, checks/state/input/note, basis references, reason code/detail/classification/input/affected refs, count/fraction values, partition/incidence memberships and original disclosure fields/qualifications.", + "limitation": "This was before the final M013 public disclosure-home decision. It does not attest final public bytes or an executed assembler/renderer. The final public mapping delta is independently source-defined and covered by N20, as listed below." + } + ], + "source_resolved_corrections": [ + { + "change": "Four M015 PC04 states met -> unmet", + "basis": "boundary._execute_job uses every assurance observation; projections._record_scope delegates to semantics._analysis_scope, where acquisition-specific BOUND/PARENT mismatch context dimension=None. Empty metadata inventories remain available. No implementation modification." + }, + { + "change": "M003 combined explanatory Reason -> four independent single-affected-result Reasons", + "basis": "Governance22.5 full ID-free semantic body includes affected_result_refs, and process_comparison._reasons constructs per-field actual reasons. No synthesized union before deduplication." + }, + { + "change": "Twenty private findings plus two original-owner-scope true positive path findings with complete_trace components", + "basis": "Root-approved explicit representation of already retained PARENT path proof and origins._trace_witness / contribution_profile._immediate_witness; no report-layer search or new condition. Origin trace6 and immediate trace5 slots are retained; narrower M014 finding remains independent." + }, + { + "change": "Final M013 actual target_object_refs witness slot moved to one native-only corrective_independence_disclosures row; temporary extra Basis idea removed", + "basis": "human_review._human_review_facts explicitly records Inquiry.target_object_refs. Root/ci-approved existing disclosure shape retains original/support rows then scan rows then source-slot rows, all actual selectors/order/duplicates. Exact two tool-owned qualification strings are recorded in N17/D03. No Basis/Check qualification invented.", + "final_delta_from_crosscheck_02": "One public M013 source row; remove temporary selector Basis entry and M013 references; canonical primary disclosure order by record identifier. Underlying literal private results unchanged.", + "tests": "N20 checks the exact N15 row, selector, empty target list and marker. A separate constructed mapping example accepts two ordered scans and duplicate source slots, then rejects dropped duplicate, reordering, lost selector/limit and invented qualification; it claims no actual product projection execution." + } + ], + "counts": { + "results": 78, + "field_keys": 57, + "scopes": 23, + "populations": 40, + "basis": 16, + "checks": 671, + "capabilities": 15, + "domains": 5, + "findings": 22, + "reasons": 38 }, - { - "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", - "seconds": 5.983 + "schema_review": "p4w02-schema-oracle-review.json: final N18 hash accepted by independent finite schema evaluator. This is not a complete Draft202012 validator certification.", + "preserved_failed_evidence": "p4w02-oracle-first-capture/ retains first N17/N18/N19 bytes; all differential/test logs remain separate. No expected output was overwritten from product serialization.", + "pending": "Parent integration/review, contract and existing private test suites, current verification/hosted checks as required. W03 assembly, W05/W06 renderers and W08 public audit execution are not implemented or claimed by this task." + }, + "package_boundary": { + "result": "passed", + "activation_stage": 2, + "checked_modules": 48, + "entry_byte_protected_modules": 46, + "raw": "p4w02-package-boundary-final.json", + "scope": "package bytes/effects only; not checkout authorization" + }, + "public_stop": "Both public audit functions retain immediate NotImplementedError, package exports remain the original three and version remains 0.1.0.dev0. N01 directly exercises both refusals.", + "full_local_suite": "not run for W02; targeted checks do not claim all suites", + "hosted_four_profiles": "New fixture-repaired published-head matrix pending. Neither earlier W02 run was accepted: first had four assertion-failing profiles; second had three successes and one 2400-second incomplete Windows/Python 3.11 timeout.", + "first_hosted_candidate": { + "head": "05d51fce76d2c30bc0ee970a47539e3dcdcfc66e", + "tree": "3de6469bad5a90ca5f0ca970acd55a04ca5ae438", + "run_id": 38672908042, + "attempt": 1, + "state_at_record": "All four profiles completed failure; same 27 failures, 4789 passes and 533 separate successful subtests per profile. No timeouts, interruption, errors or skips.", + "passed_tests_per_completed_profile": 4789, + "failed_tests_per_completed_profile": 27, + "successful_subtests_per_completed_profile": 533, + "note": "All four failed raw sets retained: 48 files each, complete 10 raw command exits (nine zero plus pytest=1), all 222 source hashes and exact test identities reconciled. W08/W14 individual installed witnesses are present but final driver reconciliation failed; no whole-run acceptance. Event digests agree within OS but differ across OS; raw events unavailable.", + "failed_profiles": 4, + "failed_test_categories": { + "frozen_preparation_bytes": 1, + "module_ceiling_and_protected_slots": 8, + "live_effects_and_dependencies": 18 }, - { - "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", - "seconds": 5.791 + "audit": { + "file": "p4w02-first-ci-failure-audit.json", + "bytes": 78635, + "sha256": "d73bfe4d64616e70089743cbc13fe1cb19e55f8c4bb6e7c3262436613923c504" } - ], - "raw": { - "p4w02-w01-repair-01.log": { - "bytes": 272, - "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" + }, + "targeted_initial": { + "command": "PYTHONPATH=src ../p4w01-venv/bin/python -B -m pytest -q tests/contract/test_report_contract.py tests/contract/test_report_test_oracles.py tests/contract/test_input_schema_mapping.py tests/scaffold/test_contract_catalogs.py tests/contract/test_result_contract.py tests/contract/test_observability_preparation.py tests/contract/test_prerequisite_contract.py tests/security/test_input_diagnostics.py --junitxml=../p4w02-targeted-combined-01.xml", + "scope": "8 targeted files; W02 final source working tree; not a full-suite or hosted attestation", + "base_head": "f69cc5dd0a1de025dcf16ebdc4064cc1f20746b2", + "pytest_tests": 1445, + "successful_subtests": 12, + "pytest_seconds": 28.53, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1457", + "time": "28.505", + "timestamp": "2026-10-14T19:42:04.245729-07:00", + "hostname": "502c238e1080" }, - "p4w02-w01-repair-01.xml": { - "bytes": 37608, - "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + "junit_cases_by_classname": { + "tests.contract.test_report_contract": 953, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 }, - "p4w02-w01-repair-01-exit.json": { - "bytes": 377, - "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" - } - }, - "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." - }, - "nested_coverage": { - "audit_file": "p4w02-contract-closed-object-coverage.json", - "bytes": 789627, - "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", - "closed_object_locations": 160, - "member_locations": 627, - "all_current_N01_tests_executed_together": 5725 - }, - "schema_decode_reuse": { - "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", - "before_targeted_seconds": 118.16, - "after_targeted_seconds": 83.33, - "same_6217_ordered_test_identities": true, - "N01_reader_fixtures_assertions_unchanged": true, - "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." - }, - "second_hosted_candidate": { - "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "tree": "52c33972f46e202f3398a4d22250d6406d908e34", - "run_id": 38677156662, - "attempt": 1, - "overall_status": "completed", - "overall_conclusion": "failure", - "successful_profiles": [ - { - "profile": "ubuntu-24.04-py3.11", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946712611, - "job_id": 116233259507, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", - "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + "raw": { + "p4w02-targeted-combined-01.log": { + "bytes": 1710, + "sha256": "2255441e97b4731508ac0be6bafda1a148dfd4fa4c4bdb2b5cd0d685b9d17ee2" }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", - "bytes": 22011, - "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + "p4w02-targeted-combined-01.xml": { + "bytes": 244682, + "sha256": "5628c1f1010bb37e4c8e84be19d430a50da660d36129cb521219ceb09dfc8a4e" + }, + "p4w02-package-boundary-final.json": { + "bytes": 1010, + "sha256": "6dc82959d2ce9a59f328f77fcf9bb4ce335ac25105a27176763f1e8be8c45f06" } }, - { - "profile": "ubuntu-24.04-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11947157128, - "job_id": 116233259226, - "members": 54, - "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", - "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + "legacy_private_definitions": { + "src/source_integrity_toolkit/contracts/report.py": { + "existing_definitions": 46, + "changed_or_missing_existing_definitions": [], + "current_sha256": "c170c0e4a60fd0b223e167c80df21bae5143e6d17b18bb7830ccf64ae66b0f01" }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", - "bytes": 22011, - "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + "src/source_integrity_toolkit/contracts/execution.py": { + "existing_definitions": 9, + "changed_or_missing_existing_definitions": [], + "current_sha256": "43e6351d5fae7a098b44868d9f7c3c340cfcb37d1c7fcef8c3b8008385deaf55" } }, - { - "profile": "windows-2025-py3.13", - "review_pass": true, - "artifact": { - "api_digest_verified": true, - "id": 11946663478, - "job_id": 116233259244, - "members": 54, - "name": "phase3-windows-2025-py3.13-38677156662-1", - "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + "qualification": "Initial pass predates the identified nested-variant coverage gap; retained as historical scoped evidence, not full W02 acceptance." + }, + "targeted_expanded_before_schema_reuse": { + "run": "targeted-combined-02", + "scope": "All eight targeted files after nested coverage expansion, before schema decode reuse optimization; no full suite or hosted acceptance.", + "base_head": "6d83a70c52f0bab1626026228b525cee284095f9", + "N01_sha256": "7fc5c54d756accf53c15120994287fec23eec28468076d8440dd730c0a4be09f", + "tests": 6217, + "successful_subtests": 12, + "seconds": 118.16, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6229", + "time": "118.116", + "timestamp": "2026-10-14T20:26:17.158773-07:00", + "hostname": "502c238e1080" + }, + "by_classname": { + "tests.contract.test_report_contract": 5725, + "tests.contract.test_report_test_oracles": 89, + "tests.contract.test_input_schema_mapping": 75, + "tests.scaffold.test_contract_catalogs.ContractCatalogTests": 11, + "tests.contract.test_result_contract": 104, + "tests.contract.test_observability_preparation": 71, + "tests.contract.test_prerequisite_contract": 110, + "tests.security.test_input_diagnostics": 32 + }, + "raw": { + "p4w02-targeted-combined-02-exit.json": { + "bytes": 750, + "sha256": "3ef39fc879c30b01b66b1915e177b76b33d3f1187c213beaa2efc4bdeec193a1" }, - "tests": 9588, - "successful_subtests": 533, - "source_files": 222, - "test_files": 75, - "review": { - "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", - "bytes": 22043, - "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + "p4w02-targeted-combined-02-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-targeted-combined-02.xml": { + "bytes": 1134880, + "sha256": "9d1816ba6800d8445a7863f803de9e5814b1fe4506816d9bd9112a8ca2ee6ad5" + }, + "p4w02-targeted-combined-02.log": { + "bytes": 6993, + "sha256": "697812df99bd0f0b1b3a154d21bb93841a4c348e6e092b7b2f7e410d56c00583" } } - ], - "failed_profile": { - "profile": "windows-2025-py3.11", - "artifact_id": 11947910949, - "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", - "raw_files": 47, - "collected_tests": 9588, - "test_files": 75, - "source_hashes_before": 222, - "pytest_exit_code": null, - "timed_out": true, - "incomplete": true, - "interrupted": false, - "timeout_seconds": 2400, - "completed_command_exits_zero": 9, - "passed_tests": null, - "successful_subtests": null, - "missing": [ - "junit.xml", - "test.json", - "tracked-after.json", - "both after-guard command records" - ], - "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." - }, - "failure_review": { - "file": "p4w02-ci-38677156662/second-ci-failure-review.json", - "bytes": 29181, - "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" - }, - "timing_review": { - "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", - "bytes": 165877, - "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" - } - }, - "verification_fixture_repair": { - "owner_unit": "P4-W01", - "paths": [ - "tests/contract/test_verification_boundary.py", - "phase4/implementation_evidence.json" - ], - "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", - "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", - "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", - "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", - "local_before_setup_benchmark": { - "file": "p4w02-fixture-setup-before-benchmark.json", - "bytes": 759, - "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" - }, - "local_copy_prototype_benchmark": { - "file": "p4w02-fixture-copy-prototype-benchmark.json", - "bytes": 877, - "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" }, - "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", - "narrow_isolation_check": { - "file": "p4w02-v02-seed-isolation-001-execution.json", - "bytes": 2293, - "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", - "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", - "pytest_tests": 1, - "pytest_seconds": 1.39, - "exit_code": 0 - }, - "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", - "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", - "complete_V02": { - "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", - "tree": "2af7017455280ef022baf09d67475af261de915d", - "owner_unit": "P4-W01", - "activation_stage": 2, - "tests": 211, - "pytest_seconds": 411.58, - "junit": [ + "verification_owner_repair": { + "state": { + "clean": true, + "unit": "P4-W01", + "activation_stage": 2, + "head": "6d83a70c52f0bab1626026228b525cee284095f9", + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c" + }, + "junit": { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "210", + "time": "422.404", + "timestamp": "2026-10-14T20:17:32.485386-07:00", + "hostname": "502c238e1080" + }, + "zero_git_collection_modes": [ + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": "6.344" + }, { - "errors": "0", - "failures": "0", - "hostname": "502c238e1080", - "name": "pytest", - "skipped": "0", - "tests": "211", - "time": "411.581", - "timestamp": "2026-10-14T21:26:45.281756-07:00" + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": "5.983" + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": "6.052" } ], - "exit_code": 0, - "timed_out": false, - "interrupted": false, - "incomplete": false, - "source_files_unchanged_before_after": 222, - "original_ordered_cases_retained": 210, - "new_isolation_cases": 1, - "review": { - "file": "p4w02-fixture-repair-local-review.json", - "bytes": 35249, - "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" - }, - "raw": { - "p4w02-v02-seed-full-001-exit.json": { - "bytes": 954, - "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + "slowest_cases": [ + { + "name": "test_current_package_frozen_preparation_bytes_have_positive_and_negative_controls", + "seconds": 127.224 }, - "p4w02-v02-seed-full-001-source-after.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + { + "name": "test_current_history_handles_missing_and_overridden_objects[missing_blob-current_malformed_object_record]", + "seconds": 24.963 }, - "p4w02-v02-seed-full-001-source-before.json": { - "bytes": 24430, - "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + { + "name": "test_current_package_probe_cannot_substitute_for_checkout_authorization", + "seconds": 10.693 }, - "p4w02-v02-seed-full-001-stderr.log": { - "bytes": 0, - "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + { + "name": "test_current_git_metadata_rereads_root_and_state", + "seconds": 6.635 }, - "p4w02-v02-seed-full-001.log": { + { + "name": "test_current_test_loading_has_no_historical_blob_execution[without_git]", + "seconds": 6.344 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[poisoned_git_output]", + "seconds": 6.052 + }, + { + "name": "test_current_test_loading_has_no_historical_blob_execution[git_blocked]", + "seconds": 5.983 + }, + { + "name": "test_current_module_ceiling_and_protected_slots[inert_size-oversize_module]", + "seconds": 5.791 + } + ], + "raw": { + "p4w02-w01-repair-01.log": { "bytes": 272, - "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + "sha256": "ce774463f626681251881dde8748c29ef7df17ae04d5cde5e0b17e47dcf273d4" }, - "p4w02-v02-seed-full-001.xml": { - "bytes": 37760, - "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + "p4w02-w01-repair-01.xml": { + "bytes": 37608, + "sha256": "f9d020e69009d5ac409dc21a5abca5380c23b28c9cb8b1d08c9f59c3338e5ea0" + }, + "p4w02-w01-repair-01-exit.json": { + "bytes": 377, + "sha256": "ade0f8c0dff82d7133d6499bea5ba5767d9e9b82139491b891d9dca6595f3020" } }, - "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." - } - } - }, - "failures_and_repairs": [ - { - "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", - "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", - "evidence": [ - "p4w02-private-baseline.log", - "p4w02-private-baseline-02.log", - "p4w02-oracle-first.log" - ] - }, - { - "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", - "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", - "evidence": [ - "p4w02-package-boundary-01.json", - "p4w02-package-boundary-fix.json", - "p4w02-safe-transport-boundary-fix.log", - "p4w02-package-boundary-final.json" - ] - }, - { - "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", - "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", - "evidence": [ - "tests/contract/test_report_contract.py", - "p4w02-targeted-combined-01.log" - ] - }, - { - "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", - "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", - "evidence": [ - "p4w02-literal-crosscheck-01.log", - "p4w02-literal-crosscheck-02.log" - ] - }, - { - "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", - "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", - "evidence": [ - "tests/golden/phase4_report_expectations.json", - "p4w02-oracle-final-review.json" - ] - }, - { - "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", - "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", - "evidence": [ - "p4w02-witness-home-review.json", - "p4w02-oracle-final-review.json", - "tests/contract/test_report_test_oracles.py" - ] - }, - { - "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", - "owner_unit": "P4-W01", - "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", - "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", - "evidence": [ - "p4w02-ci-38672908042", - "tests/contract/test_verification_boundary.py" - ], - "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." - }, - { - "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", - "owner_unit": "P4-W02", - "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", - "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." - }, - { - "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", - "owner_unit": "P4-W02", - "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", - "evidence": [ - { - "failure_log": "p4w02-contract-expanded-positives-001.log", - "change": "Absence witness member_count 9 -> 8", - "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + "scope": "Only full V02 file at clean W01 repair checkpoint; W02 product activation remains 2; not full suite/hosted acceptance." + }, + "nested_coverage": { + "audit_file": "p4w02-contract-closed-object-coverage.json", + "bytes": 789627, + "sha256": "d18f7870b5e1fcad43c291170513f35841cfad16715360aa2ff34451ce835247", + "closed_object_locations": 160, + "member_locations": 627, + "all_current_N01_tests_executed_together": 5725 + }, + "schema_decode_reuse": { + "reason": "Initial Windows/Python 3.11 full run used 2171.87 of the unchanged 2400 seconds even before the repaired frozen-byte controls and extra nested tests. Reduce repeated read-only test schema decoding while retaining every case and assertion.", + "before_targeted_seconds": 118.16, + "after_targeted_seconds": 83.33, + "same_6217_ordered_test_identities": true, + "N01_reader_fixtures_assertions_unchanged": true, + "scope": "Test data reuse only; no product, guard, test selection, dependency or runtime limit changes." + }, + "second_hosted_candidate": { + "head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "tree": "52c33972f46e202f3398a4d22250d6406d908e34", + "run_id": 38677156662, + "attempt": 1, + "overall_status": "completed", + "overall_conclusion": "failure", + "successful_profiles": [ + { + "profile": "ubuntu-24.04-py3.11", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946712611, + "job_id": 116233259507, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.11-38677156662-1", + "sha256": "3ec1c384ddb2ae619e8fac0566edd746890ec609257c02c6d345a9a55b2dd66a" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.11-independent-review.json", + "bytes": 22011, + "sha256": "5c15dd120a6d544850d026a337b81d9e355b2d234602bf25e1cea708cf229bd8" + } + }, + { + "profile": "ubuntu-24.04-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11947157128, + "job_id": 116233259226, + "members": 54, + "name": "phase3-ubuntu-24.04-py3.13-38677156662-1", + "sha256": "dcb5dbb9d6f22c02c25c13ae43e8c5d625bd3a19fb6f0e5bbdd05e921fac8b65" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/ubuntu-24.04-py3.13-independent-review.json", + "bytes": 22011, + "sha256": "f0c926d24b7753507e1bd068b22483a98678854980a7040870e6df1291aa516d" + } + }, + { + "profile": "windows-2025-py3.13", + "review_pass": true, + "artifact": { + "api_digest_verified": true, + "id": 11946663478, + "job_id": 116233259244, + "members": 54, + "name": "phase3-windows-2025-py3.13-38677156662-1", + "sha256": "18b8c5658a16a6b984e547dcad1fa640802786b40fffc65a649afe1ef11463c7" + }, + "tests": 9588, + "successful_subtests": 533, + "source_files": 222, + "test_files": 75, + "review": { + "file": "p4w02-ci-38677156662/windows-2025-py3.13-independent-review.json", + "bytes": 22043, + "sha256": "d27b8c1a7a51bf01ab1ba6978443a1c688342448e5b325a00c3c86b97bd84a0b" + } + } + ], + "failed_profile": { + "profile": "windows-2025-py3.11", + "artifact_id": 11947910949, + "artifact_sha256": "868d00a716b2a44a98b6a06ab9507504f155ef5824653fcf15846fa35626ca62", + "raw_files": 47, + "collected_tests": 9588, + "test_files": 75, + "source_hashes_before": 222, + "pytest_exit_code": null, + "timed_out": true, + "incomplete": true, + "interrupted": false, + "timeout_seconds": 2400, + "completed_command_exits_zero": 9, + "passed_tests": null, + "successful_subtests": null, + "missing": [ + "junit.xml", + "test.json", + "tracked-after.json", + "both after-guard command records" + ], + "scope_note": "Quiet progress and retained installed witnesses cannot establish completed suite pass counts. The evidence-stage failure is earlier_stage_failed." }, - { - "failure_log": "p4w02-contract-expanded-positives-002.log", - "change": "Census excludes Result allOf field-binding rules without an object value shape.", - "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + "failure_review": { + "file": "p4w02-ci-38677156662/second-ci-failure-review.json", + "bytes": 29181, + "sha256": "111b1cf992bee8dcc931cb9fe69b79d31aff83d17714ac8814fe6aefb1915245" }, - { - "failure_log": "p4w02-contract-expanded-matrix-001.log", - "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", - "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + "timing_review": { + "file": "p4w02-ci-38677156662/successful-profile-timing-review.json", + "bytes": 165877, + "sha256": "c884a61017ba025cad8561f3458b65c16f9c3362c3654aa1dcd3081f498aab17" } - ] - }, - { - "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", - "repair_owner_unit": "P4-W01", - "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", - "evidence": [ - "p4w02-ci-38677156662/second-ci-failure-review.json", - "p4w02-ci-38677156662/successful-profile-timing-review.json", - "p4w02-fixture-setup-before-benchmark.json", - "p4w02-fixture-copy-prototype-benchmark.json" - ] - } - ], - "remaining": { - "W03_to_W10": "not started", - "general_projection_ids_reference_closure": "W03 pending", - "actual_disclosure_selection": "W04 pending", - "JSON_and_Markdown_product_encoders": "W05/W06 pending", - "same_invocation_runtime_budget_and_stops": "W07 pending", - "public_audit_bundle": "W08 pending; remains unavailable", - "file_native_cli_audit_release": "deferred" - }, - "historical_records": [ - { - "phase": "P4", - "current_unit": "P4-W01", - "status": "P4-W01 implementation complete; local test results verified; hosted review pending", - "owner_authorization": { - "instruction": "批准计划,启动 P4-W01", - "date": "2026-10-14", - "scope": "P4-W01 only; no W02 execution, merge, release or product activation", - "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", - "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." }, - "accepted_anchor": { - "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", - "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", - "parents": [ - "2413a29b839b7e1de8f76a449762f031de19d52b", - "ce05c5dda9368182dbee074253d3a7c829af7719" + "verification_fixture_repair": { + "owner_unit": "P4-W01", + "paths": [ + "tests/contract/test_verification_boundary.py", + "phase4/implementation_evidence.json" ], - "vc_run": 38128491330, - "post_merge_run": 38164028893 - }, - "changes": [ - "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", - "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", - "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", - "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", - "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", - "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." - ], - "guarantee_migrations": [ - { - "files": [ - "tests/scaffold/test_imports.py", - "tests/scaffold/test_module_manifest.py", - "tests/scaffold/test_no_runtime_implementation.py", - "tests/scaffold/test_layer_boundaries.py", - "tests/security/test_preparation_inertness.py", - "tests/contract/test_phase3_transition.py" - ], - "retained_test_definitions": 46, - "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." + "purpose": "Remove repeated real Git bootstrap preparation while preserving independent physical repositories, fresh HEAD/tree/clean checks and every original test body. No guard, verdict, AST or product cache.", + "status": "Complete V02 passed at clean local W01 repair checkpoint; new final published-head four-profile verification pending", + "baseline_head": "3b9d8a9ea5fc8c795859f74072f061efdea471e7", + "baseline_v02_sha256": "cfbe145cdf39d99265132241c2cf2addab16e1204e54e83365e2bcfb731d997d", + "local_before_setup_benchmark": { + "file": "p4w02-fixture-setup-before-benchmark.json", + "bytes": 759, + "sha256": "4bb967584d5580fb94c66a44491021e8705a79e942d59c8ea65405580a9dab74" + }, + "local_copy_prototype_benchmark": { + "file": "p4w02-fixture-copy-prototype-benchmark.json", + "bytes": 877, + "sha256": "c01228672534bf7c002baab0df75dd17c7b90046908a99eebf210c465c7c6129" }, - { - "files": [ - "tests/contract/test_phase2_transition.py", - "tests/integration/test_analytical_installed_runtime.py", - "tests/scaffold/test_ci_contract.py" + "timing_limits": "Local three-sample setup measurements are only motivation. Successful-profile JUnit hotspots do not identify the active Windows 3.11 test at timeout; only a new full matrix can prove sufficient runtime.", + "narrow_isolation_check": { + "file": "p4w02-v02-seed-isolation-001-execution.json", + "bytes": 2293, + "sha256": "7c6ff80ffdfb138ee95dd03f7747ffb342d6a87bb4c3271e047e419cdb98aafa", + "scope": "Only the new destructive repository-copy isolation test; not full V02 or full suite", + "pytest_tests": 1, + "pytest_seconds": 1.39, + "exit_code": 0 + }, + "repaired_v02_sha256": "5a717fe0d5b0d02cd01243626e24644da6e1e30ebd7d617d18235223fa619df4", + "unchanged_test_bodies": "All 45 original test function bodies and decorators remain exactly AST-equal; all 210 original parameterized cases retained. One new copy-isolation case added.", + "complete_V02": { + "head": "d3940ead3805a903bbb711aa60f370225c81a9bb", + "tree": "2af7017455280ef022baf09d67475af261de915d", + "owner_unit": "P4-W01", + "activation_stage": 2, + "tests": 211, + "pytest_seconds": 411.58, + "junit": [ + { + "errors": "0", + "failures": "0", + "hostname": "502c238e1080", + "name": "pytest", + "skipped": "0", + "tests": "211", + "time": "411.581", + "timestamp": "2026-10-14T21:26:45.281756-07:00" + } ], - "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + "exit_code": 0, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "source_files_unchanged_before_after": 222, + "original_ordered_cases_retained": 210, + "new_isolation_cases": 1, + "review": { + "file": "p4w02-fixture-repair-local-review.json", + "bytes": 35249, + "sha256": "24b1d23231bdbcadf52ab72fbea03ffa7e56b74a3a6cd01358daa1739acb2f1f" + }, + "raw": { + "p4w02-v02-seed-full-001-exit.json": { + "bytes": 954, + "sha256": "296b6e5d3404a8af6c6fd7af014400c6a1b499b22346d83470ea11dbd6f040f3" + }, + "p4w02-v02-seed-full-001-source-after.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-source-before.json": { + "bytes": 24430, + "sha256": "26d2a35a00eb463337bc1b2992bac6611247afd79bb41a6dac7902416e01a0ce" + }, + "p4w02-v02-seed-full-001-stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "p4w02-v02-seed-full-001.log": { + "bytes": 272, + "sha256": "850a3ad3f11d84cbfde3825628a47c52e719a67e58f589caa5db3586987e9409" + }, + "p4w02-v02-seed-full-001.xml": { + "bytes": 37760, + "sha256": "6bfea2064ce8a3749b1a15cfef9d7c7bdaf9c29ad0cfda759802204b4fc1c7be" + } + }, + "scope": "Only complete V02 on the recorded clean local tree, not full suite or hosted acceptance. Subsequent local evidence-record update changes D05 only." } - ], - "validation": { - "package_boundary": { - "result": "passed", - "stage": 1, - "checked_modules": 48, - "byte_protected_modules": 48 + } + }, + "failures_and_repairs": [ + { + "finding": "Initial local test invocation lacked PYTHONPATH=src; separate agent default Python lacked pytest.", + "repair": "Use the existing pinned Python 3.12.14 environment with explicit source path. Original collection-error logs are retained.", + "evidence": [ + "p4w02-private-baseline.log", + "p4w02-private-baseline-02.log", + "p4w02-oracle-first.log" + ] + }, + { + "finding": "Package boundary rejected collections.abc import and direct Exception/ValueError.__init__ calls.", + "repair": "Use already-permitted typing.Mapping; fixed safe args properties avoid direct dunder calls. No guard/import policy changed.", + "evidence": [ + "p4w02-package-boundary-01.json", + "p4w02-package-boundary-fix.json", + "p4w02-safe-transport-boundary-fix.log", + "p4w02-package-boundary-final.json" + ] + }, + { + "finding": "Independent component review found missing local witness-ref equality, Assertion case targets and whole-entity/edge identity bindings.", + "repair": "Restore the frozen private contracts in local validation and schema where expressible; positive variants precede single-property counterexamples. No source lookup or W03 reference closure is claimed.", + "evidence": [ + "tests/contract/test_report_contract.py", + "p4w02-targeted-combined-01.log" + ] + }, + { + "finding": "Four independently handwritten M015 PC04 states were met rather than unmet.", + "repair": "Static source review proved acquisition-specific assurance records do not match dimension=None; correct only those expected states, without recording product output.", + "evidence": [ + "p4w02-literal-crosscheck-01.log", + "p4w02-literal-crosscheck-02.log" + ] + }, + { + "finding": "M003 explanatory Reasons had been merged despite distinct affected Result references.", + "repair": "Keep four distinct full semantic bodies/anchors; no unioning references solely to deduplicate.", + "evidence": [ + "tests/golden/phase4_report_expectations.json", + "p4w02-oracle-final-review.json" + ] + }, + { + "finding": "Broad origin traces cannot attach to narrower target-only M014 Finding scope; human-review scans/source slots may have no private Finding or adequate basis/check home.", + "repair": "Preserve two actual same-owner proven path Findings and all original twenty Findings. For human-review, use existing native-only disclosure rows with fixed scan/source markers, original ordering/selectors/repeated slots, without invented conditions or qualifications.", + "evidence": [ + "p4w02-witness-home-review.json", + "p4w02-oracle-final-review.json", + "tests/contract/test_report_test_oracles.py" + ] + }, + { + "finding": "First W02 hosted head 05d51fce76d2c30bc0ee970a47539e3dcdcfc66e, run 38672908042 attempt 1, failed on both completed Ubuntu profiles: 27 failed, 4789 passed and 533 separate successful subtests. Current-source V02 checks still assumed stage 1 and falsely rejected the two W02-authorized contract files. Windows profiles were still running when this repair record was written.", + "owner_unit": "P4-W01", + "repair": "Use actual verified activation stage for current-source checks, with no guard, scope policy, authorization, source pin, workflow or dependency change. All 48 accepted-anchor hashes remain checked separately. New runtime fixture is covered by three Git-free collect-only modes.", + "validation_state": "Clean local W01 repair checkpoint 6d83a70c52f0bab1626026228b525cee284095f9 passed all 210 V02 tests in 422.40s, including three Git-free collection modes; actual owner W01, activation stage 2, clean checkout. Corrected final hosted validation pending.", + "evidence": [ + "p4w02-ci-38672908042", + "tests/contract/test_verification_boundary.py" + ], + "subsequent_observation": "All four initial hosted profiles ultimately failed with exactly the same 27 identities; Windows did not add a new failure class." + }, + { + "finding": "Independent W02 acceptance audit found that initial N01 outer-member matrices did not separately exercise every SelectedNative and nested disclosure object variant. The initial 1445-test targeted pass is retained but does not establish that omitted coverage.", + "owner_unit": "P4-W02", + "repair": "Add source-authored legal variants followed by missing/extra/type/state/value counterexamples and an explicit object-position coverage audit. Do not generate valid expected examples from the schema or product serialization.", + "validation_state": "Completed: all 160 closed object positions and 627 members have explicit controls; final combined run executes all 5725 N01 tests and 492 other targeted tests, with 12 successful subtests." + }, + { + "finding": "Expanded independent tests exposed three test-data/audit errors: absence-witness occurrence count 9 instead of 8; census included non-object Result conditions; supersession free-text reason was mistakenly treated as an enum through its union.", + "owner_unit": "P4-W02", + "repair": "Correct the independently source-proven count, enumerate only declared object positions, and keep supersession source prose unconstrained with four explicit positive controls. Product/schema bytes were not changed to fit the mistaken expectations.", + "evidence": [ + { + "failure_log": "p4w02-contract-expanded-positives-001.log", + "change": "Absence witness member_count 9 -> 8", + "source": "graph/witnesses.py:_commit counts 1 start + 1 target + 2 examined nodes + 1 examined edge + 1 frontier + 1 terminal + 1 observation." + }, + { + "failure_log": "p4w02-contract-expanded-positives-002.log", + "change": "Census excludes Result allOf field-binding rules without an object value shape.", + "source": "Only schema locations explicitly declaring type=object belong to the 160-object census; legal values unchanged." + }, + { + "failure_log": "p4w02-contract-expanded-matrix-001.log", + "change": "Supersession reason remains free source text even through SelectedRelationDetails union; reason enum controls restricted to Gap and UnresolvedReference.", + "source": "CLAIMS_EVIDENCE_AND_LINEAGE_SPEC.md 3.3,6.9,6.12,8.3,9.6; four prose positives added." + } + ] + }, + { + "finding": "Second W02 hosted candidate Windows/Python 3.11 pytest exceeded the existing 2400-second suite budget; the other three profiles completed successfully. The failing profile has no final JUnit or passed count.", + "repair_owner_unit": "P4-W01", + "repair": "Replaced repeated bootstrap preparation with one delayed real seed and independent complete per-case copies; all original bodies, negatives, actual Git history and budget retained. Destructive copy-isolation control passed; all 211 V02 cases passed at the recorded clean local checkpoint. Windows runtime benefit is not yet established.", + "evidence": [ + "p4w02-ci-38677156662/second-ci-failure-review.json", + "p4w02-ci-38677156662/successful-profile-timing-review.json", + "p4w02-fixture-setup-before-benchmark.json", + "p4w02-fixture-copy-prototype-benchmark.json" + ] + } + ], + "remaining": { + "W03_to_W10": "not started", + "general_projection_ids_reference_closure": "W03 pending", + "actual_disclosure_selection": "W04 pending", + "JSON_and_Markdown_product_encoders": "W05/W06 pending", + "same_invocation_runtime_budget_and_stops": "W07 pending", + "public_audit_bundle": "W08 pending; remains unavailable", + "file_native_cli_audit_release": "deferred" + }, + "historical_records": [ + { + "phase": "P4", + "current_unit": "P4-W01", + "status": "P4-W01 implementation complete; local test results verified; hosted review pending", + "owner_authorization": { + "instruction": "批准计划,启动 P4-W01", + "date": "2026-10-14", + "scope": "P4-W01 only; no W02 execution, merge, release or product activation", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "plan_header": "Approved exact draft bytes retained unchanged; approval is the user instruction, not this record." }, - "bounded_driver": { - "result": "passed", - "tests": 46, - "successful_subtests": 25, - "elapsed_seconds": 58.94, - "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", - "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", - "clean": false + "accepted_anchor": { + "head": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "tree": "f6fbb8965520f33a09ca38cf413e11ca561110dd", + "parents": [ + "2413a29b839b7e1de8f76a449762f031de19d52b", + "ce05c5dda9368182dbee074253d3a7c829af7719" + ], + "vc_run": 38128491330, + "post_merge_run": 38164028893 }, - "current_boundary": { - "first_attempt": { - "passed": 176, - "failed": 24, - "elapsed_seconds": 224.51 - }, - "retry": { - "result": "passed", - "tests": 208, - "elapsed_seconds": 242.61 + "changes": [ + "Replace current VC authority in place with exact Phase 4 anchor, plan, ten owner path scopes and twelve activation boundaries.", + "Bind event/receipt identity to hash-verified actual head message and monotonic verified history stage; reject all-parent intermediate violations.", + "Preserve no-Git collection, original private installed witnesses, all 48 product bytes, workflow, pins, budgets and two public refusals.", + "Create 228 pending public obligation rows with exact source and frozen core pointers; no public/rendering completion claimed.", + "Hash-verify raw commit, tree and blob bytes; preserve audit_file binding as well as function bytes; reject hidden intermediate product effects.", + "Reject missing, malformed, nonzero or incomplete raw preparation exit receipts instead of trusting prepare.ok alone." + ], + "guarantee_migrations": [ + { + "files": [ + "tests/scaffold/test_imports.py", + "tests/scaffold/test_module_manifest.py", + "tests/scaffold/test_no_runtime_implementation.py", + "tests/scaffold/test_layer_boundaries.py", + "tests/security/test_preparation_inertness.py", + "tests/contract/test_phase3_transition.py" + ], + "retained_test_definitions": 46, + "replacement": "Runtime stage helpers replace VC identity; permanent file/native slots replace future-report inert mutation fixtures; active reporting effects remain tested. Whole-package safe-body mutation still fails frozen bytes; isolated effect-positive control proves the effects checker can accept valid code." }, - "focused_retry": { + { + "files": [ + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/scaffold/test_ci_contract.py" + ], + "replacement": "Current unit/activation/head binding only. Original preparation and analytical child scripts, hero/limited/invalid/effects/installed-byte witnesses and both public refusals retained." + } + ], + "validation": { + "package_boundary": { "result": "passed", - "tests": 50, - "elapsed_seconds": 49.59 + "stage": 1, + "checked_modules": 48, + "byte_protected_modules": 48 }, - "latest_increment": { + "bounded_driver": { "result": "passed", - "tests": 6, - "elapsed_seconds": 5.2, - "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + "tests": 46, + "successful_subtests": 25, + "elapsed_seconds": 58.94, + "scope": "All tests in V03, T07 and T08; working-tree diagnostic, not an exact hosted candidate", + "head": "64a9a856ad3460f84acb3967688cb99d61b75fcc", + "clean": false }, - "current_test_nodes": 210, - "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" - }, - "local_full": { - "result": "full test suite passed; original preparation receipt incomplete", - "mode": "local", - "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", - "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", - "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", - "python": "3.12.14", - "tests": 3772, - "successful_subtests": 445, - "test_files": 73, - "elapsed_suite_seconds": 1285.41, - "identities_match": true, - "tracked_bytes_unchanged": true, - "guards_pass": true, - "clean": true, - "archive_count": 6, - "installed_receipts": { - "w08": { - "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", - "receipt_persisted": false + "current_boundary": { + "first_attempt": { + "passed": 176, + "failed": 24, + "elapsed_seconds": 224.51 }, - "w14": { - "distributions": 3, - "modules": 48, - "receipt_persisted": true, - "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" - } - }, - "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", - "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", - "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", - "hosted_matrix_attestation": false, - "full_local_validation_attested": false, - "preparation_receipt_gap": { - "file": "pip-check-exit.json", - "exit_code": null, - "incomplete": true, - "stdout_bytes": 0, - "stderr_bytes": 0, - "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", - "independent_review": "p4w01-local-evidence-review.json", - "summary_pass_flag_is_not_sufficient": true + "retry": { + "result": "passed", + "tests": 208, + "elapsed_seconds": 242.61 + }, + "focused_retry": { + "result": "passed", + "tests": 50, + "elapsed_seconds": 49.59 + }, + "latest_increment": { + "result": "passed", + "tests": 6, + "elapsed_seconds": 5.2, + "scope": "audit_file body/decorator/rebinding, restored reporting effects, raw root/nested tree corruption" + }, + "current_test_nodes": 210, + "unified_suite_result": "all 210 current boundary nodes included in successful full local suite" }, - "separate_dependency_recheck": { - "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "local_full": { + "result": "full test suite passed; original preparation receipt incomplete", + "mode": "local", + "head": "5c796eca68c1e8956cb0cea47b1c74e5471dfd04", + "tree": "3e5779b0d639731bbd7418572a9f201cae21ac50", + "same_tree_remote_checkpoint": "d6bc330769d5fe382778521b24dec465a70f9cd6", + "python": "3.12.14", + "tests": 3772, + "successful_subtests": 445, + "test_files": 73, + "elapsed_suite_seconds": 1285.41, + "identities_match": true, + "tracked_bytes_unchanged": true, + "guards_pass": true, "clean": true, - "same_pinned_environment": true, - "driver": "current run() implementation", - "pip_check_exit": { - "exit_code": 0, - "incomplete": false, - "interrupted": false, - "timed_out": false, - "timeout_seconds": 180 + "archive_count": 6, + "installed_receipts": { + "w08": { + "reason": "Retained local unittest deletes its temporary receipt; exact JUnit result is required", + "receipt_persisted": false + }, + "w14": { + "distributions": 3, + "modules": 48, + "receipt_persisted": true, + "sha256": "5d7bb0500313563da7c819c114e0d9e7197029da039a8512a7c50224b4ffa4a7" + } }, - "result": "No broken requirements found.", - "evidence_directory": "p4w01-pip-recheck-01", - "raw_sha256": { - "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", - "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", - "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", - "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", - "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + "summary_sha256": "aef68d61f87778e0ae194ba21e66fbd14bdac8ef070c3ea0226511946bdad8c5", + "junit_sha256": "57aca3ae957e61ecec8f2d34c8ca17bc11986dfc7b354aba9600a541eff7e7a2", + "pytest_log_sha256": "db7649da5d47678be694817a0b93cc70b3d1b5b32c534e6f6347a8b3da8cf887", + "hosted_matrix_attestation": false, + "full_local_validation_attested": false, + "preparation_receipt_gap": { + "file": "pip-check-exit.json", + "exit_code": null, + "incomplete": true, + "stdout_bytes": 0, + "stderr_bytes": 0, + "finding": "prepare.json and summary.json report success, but the original dependency-check completion is not substantiated by retained raw evidence. Original files remain unchanged; cause not established.", + "independent_review": "p4w01-local-evidence-review.json", + "summary_pass_flag_is_not_sufficient": true }, - "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + "separate_dependency_recheck": { + "head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "clean": true, + "same_pinned_environment": true, + "driver": "current run() implementation", + "pip_check_exit": { + "exit_code": 0, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 180 + }, + "result": "No broken requirements found.", + "evidence_directory": "p4w01-pip-recheck-01", + "raw_sha256": { + "binding.json": "66c4861be7f5a9bab9cf39efe941d7f0f9e46bbb75431bb51353327b934d28bc", + "installed-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "installed-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "installed.log": "df655c13ea5e45ccbdcc9b0c42666aaff6c179831e413af89ba03b1e58599c19", + "pip-check-exit.json": "37b18d2e9207b00f0fd7332c77d886594bccb86fe80254451804e1c105dc88f7", + "pip-check-stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "pip-check.log": "9261363b733079a641c2e4cc9bc46ffa1d8336945a87f807b6cf68847dbc9b09", + "scope.json": "623b5fe708bc4258239e88ae3b062cf48d3042ed4e696dcef7dbd2c71fe3d972" + }, + "limitation": "Separate supplemental check only; does not repair or retrospectively attest the original incomplete receipt." + } + }, + "hosted_four_profiles": { + "status_at_publication": "pending", + "record_location": "exact-head implementation PR checks and raw run artifacts", + "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." + }, + "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", + "migrated_six_files": { + "result": "passed", + "tests": 128, + "successful_subtests": 79, + "elapsed_seconds": 72.67, + "collection_nodes": 128, + "collection_subprocess_calls": 0, + "scope": "V04-V07, T04, T09 working-tree diagnostics" + }, + "preparation_reconciliation_fix": { + "result": "passed", + "tests": 45, + "successful_subtests": 113, + "elapsed_seconds": 3.32, + "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", + "clean": false, + "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", + "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", + "supplemental_complete_records_accepted": true, + "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", + "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" } }, - "hosted_four_profiles": { - "status_at_publication": "pending", - "record_location": "exact-head implementation PR checks and raw run artifacts", - "note": "Subsequent hosted results are recorded externally, without a self-referential evidence commit. Local validation is not a hosted attestation." - }, - "cross_review": "Implementation review and independent full-test/source/install evidence checks completed; original local pip-check receipt gap retained and separately rechecked.", - "migrated_six_files": { - "result": "passed", - "tests": 128, - "successful_subtests": 79, - "elapsed_seconds": 72.67, - "collection_nodes": 128, - "collection_subprocess_calls": 0, - "scope": "V04-V07, T04, T09 working-tree diagnostics" + "failures_and_repairs": [ + { + "finding": "Top-level stage lookup executed Git during test collection.", + "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", + "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", + "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Pretty Git tree listing was not itself hash-verified.", + "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", + "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", + "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" + }, + { + "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", + "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", + "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." + } + ], + "remaining": { + "W02_to_W10": "not started", + "public_api_and_reports": "not implemented", + "file_native_cli_audit_release": "deferred" }, - "preparation_reconciliation_fix": { - "result": "passed", - "tests": 45, - "successful_subtests": 113, - "elapsed_seconds": 3.32, - "scope": "Entire V03 file after narrow raw preparation receipt reconciliation change; local working-tree diagnostic", - "clean": false, - "base_head": "d0a8b6df23916c8e75fa9d98e29d1ca58fd349e0", - "original_raw_evidence_rejected": "preparation_subprocess_not_successful:pip-check", - "supplemental_complete_records_accepted": true, - "log_sha256": "618d9c06cf1c64b5bb57eb1b56511661622cd3e7631142ce323f4287b441c473", - "junit_sha256": "52fcca0fad4c3c4d48dcf0318452a3ac54fb07f0921d52e499b8f1ba872b51fc" - } - }, - "failures_and_repairs": [ - { - "finding": "Top-level stage lookup executed Git during test collection.", - "repair": "Moved stage lookup to cached runtime helpers; zero-Git collection witnesses retained.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "First boundary run retained old CLI/metadata/error-precedence expectations; Git stripped invalid trailing footer spaces in the fixture.", - "repair": "Update expected current interface from independently read raw commit bytes; preserve verbatim footer input and check actual bytes; retain every rejection guarantee.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Whole-file path scope alone omitted the narrow mixed-file semantic preservation and did not reject restored intermediate workflow or audit_file edits.", - "repair": "Compare accepted unaffected mixed-file segments without executing historical tests; enforce workflow security fields and exact audit_file on each snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Pretty Git tree listing was not itself hash-verified.", - "repair": "Parse recursively hash-verified raw tree objects rooted at the verified commit; direct tree-response corruption counterexample added.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Preserving an audit_file definition alone did not prevent later name rebinding.", - "repair": "Reject duplicate definitions and assignment/import/exception/pattern rebinding; reject current forbidden effects in each changed active product snapshot.", - "verification": "passed in the final unified local suite; earlier attempt and focused diagnostic logs retained" - }, - { - "finding": "Independent review found original local pip-check exit receipt incomplete while prepare/summary reported success. The cause of that raw gap is unknown; separately, evidence_report trusted prepare.ok without reconciling dependency command exits.", - "repair": "Preserve original raw evidence and qualified claims; add full-route raw preparation exit reconciliation and positive/negative regression coverage. Keep documentation route free of dependency execution. A separate same-environment pip check is supplemental only.", - "verification": "V03: 45 tests and 113 successful subtests, 3.32 seconds, exit 0. Original incomplete pip-check receipt is rejected by corrected validator; separate complete supplemental records accepted. Actual final hosted head evidence recorded externally on the implementation PR." - } - ], - "remaining": { - "W02_to_W10": "not started", - "public_api_and_reports": "not implemented", - "file_native_cli_audit_release": "deferred" - }, - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", - "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." - } - ], - "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", - "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", - "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", - "active_repair_owner_unit": "P4-W01" - } - ], - "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", - "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", - "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." - } - ], - "authority_notice": "Review-only evidence, not authority, product input or test selection.", - "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", - "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" - } - ], - "authority_notice": "Review-only evidence; not product input or authorization policy.", - "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", - "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." - } - }, - "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", - "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", - "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-14T08:20:10.974170+00:00", + "publication_note": "The published checkpoint d6bc330769d5fe382778521b24dec465a70f9cd6 has exactly the tested local tree. The next commit updates this evidence file only. Neither checkpoint grants W02 execution, phase acceptance, merge or release." + } + ], + "authority_notice": "Evidence only. This file cannot grant paths, stages, approvals or acceptance.", + "validated_at_utc": "2026-10-15T04:34:17.870579+00:00", + "publication_note": "This record preserves both failed hosted candidates and three successful profiles of the second run. The subsequent W01-owner setup repair retains activation stage 2. Its final exact-head hosted receipts will be recorded externally after publication without a self-referential success commit.", + "active_repair_owner_unit": "P4-W01" + } + ], + "authority_notice": "Review-only evidence; not product input, authorization policy or test selection.", + "validated_at_utc": "2026-10-25T06:55:01.560944+00:00", + "publication_note": "Exact published head/tree and configured CI results will be recorded externally and on PR #36 after publication, without a self-referential success commit." + } + ], + "authority_notice": "Review-only evidence, not authority, product input or test selection.", + "publication_note": "Post-commit execution results belong in external evidence and the later W04 record; this record makes no self-referential validation claim.", + "recorded_at_utc": "2026-10-25T07:54:40.020767+00:00" + } + ], + "authority_notice": "Review-only evidence; not product input or authorization policy.", + "validated_at_utc": "2026-10-25T08:04:41.675116+00:00", + "publication_note": "Exact remote repair/W04 commit bindings and actual CI status are recorded externally and on PR36 after publication. No completed Windows matrix is claimed before it actually finishes." + } + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 remains 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48.", + "validated_at_utc": "2026-10-25T12:10:26.689232+00:00", + "publication_note": "These known execution facts precede the commit. Only D04/D05 changed after the final scoped run; tested product/test bytes are unchanged. Commit/tree identity and hosted outcome will be separately recorded." + } + }, + "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", + "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", + "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." + } + }, + "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48 is unchanged.", + "validated_at_utc": "2026-10-25T16:39:15.237589+00:00", + "publication_note": "W06 product/tests frozen during final341case run. Separately tested repair inherited afterward; only D04/D05 then record known facts. Published hashes/CI are external." + }, + "remaining": [ + "W07 implementation/integration and later units remain separate.", + "No merge/release/public API activation." + ], + "authority_notice": "This record is evidence only and cannot grant path, semantic, budget or execution authority." + }, + "inherited_W03_repair": { + "owner": "P4-W03", + "activation_stage": 6, + "commits": [ + { + "sha": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "tree": "aa0b90edfa2b7872034f40be444eac3a00f70f1a", + "paths": [ + "phase4/implementation_evidence.json", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py" + ], + "message": "Preserve completed empty search traces in formal reports\n\nSIT-Phase-Unit: P4-W03" + }, + { + "sha": "944298a1df694c5ae9a67109f6a238444c408ea2", + "tree": "229cf127ac90d6d5a59ef5e01ab939348a1438ce", + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_report_assembly.py" + ], + "message": "Correct empty trace regression to its original owner fields\n\nSIT-Phase-Unit: P4-W03" + } + ], + "final_clean_checkpoint": { + "head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "tree": "229cf127ac90d6d5a59ef5e01ab939348a1438ce", + "parent": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "status": "", + "paths": [ + "phase4/implementation_evidence.json", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py" + ], + "owner": "P4-W03", + "activation_stage": 6, + "commits": [ + { + "sha": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "tree": "aa0b90edfa2b7872034f40be444eac3a00f70f1a", + "paths": [ + "phase4/implementation_evidence.json", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py" + ], + "message": "Preserve completed empty search traces in formal reports\n\nSIT-Phase-Unit: P4-W03" + }, + { + "sha": "944298a1df694c5ae9a67109f6a238444c408ea2", + "tree": "229cf127ac90d6d5a59ef5e01ab939348a1438ce", + "paths": [ + "phase4/implementation_evidence.json", + "tests/contract/test_report_assembly.py" + ], + "message": "Correct empty trace regression to its original owner fields\n\nSIT-Phase-Unit: P4-W03" + } + ] + }, + "validation": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "tests/contract/test_report_assembly.py", + "-q", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-w03-repair/focused-002.xml" + ], + "pythonpath": "/workspace/scratch/4e5267fe5990/source-integrity-toolkit-w07-w03-repair/src", + "start": "2026-10-26T03:35:31.593000+00:00", + "elapsed_seconds": 42.382810527999936, + "exit_code": 0, + "source_count": 230, + "source_hashes_equal": true, + "committed_state": { + "head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "tree": "229cf127ac90d6d5a59ef5e01ab939348a1438ce", + "parent": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "status": "", + "paths": [ + "phase4/implementation_evidence.json", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py" + ], + "owner": "P4-W03", + "activation_stage": 6 + } + }, + "execution_raw": { + "file": "p4w07-w03-repair/focused-002-execution.json", + "sha256": "886345ece3a1c9dac35156df4537875529a00c65b3556fb30cff510124573aec", + "bytes": 950 + }, + "junit": { + "case_count": 69, + "counts": { + "passed": 69, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 42.012, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "69", + "time": "42.012", + "timestamp": "2026-10-26T14:35:31.803579+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-w03-repair/focused-002.xml", + "sha256": "011e2fe159325ee2f242c9aad5b4875a97e26ab043493e7018e16e5c74ab93a2", + "bytes": 11277 + } + }, + "cases_by_classname": { + "tests.contract.test_report_assembly": 69 + }, + "failed_case_ids": [], + "raw": [ + { + "file": "p4w07-w03-repair/focused-002.log", + "sha256": "b819b83736b31d9957f485772f5a8dc64eb43d3eef2d13c0b984237ee6511c24", + "bytes": 100 + }, + { + "file": "p4w07-w03-repair/focused-002-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-w03-repair/focused-002.xml", + "sha256": "011e2fe159325ee2f242c9aad5b4875a97e26ab043493e7018e16e5c74ab93a2", + "bytes": 11277 + } + ] + }, + "initial_failed_attempt": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "tests/contract/test_report_assembly.py", + "-q", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-w03-repair/focused-001.xml" + ], + "pythonpath": "/workspace/scratch/4e5267fe5990/source-integrity-toolkit-w07-w03-repair/src", + "start": "2026-10-26T03:32:17.863848+00:00", + "elapsed_seconds": 47.27906492799957, + "exit_code": 1, + "source_count": 230, + "source_hashes_equal": true, + "committed_state": { + "head": "44cf17b1a41693a35a8cac3ea92db83e48fb858b", + "tree": "aa0b90edfa2b7872034f40be444eac3a00f70f1a", + "parent": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "status": "", + "paths": [ + "phase4/implementation_evidence.json", + "src/source_integrity_toolkit/reporting/assemble.py", + "tests/contract/test_report_assembly.py" + ], + "owner": "P4-W03", + "activation_stage": 6 + } + }, + "execution_raw": { + "file": "p4w07-w03-repair/focused-001-execution.json", + "sha256": "cf29401fc3ca440c34c6fc54af494b864d98bd03d2e3e750cc50910ec44b4ace", + "bytes": 949 + }, + "junit": { + "case_count": 69, + "counts": { + "passed": 68, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 46.93, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "69", + "time": "46.930", + "timestamp": "2026-10-26T14:32:18.077195+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-w03-repair/focused-001.xml", + "sha256": "def423a5a81c76e872b83c91d13c1601c2cbe7e8dd35bbf1e584a4a9e864b6eb", + "bytes": 15030 + } + }, + "cases_by_classname": { + "tests.contract.test_report_assembly": 69 + }, + "failed_case_ids": [ + "tests.contract.test_report_assembly::test_empty_seed_dimension_preserves_completed_trace_and_unavailable_ratios" + ], + "raw": [ + { + "file": "p4w07-w03-repair/focused-001.log", + "sha256": "73bd48f130a1a7f9b8ce7606f33801b15202094fbab010cff623a8560ce8827c", + "bytes": 4147 + }, + { + "file": "p4w07-w03-repair/focused-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-w03-repair/focused-001.xml", + "sha256": "def423a5a81c76e872b83c91d13c1601c2cbe7e8dd35bbf1e584a4a9e864b6eb", + "bytes": 15030 + } + ] + }, + "source_basis": [ + "OBSERVABILITY_AND_REPORTING.md W4-10", + "OBSERVABILITY_AND_REPORTING.md18.2", + "OBSERVABILITY_AND_REPORTING.md19.2", + "PHASE_4_PLAN.md W03 and section4.2" + ], + "scope": "W03 projection repair only; no public integration or full suite claim", + "diagnosis": "A real completed empty complete_trace did not have an admitted formal projection. The repair preserves the exact empty trace and unavailable zero-denominator ratios through a scoped no-witness carrier; no analytical result or frozen golden was rewritten.", + "first_attempt": "The initial new regression expected a trace link on ratio fields. Original M002/M007 owner fields determine that link; one assertion was corrected while product bytes remained unchanged.", + "inheritance": { + "old_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "inherited_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "changed_working_files": [ + "phase4/implementation_evidence.json", + "tests/contract/test_report_assembly.py" + ], + "product_bytes_preserved": true, + "note": "W03 product repair already synchronized before inheritance; append original W03 tests without altering W07 additions." + } + }, + "changes": [ + "Internal _audit_value owns one real analysis ledger, original deadline and one prepaid reserve through capture, finite planning, acceptance, jobs, disclosure, assembly, both encoded outputs, exact consistency checks and immutable delivery.", + "The old private analytical schedule is shared without public API activation. The call-time contract owner remains available to existing private failure controls.", + "Same-job immutable witness detachment identity and charged occurrence reconciliation retain exact private witness reuse; new formal occurrences consume the original L13 counters after final Finding deduplication.", + "JSON and Markdown are checked against the same frozen document before delivery. Checking streams bounded fragments and decoded scalar values without allocating a second complete output or debiting output bytes twice; all scans, native passes, comparisons and ordering-cache creation/consumption remain prospectively charged.", + "Paid native scalar/escape passes and an invocation-local checked ordering cache remove repeated Python-level work while preserving exact bytes, specified accounting, Unicode scalar order, independent fixtures and all fixed caps.", + "Delivered AuditReport stores read-only MappingProxyType views over the frozen graph and immutable encoded bytes only. Construction stays private, cached access performs no runtime work, and generic dataclass serialization is refused before exposing the cached encodings.", + "Public AuditAbort and AuditCancelled retain immutable safe fields while allowing normal exact traceback propagation through contextlib. Rejected-input diagnostic delivery preserves actual input state; cancellation stays separate and the earliest established rejection survives later cancellation.", + "Four P01 dataclass field defaults restore the original direct-constructor refusal text. Existing assertions were retained, and the precise byte delta has scoped passing closure." + ], + "changed_scope": [ + "phase4/implementation_evidence.json", + "phase4/report_contract_coverage.json", + "src/source_integrity_toolkit/contracts/execution.py", + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "src/source_integrity_toolkit/reporting/json_report.py", + "src/source_integrity_toolkit/reporting/markdown_report.py", + "src/source_integrity_toolkit/runtime/boundary.py", + "src/source_integrity_toolkit/runtime/diagnostics.py", + "src/source_integrity_toolkit/runtime/disclosure.py", + "src/source_integrity_toolkit/runtime/resources.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_contract.py", + "tests/integration/test_public_audit.py", + "tests/security/test_public_api_boundary.py", + "tests/security/test_report_resource_limits.py" + ], + "validation": { + "targeted_identity_closure": { + "status": "all_original_targeted_identities_have_passing_evidence", + "primary": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_parity.py", + "tests/security/test_report_disclosure.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-targeted-001.xml" + ], + "started_at_utc": "2026-10-26T03:45:20.936916+00:00", + "elapsed_seconds": 489.8466227079998, + "exit_code": 1, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "source_files": 232, + "source_bytes_unchanged": true, + "scope": "Ten named W07 report, encoding, budget, internal complete-invocation and security files; not a full suite or public API activation. Private regressions have their separate 146-test receipt." + }, + "execution_raw": { + "file": "p4w07-targeted-001-exit.json", + "sha256": "0e814b505c4f4fe9fd29b63d2487a5f4690bd581c69e283a30190d564d157dd7", + "bytes": 1195 + }, + "junit": { + "case_count": 6276, + "counts": { + "passed": 6275, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 489.114, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "6276", + "time": "489.114", + "timestamp": "2026-10-26T14:45:21.147701+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-targeted-001.xml", + "sha256": "fe4a649612b2e520b2cd3b981ecf59327c33617dbfb2540722c9dd99433c89d8", + "bytes": 1146676 } }, - "authority_notice": "Evidence cannot grant permission or change the frozen phase plan. Actual commit footer owns this two-path repair; activation remains stage5.", - "recorded_at_utc": "2026-10-25T16:34:25.621621+00:00", - "publication_note": "Later actual validation will be recorded externally and in the next product checkpoint, without claiming this pre-execution note is a successful run." + "cases_by_classname": { + "tests.contract.test_json_report": 148, + "tests.contract.test_report_assembly": 79, + "tests.contract.test_report_contract": 5742, + "tests.contract.test_report_parity": 30, + "tests.contract.test_report_test_oracles": 89, + "tests.integration.test_public_audit": 14, + "tests.security.test_public_api_boundary": 20, + "tests.security.test_rendering": 26, + "tests.security.test_report_disclosure": 26, + "tests.security.test_report_resource_limits": 102 + }, + "failed_case_ids": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "raw": [ + { + "file": "p4w07-targeted-001.log", + "sha256": "fdacb76dbec559138dbb1f1924bff261fd00317899aef70d46d43c1e78a4f4d4", + "bytes": 9072 + }, + { + "file": "p4w07-targeted-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-targeted-001.xml", + "sha256": "fe4a649612b2e520b2cd3b981ecf59327c33617dbfb2540722c9dd99433c89d8", + "bytes": 1146676 + } + ] + }, + "scoped_constructor_closure": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py::test_public_report_type_is_declared_without_a_fabricated_success_constructor", + "tests/contract/test_report_contract.py::test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "tests/contract/test_report_contract.py::test_w07_generic_serialization_cannot_dump_private_report_byte_caches", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-constructor-closure-001.xml" + ], + "started_at_utc": "2026-10-26T03:55:27.260062+00:00", + "elapsed_seconds": 15.90230425000027, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "source_files": 232, + "source_bytes_unchanged": true, + "scope": "Six direct controls close the sole full focused regression failure after four AuditReport constructor defaults restore the existing rejection message; includes real complete and unavailable invocation. This is scoped repair verification, not a full suite rerun." + }, + "execution_raw": { + "file": "p4w07-constructor-closure-001-exit.json", + "sha256": "f214dce539bb9cc3848a9b5e4a4877d5bd1fa0cc3dc795d5a33ed7ebe697e8da", + "bytes": 1525 + }, + "junit": { + "case_count": 6, + "counts": { + "passed": 6, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 15.528, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6", + "time": "15.528", + "timestamp": "2026-10-26T14:55:27.488662+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-constructor-closure-001.xml", + "sha256": "84e3c611cd3ee4df17bc608e1141aa797f0d44087967d2bcca4cdf6033bee5e1", + "bytes": 1159 + } + }, + "cases_by_classname": { + "tests.contract.test_report_contract": 3, + "tests.integration.test_public_audit": 2, + "tests.security.test_report_resource_limits": 1 + }, + "failed_case_ids": [], + "raw": [ + { + "file": "p4w07-constructor-closure-001.log", + "sha256": "242b5a8b02a404b9de8fcc7db639121e9941a1eab1afc458f16c8099f56617ff", + "bytes": 99 + }, + { + "file": "p4w07-constructor-closure-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-constructor-closure-001.xml", + "sha256": "84e3c611cd3ee4df17bc608e1141aa797f0d44087967d2bcca4cdf6033bee5e1", + "bytes": 1159 + } + ] + }, + "distinct_original_identities_closed": 6276, + "closed_failure_ids": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "new_full_green_run_claimed": false, + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "source_files_during_primary": 232, + "primary_source_hashes_equal": true, + "closure_source_hashes_equal": true, + "changed_after_primary": [ + "src/source_integrity_toolkit/contracts/report.py" + ], + "pre_patch_P01_exactly_reconstructed": true, + "constructor_repair": { + "changed_files": [ + "src/source_integrity_toolkit/contracts/report.py" + ], + "before_sha256": "820a057eba8a0cbc414da261c19d4d2fa0ab4ccaab77570768beeffb54fe0913", + "after_sha256": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "all_other_231_file_hashes_unchanged": true, + "reason": "Restore original fixed rejection message for AuditReport() and partial direct constructors. Completed internal construction still supplies all four values and retains all validation.", + "scope": "Four constructor field defaults only; no old test assertion changed, no renderer/resource/runtime path changed.", + "patch": "--- tested/src/source_integrity_toolkit/contracts/report.py\n+++ corrected/src/source_integrity_toolkit/contracts/report.py\n@@ -1532,10 +1532,10 @@\n the two already complete immutable byte strings. No budget, source tree,\n prepared snapshot, private index or encoder is retained by this interface.\n \"\"\"\n- _document: MappingProxyType\n- _json_bytes: bytes\n- _markdown_bytes: bytes\n- _seal: InitVar[object]\n+ _document: MappingProxyType = None\n+ _json_bytes: bytes = None\n+ _markdown_bytes: bytes = None\n+ _seal: InitVar[object] = None\n \n def __post_init__(self, _seal):\n if (type(_seal) is not _ReportDeliverySeal or\n" + }, + "constructor_repair_raw": { + "file": "p4w07-constructor-repair.json", + "sha256": "45f16bba05f7df463ee48a38dc892c970104e4af1b032861c8c4327044527a0c", + "bytes": 1325 + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "src/source_integrity_toolkit/analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "src/source_integrity_toolkit/analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "src/source_integrity_toolkit/analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "src/source_integrity_toolkit/analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "src/source_integrity_toolkit/analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "src/source_integrity_toolkit/analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "src/source_integrity_toolkit/analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "src/source_integrity_toolkit/analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "src/source_integrity_toolkit/analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "src/source_integrity_toolkit/analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "src/source_integrity_toolkit/analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "src/source_integrity_toolkit/analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "src/source_integrity_toolkit/api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "src/source_integrity_toolkit/cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "src/source_integrity_toolkit/contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "src/source_integrity_toolkit/contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "src/source_integrity_toolkit/contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "src/source_integrity_toolkit/contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "src/source_integrity_toolkit/contracts/execution.py": "1e3a8f146569db22893b80669d50cf53be2eb396b1525caef66c68ab93a40c06", + "src/source_integrity_toolkit/contracts/report.py": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "src/source_integrity_toolkit/contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "src/source_integrity_toolkit/graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "src/source_integrity_toolkit/graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "src/source_integrity_toolkit/graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "src/source_integrity_toolkit/graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "src/source_integrity_toolkit/graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "src/source_integrity_toolkit/io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "src/source_integrity_toolkit/io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "src/source_integrity_toolkit/io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "src/source_integrity_toolkit/io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "src/source_integrity_toolkit/io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "src/source_integrity_toolkit/io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "src/source_integrity_toolkit/reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "src/source_integrity_toolkit/reporting/assemble.py": "6db4f8707ccac48ac1a434d0144b991c9f043a48dda9a3b34011c72763eaf4a1", + "src/source_integrity_toolkit/reporting/escaping.py": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "src/source_integrity_toolkit/reporting/json_report.py": "8c047f778534e9e2febbd4cb1d5f413adc72ebca13fe80db179bdbadd10f6ee1", + "src/source_integrity_toolkit/reporting/markdown_report.py": "e1e40d1669b7b9df09814fef33f9f3408961031f59368f8d89a34e7e2e434994", + "src/source_integrity_toolkit/runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "src/source_integrity_toolkit/runtime/boundary.py": "7a497488f4524589c8de0a3ba5a10474fe5f4319c7f6eda9365e9e417a805d39", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/disclosure.py": "40a79d5288b4cc11ceaf26f57adb3ac85b3a9bdd6ff5870edb9047a64e13e88a", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "src/source_integrity_toolkit/validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "src/source_integrity_toolkit/validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "src/source_integrity_toolkit/validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "src/source_integrity_toolkit/validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315", + "tests/contract/README.md": "2ae135e0af60280fdb9f52d4f1a523cb97f7f06d161b8b8735198ad52db38d5d", + "tests/contract/test_analytical_basis.py": "f7563868b123857392c527de73d5d82b5020ab4ab11a763dae2d5f083e0d07c7", + "tests/contract/test_analytical_mutants.py": "5c953d82e58c9ca4d33daf09162ade376be999749089e9268b980c33653f6bfe", + "tests/contract/test_analytical_obligations.py": "8ddeb9753a6ceb0e2512338d0f2517ac1775eacec9f5f17da65f0a4a34b17005", + "tests/contract/test_analytical_observability.py": "8c9f4ebeb9764a2e5c4ba98c38dfd98e1e8d9b57c26f37624c7cf8dd52631312", + "tests/contract/test_analytical_temporal.py": "d16eed9fc0f014df0dc85d9ee09b75006c9ab37358de8ecb3061a4c3f41f7220", + "tests/contract/test_assertion_contract.py": "042ccafe57679ba35a89abea8a99623690090549b5fb3a2fc5236dba295c34ed", + "tests/contract/test_bundle_contract.py": "c92290224416ac97e6980af31e9f556d233c1260b34c139bc89b4fc0d6e58e4b", + "tests/contract/test_evidence_basis.py": "c3ac52a65f4bdf92f10431d0c4838735f711d11887f05396688306848f698569", + "tests/contract/test_finding_boundaries.py": "fc3380b204ac6dca2be00511970a8c8f84904216cde1aaac3b8ba33d038ea187", + "tests/contract/test_graph_views.py": "6fc9c300af293a5e2360fbf661215288186379024366cf358f9e30d29b566f65", + "tests/contract/test_input_schema_mapping.py": "ed373d60350b2ac371e84a3c8688c54f66b42274bcd8c50f13692beb559c3110", + "tests/contract/test_json_report.py": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "tests/contract/test_normalization_profile.py": "26f01d230f349995334b6892285def1774dcd10051a3dc7a05d9a4cd424e4a8d", + "tests/contract/test_observability_preparation.py": "d15b84850cd8d97752298fcbb8a14339ed835ae6d9790c1a7f045331cb245bcb", + "tests/contract/test_phase2_transition.py": "d476a8ba0ddba20a07d5b1670125d99824b1a5354ba20391fdc9982164671819", + "tests/contract/test_phase3_transition.py": "79dda9fa8645fe39023c8eefaaa4de0debb7b745c93a6f1a1dce7fba3683c4a0", + "tests/contract/test_prerequisite_contract.py": "88ff508c2de74118344bdd47dc8cc4da09ee9d5cee16cace2243ab16cf2974f7", + "tests/contract/test_report_assembly.py": "3eae54d14134b90211e85bb9307ebd7668df7fb7ff3b88c5e4dc40c6e21a2c5f", + "tests/contract/test_report_contract.py": "858a694b3da8a8afcc2eef2a5a2c6f6e433a55653999854226ea4d00f7dc7045", + "tests/contract/test_report_identity.py": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8", + "tests/contract/test_report_parity.py": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "tests/contract/test_report_test_oracles.py": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4", + "tests/contract/test_result_contract.py": "f378232238789284732791b770655ba550748545a36f1ba6eef63240b90303d4", + "tests/contract/test_temporal_contract.py": "a900f41109fd5688b636cad6cea7f2777a841ddf17a7c3b86fa0cc8d91efce10", + "tests/contract/test_typed_records.py": "be6ed6b73c6f936dcc774f88d11b29b038f75f33676f3b2225de64d9da06a83a", + "tests/contract/test_verification_boundary.py": "24d1b7d8ea62ad1cb67b8e1f81f3fd5e00a5ec9d0bcfaed02918117318a81e92", + "tests/fixtures/README.md": "98367561c6665e16a8cab1431323d5dab0946ee334928ff553f5b70a04e50921", + "tests/fixtures/adversarial/case_index.json": "2f50e90a8229dfe3613385fa80730fa049ae789fbce198a95323660980245cb2", + "tests/fixtures/adversarial/phase3_cases.json": "e810ffdec2894d43dffb5bc806d88b6de419cab5a823bb8048e81e96fdfacf6d", + "tests/fixtures/adversarial/phase4_report_cases.json": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5", + "tests/fixtures/hero/H7-01.bundle.json": "06d342e4d12457dd186c48d917ed023a30e24f66e4226dd1ebf769a6365c47f7", + "tests/fixtures/hero/H7-V01.bundle.json": "98f3b5b1d8e1214211adbdbdaa5cdcb71e5bb1b226fb26c2615648bcd49e5d09", + "tests/fixtures/hero/H7-V02.bundle.json": "043d7c3652035042ca2602d48efeed250d6599874b7ae7206cd74de23f596663", + "tests/fixtures/hero/H7-V03.bundle.json": "213e84942b77e43291ffec5feed4628ef075ddeb9262224c3d326b9402eae013", + "tests/fixtures/hero/fixture_manifest.json": "607fad79a03d6388e15cc3384c738cea6a1757574af9d333aca34676d141b7a6", + "tests/fixtures/micro/case_index.json": "580ca1560e69bb0b4583821eac3c554d7fd73d8d4cd07c131225de420d088ed9", + "tests/fixtures/micro/phase3_cases.json": "0be6460c8a59fb5ab3bff950e9eb56ff05891278a6331b741da0b7b953cedeac", + "tests/fixtures/micro/phase4_public_cases.json": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb", + "tests/golden/H7-01.logical.json": "bec2d971ded08baeaeb85f3ca340e05e959381540adf944bb437eeef4bf640d5", + "tests/golden/H7-V01.logical.json": "7cfb2f5d09175e0f658dac6d5db09777eab2b57406312775b18c0796b147b9ac", + "tests/golden/H7-V02.logical.json": "4bcd1bb23086e475d35830fe01487dde8d4740b5010f59b1da34e4f8445f4134", + "tests/golden/H7-V03.logical.json": "44f5315b7a6e50aae7a9f0d800b7c94f6b6a06425473c7982af100822150487d", + "tests/golden/README.md": "df5a664f6ce0cba56bc61e4af303a7aa88ea96da57ca614bb46b55d50edcbe41", + "tests/golden/phase3_core_expectations.json": "4effefea17e607309259c27a908f9db0540f9755d600d592db2be83fc6ee4677", + "tests/golden/phase4_reference_report.json": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "tests/golden/phase4_reference_report.md": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", + "tests/golden/phase4_report_expectations.json": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0", + "tests/integration/README.md": "e41ffc1c4c55d70e5a8d0a708311d97b349362c4a57bb960822091c19b0e7d82", + "tests/integration/test_analytical_determinism.py": "cccc2ffdd92f328d7ee384e208cfb68135139c78b3004772145dd9b0500406f2", + "tests/integration/test_analytical_hero_inputs.py": "e197a08623417d1d7623e3acbd6342b80c10fed9c6abb124af75f7221d20fee4", + "tests/integration/test_analytical_installed_runtime.py": "434cb51f159da5ec71025e35130befe9ecbff95d5a8d613d1eaf897142ccafcb", + "tests/integration/test_analytical_pipeline.py": "381cdc6d0233e715352c9e85c28d7b96655cd7eaa730244134a271c7d35e796b", + "tests/integration/test_preparation_capability_boundary.py": "aaa25f2a0fd256d116599e135d975ba7a77ffb6a6ae468495342ba4e358e74f6", + "tests/integration/test_preparation_pipeline.py": "14161e83956f428f7219474da0c37203f32f3ed3591054f2b14a50881cabf0a7", + "tests/integration/test_prepared_hero_inputs.py": "60eb14b6e0942222721ebed083cb4a2328fef8d79dd9ab22c792666634f4e232", + "tests/integration/test_public_audit.py": "46ecd804138b77a4365d78bbacea808602949556a59aceb3e1dc8d078a7f46d9", + "tests/scaffold/test_api_stubs.py": "0441d0bbb735e70225331099c5c01688b24af1877eb63ef12796de00bab9974a", + "tests/scaffold/test_baseline_integrity.py": "b345c30ed2775b54e70f51797ad1d4a670799303902d1a0b4a8f3d54329aa0b8", + "tests/scaffold/test_ci_contract.py": "6070b92b44855cb0b4568ec4854bd3d5e06604cdca84d9951c0d8ce155b4a605", + "tests/scaffold/test_cli_scaffold.py": "8d69b2d20f8c2e1430ba78ab53076d46b28d9e2a54f2c1357e0cdaaa59164f22", + "tests/scaffold/test_contract_catalogs.py": "828589f6f544d7b5b9a0997a78a4dd92cea72524f943935027818ed6cb987472", + "tests/scaffold/test_fixture_integrity.py": "4c0de7dbc7e6a6e5c3cd0b9447aef7b96c7411cbc314a54daf773d9fdd3679db", + "tests/scaffold/test_imports.py": "2e6697b242e631ebfb652832b073b531fa4b44e7ae3e8669ef45be91570d7ff9", + "tests/scaffold/test_layer_boundaries.py": "8c73fa2ad9ec2748f154ab664da4e77d56f1110cdeba704cc46630f9398df65b", + "tests/scaffold/test_module_manifest.py": "35bd81f50cf65e95eec3dce65724ac07e80ffbb92dc3f7b466e8d0e7686b7e2d", + "tests/scaffold/test_no_runtime_implementation.py": "abcf0653adf4663ea4fcd6ac3861645caf07a5518c6d4bafae9c76fc0b6f969d", + "tests/scaffold/test_packaging.py": "cfc891098830d9adf1f2ee3a0c3bcc06e884fb00f356aa5a8e1822feb1aa5d93", + "tests/security/test_analytical_adversarial.py": "6be473d7e4c9c6f572e865e0ded856ee17a8b932ceb1b60d9e7935037e29e91e", + "tests/security/test_analytical_diagnostics.py": "c05a2b798cf0e7fcc8051d31485f96f490cd187439f4cc45d8c80cd546339dfa", + "tests/security/test_analytical_inertness.py": "1fe18d69dbe960e4ba401de7bde75740dbf1747c4aac88c5102c9257baf25ca6", + "tests/security/test_analytical_interruption.py": "9e1fc19c39e68efbafc95433d7140706fcf2fdb3fbb259a047f226bdf2748106", + "tests/security/test_analytical_resource_limits.py": "c47860822db6e49c8444af1e489ad66f4aa6587fb2f24d93ad6008fb523dc14d", + "tests/security/test_graph_limits.py": "1f6ac6254173bb477cb7b843c24c223a24858d4452b09d8cc3d01f83c54dc4b3", + "tests/security/test_input_capture.py": "9e5ffee442ce1de7844474787d0549a3690b6efe2cfe9124ad6461a8911d2ce9", + "tests/security/test_input_diagnostics.py": "f03e0d91796d39fcc8d90f0ff87914bd45feab9ad219db56f3f9c59c6dd4dc56", + "tests/security/test_input_resource_limits.py": "9df86868eb78c5f14ffd3e4977182e08a3785bfbb3f3d737396b2119ae05e466", + "tests/security/test_preparation_inertness.py": "b7cbdfc0f4b3a909c5ae58bc2a4c12e2272bf4cf1c92b31e2531239d9fe7d544", + "tests/security/test_public_api_boundary.py": "5d588685427287a425fdf6fb2c29297209c933e6b1c8705b5d4c31e56da45cc9", + "tests/security/test_rendering.py": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "tests/security/test_report_disclosure.py": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72", + "tests/security/test_report_resource_limits.py": "2609fcb1819d4bbfa1af8c8aeff7db999ea1bfa624caba12f5e46674464a2e95", + "tests/security/test_scaffold_inertness.py": "7179bb00e004e833d7448172cae2068f912e25adb3860c7d5fba9d46396619ba", + "tests/security/test_scaffold_no_native_loading.py": "add4a523f73deba8380a257a1846d8c044249996ec88ca56be1f4903563a96a6", + "tests/security/test_scaffold_no_network.py": "fafa792547d3e3a5b8800308a9b63869b063dd8baa1ef01ab044203760ca23b2", + "tests/unit/README.md": "780ce188f9f9ae364008304bd844dd51c81bee01d607a27b457c1e54f6535078", + "tests/unit/test_ancestry_frontiers.py": "53669615bf8eb7f183d71dfac16e1e744cc58010877e339d81c34d6ca8bd845b", + "tests/unit/test_context_preservation.py": "05b98397397de7df9509d0ea40bd641386fb71c1d39ad22a6c622cc4add164bc", + "tests/unit/test_contribution_profile.py": "8c8645dceb3c697ed2657c96f103234e1f2a6a115131fcadf0aa50794cf5e389", + "tests/unit/test_correction_outcomes.py": "2c06937c4c9c75521d3c29d5843c7b34afa27d061437b0a636a64957d18fa55b", + "tests/unit/test_correction_routes.py": "288a12d6e5b69a0ca2ca8616d87faee222b748aeef59ab7a66f017c654c1526b", + "tests/unit/test_evaluator_lineage.py": "f90ba1b288bf7203eb11a2660d19ef0fb5358a82dbe8ff9e864d9b5c87a0a947", + "tests/unit/test_evidence_domain_index.py": "addc34a1d7252f0d2aabe34239b626ffa497982eb43bf09db6a75593600ec730", + "tests/unit/test_findings.py": "3624f78945a17e8d9af3f2ed2449d786cdab702b73c1e1c6ddbac4cfe0220b61", + "tests/unit/test_graph_cycles.py": "8c6340a9cbf527305b17110f155369a15d4b79b50943918cb2d4536aca2925b0", + "tests/unit/test_graph_traversal.py": "6fc863e073c743f4c77eb809487ea2a3659dcfc0ef5836d3ed2d7a693ad47d7a", + "tests/unit/test_graph_witnesses.py": "b013d94df8e39c166fef7eea013515ecd0b9d1bee585ffa5d12171fee3015eb4", + "tests/unit/test_human_review.py": "07a8b60cbba11e5218a670ca3345b4b5f9a78fb091574872cd6cef77757f4ddd", + "tests/unit/test_immediate_inheritance.py": "bf5e50af4b5a39a8c393df4a9802774338ff3413b9df31ed1659f02284155704", + "tests/unit/test_input_decoding.py": "7852ae877408b4f1e56e98235f8082553bb9a5a84f095712b776a1bd09977541", + "tests/unit/test_inventory.py": "c84ae72fa7f56f728bc3830936e18e46944358610e475c8af320bc3db195f2ab", + "tests/unit/test_origins.py": "4b529c0950a4874fcec7ea18139a5b1ab0369d6bd6cfd36c8eb9896eb3726915", + "tests/unit/test_pipeline_cohorts.py": "1aa6c71d7b5fa803024be342a82af3998857bbbdfe2f6f34854ddf6a4314b597", + "tests/unit/test_presence.py": "400fbb77bad550ce1aae88f4a1f89c23e30ae15db0b9f4b9de082c793aff40b2", + "tests/unit/test_process_comparison.py": "a98345a7bf2319caf85eb8cb4064b38060dc1b64d790cdcd0b3914b034b37aaa", + "tests/unit/test_provenance_profile.py": "74b599ede4cc638a430cc48fa19f7ccb5573f9b1f4ed7d9f9216ddfb8f1f9ab1", + "tests/unit/test_reference_validation.py": "9bc483127d8657ba8209789985f9d6cdc725ca98545ab49328a0c44b1145fd69", + "tests/unit/test_value_capture.py": "e42c870f28d0f8216ad365b306eb77acd9116297f986a37ca10a97f6a7d64137" + } + }, + "private_regression": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/integration/test_analytical_pipeline.py", + "tests/security/test_analytical_interruption.py", + "tests/security/test_analytical_diagnostics.py", + "tests/security/test_analytical_resource_limits.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-private-runtime-001.xml" + ], + "started_at": "2026-10-26T03:17:06.916358+00:00", + "elapsed_seconds": 173.25644176600053, + "exit_code": 0, + "source_before": { + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/contracts/report.py": "a165e1fecf99dcacaa9a778a8d110da0d618019c270188e902d8e3980fa2606e" + }, + "source_after": { + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/contracts/report.py": "7865b95cfe66dc4ed9f0969b1774962c78b59b9df33854528d21097365c352b1" + }, + "observed_paths_unchanged": false, + "note": "Focused old private regression at W07 working source. Root final unified run binds final full source." + }, + "execution_raw": { + "file": "p4w07-private-runtime-001-execution.json", + "sha256": "15bd90cb0630665845dee1b72723cf5996e3c00df0af43f56eaafc06569a31b5", + "bytes": 1736 + }, + "junit": { + "case_count": 146, + "counts": { + "passed": 146, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 172.84, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "146", + "time": "172.840", + "timestamp": "2026-10-26T14:17:07.184434+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-private-runtime-001.xml", + "sha256": "0fe38585e0e77ab2ced6a897806ed4e60d88a3db5fd706b84ae1f41f4a8795fb", + "bytes": 25356 + } + }, + "cases_by_classname": { + "tests.integration.test_analytical_pipeline": 36, + "tests.security.test_analytical_diagnostics": 29, + "tests.security.test_analytical_interruption": 21, + "tests.security.test_analytical_resource_limits": 60 + }, + "failed_case_ids": [], + "raw": [ + { + "file": "p4w07-private-runtime-001.log", + "sha256": "dd1be2e40d3606e9dc4c956087b7ad9f57847b7215ffc32037a16527cfdd22cd", + "bytes": 272 + }, + { + "file": "p4w07-private-runtime-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-private-runtime-001.xml", + "sha256": "0fe38585e0e77ab2ced6a897806ed4e60d88a3db5fd706b84ae1f41f4a8795fb", + "bytes": 25356 + } + ] + }, + "private_regression_scope": "The earlier 146-case private run passed. P10/P09/P08 hashes were stable during that run; P01 changed concurrently with new delivery work, so it is not claimed as a frozen final whole-source execution. Exact private schedule/definition preservation is separately recorded.", + "unicode_scalar_profile": { + "receipt": { + "status": "passed", + "legal_scalars": 1112064, + "chunks": 17376, + "surrogates_rejected": 2048, + "elapsed_seconds": 0.999342883999816, + "source_sha256": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "source_unchanged": true, + "scope": "Independent scalar-profile equality using a counting component port; not a bounded complete-invocation proof.", + "work_units": 999869, + "output_bytes": 4419730 + }, + "raw": { + "file": "p4w07-unicode-equivalence.json", + "sha256": "20efa8c30fd19c46bbfa9054bbef6966e57b5ceda90674d47f655cc0c7af113f", + "bytes": 433 + } + }, + "runtime_preservation": { + "receipt": { + "baseline": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "existing_boundary_functions_unchanged": [ + "_capture", + "_prepare_value", + "_prepare_utf8", + "_capture_value", + "_capture_utf8", + "_admit", + "_run_preparation", + "_prepare", + "_prepare_evidence_value", + "_prepare_evidence_utf8", + "_assemble_observability", + "_ordered_text", + "_plan_context", + "_structural_scope", + "_raw_stage_anchor", + "_plan_compare", + "_plan_analysis", + "_planned_nonresults", + "_payload", + "_matching_witnesses", + "_commit_job", + "_provenance_selection", + "_analyze_value", + "_analyze_utf8" + ], + "unchanged_boundary_function_count": 24, + "changed_boundary_functions": [ + "_detach_witnesses", + "_detach_findings", + "_execute_job", + "_run_analysis" + ], + "extracted_analysis_schedule_ast_equal": true, + "schedule_statement_count": 7, + "private_diagnostic_definitions_unchanged": [ + "_SafeDiagnostic", + "_diagnostic", + "_emergency_diagnostic", + "_AnalyticalDiagnostic", + "_analytical_diagnostic", + "_emergency_analytical_diagnostic" + ], + "source_hashes": { + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22" + }, + "purpose_of_changed_methods": { + "_run_analysis": "Delegate identical analysis schedule and retain existing private diagnostic behavior.", + "_detach_witnesses/_detach_findings/_execute_job": "Share charged immutable witness detachment identities strictly inside each current job for exact L13 occurrence reconciliation. No cross-job cache or semantic qualification reuse." + }, + "note": "Static preservation check. Root final unified tests cover resulting invocation behavior.", + "private_contract_lookup": "Call-time contracts.report._assemble_analysis lookup preserved via explicit runtime forwarding helper; existing fault controls passed in 146-case private regression.", + "private_regression": { + "count": 146, + "pytest_seconds": 172.85, + "exit_code": 0, + "execution_receipt": "p4w07-private-runtime-001-execution.json", + "full_source_frozen": false, + "limitation": "P01 delivery additions changed its file hash concurrently; P10/P09/P08 hashes stayed equal, final root run provides final-source binding." + } + }, + "raw": { + "file": "p4w07-runtime-preservation.json", + "sha256": "d3e888116c083423aeedb38662bf240ca60f3dd0d24f94e9aaaa5deb0c56023a", + "bytes": 2450 + } + }, + "n01_migration": { + "receipt": { + "baseline_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "path": "tests/contract/test_report_contract.py", + "existing_top_level_functions_and_classes": 146, + "removed": [], + "unchanged": 145, + "changed": [ + "test_abort_and_cancellation_cannot_invent_a_validation_state" + ], + "new": [ + "test_w07_abort_retains_rejection_when_diagnostic_pair_cannot_be_delivered", + "test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "test_w07_generic_serialization_cannot_dump_private_report_byte_caches", + "test_w07_rejection_transport_extension_does_not_allow_invented_state_pairs", + "test_w07_safe_transport_traceback_slot_rejects_invalid_values_and_hostile_names", + "test_w07_safe_transports_cross_contextmanager_with_original_exception_identity" + ], + "migration": { + "source": [ + "REPOSITORY_ARCHITECTURE.md section 18.4 actual input validation state and output failure precedence", + "GOVERNANCE_AND_HANDOFF.md section 22.3 first established cause and accepted/not_completed cancellation" + ], + "retained_case_identity": "test_abort_and_cancellation_cannot_invent_a_validation_state[rejected]", + "old_abort_assertion": "AuditAbort(failed,rejected,execution_failed) is rejected", + "current_abort_assertion": "AuditAbort(failed,rejected,execution_failed) preserves genuine rejected input after later output failure", + "cancel_assertion": "AuditCancelled(rejected) remains rejected", + "other_parameter_assertions": "All unknown/True/None/private-input cases remain invalid" + }, + "new_cases": 17, + "new_functions": 6, + "source_test_count_note": "N01 adds 17 cases; N11 has 20; focused runner includes 5 preserved migration parameters, total 42." + }, + "raw": { + "file": "p4w07-n01-migration.json", + "sha256": "3093bf7e9190f11a506360a79264bb4a97c3077ac48a87dfab7668201473040c", + "bytes": 1728 + } + }, + "n10_preservation": { + "receipt": { + "path": "tests/security/test_report_resource_limits.py", + "sha256": "2609fcb1819d4bbfa1af8c8aeff7db999ea1bfa624caba12f5e46674464a2e95", + "baseline_sha256": "362aef2d4d2ce1546e81f1ff388a2dbc8422a86eb904c11f279c0dc537ffd5a1", + "prior_top_level_definitions": 27, + "all_prior_definition_ASTs_unchanged": true, + "all_prior_48_ordered_case_identities_retained": true, + "total_collected_cases": null, + "added_cases": 54, + "source_helper": "tests/integration/test_public_audit.py::_minimal_value", + "validation": [ + { + "run": "001", + "exit_code": 2, + "scope": "collection error: missing PYTHONPATH; no tests executed" + }, + { + "run": "002", + "exit_code": 1, + "tests": 99, + "passed": 84, + "failed": 15, + "errors": 0, + "skipped": 0, + "junit_seconds": 163.609, + "source_changed_during_run": true, + "diagnosis": "13 downstream global work exhaustion failures; 2 new assertion errors incorrectly required safe execution Reasons empty. Assertion corrected using Reporting 16.1; product/goldens unchanged." + }, + { + "run": "003", + "exit_code": 0, + "tests": 3, + "passed": 3, + "failed": 0, + "scope": "one factory/ledger/deadline/reserve complete success and real second-job cap interruption before/after commit", + "source_hashes_unchanged": true + } + ], + "final_validation": "Root unified frozen-source run pending; 3 new cache controls appended without altering preceding 99 cases.", + "total_collected_cases_before_cache_controls": 99, + "expected_total_cases": 102, + "cache_controls_added": 3 + }, + "raw": { + "file": "p4w07-n10-preservation.json", + "sha256": "14faafa41eeba5814e569cdf929d7599fcd0ab5ac566cb5699a1cb85146c082a", + "bytes": 1612 } }, - "authority_notice": "Evidence records do not grant permission. Approved plan SHA256 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48 is unchanged.", - "validated_at_utc": "2026-10-25T16:39:15.237589+00:00", - "publication_note": "W06 product/tests frozen during final341case run. Separately tested repair inherited afterward; only D04/D05 then record known facts. Published hashes/CI are external." + "assembly_preservation": { + "receipt": { + "path": "tests/contract/test_report_assembly.py", + "old_top_level_functions_classes": 62, + "old_ast_unchanged": true, + "changed": [], + "added": [ + "WitnessQuotaPort", + "_quota_component_state", + "test_w07_exact_private_owner_credits_and_new_occurrences", + "test_w07_final_finding_dedup_precedes_witness_quota", + "test_w07_nonpath_primary_keeps_same_owner_trace_accounting", + "test_w07_quota_enabled_reference_preserves_independent_bytes", + "test_w07_unbound_equal_component_cannot_borrow_an_owner_credit" + ], + "sha256": "0276dc41c3f4202741ebe76682636ea4e2e585a8486de1dec286d16abd37bd31" + }, + "raw": { + "file": "p4w07-assembly-preservation.json", + "sha256": "036aadc6c9332bb0806ef3efc9389052394a7a5651ba1a0069ba887ecd90ef63", + "bytes": 620 + } + }, + "independent_review": { + "status": "passed_no_remaining_blocking_findings", + "receipt": { + "status": "passed_no_remaining_blocking_findings", + "reviewed_at_utc": "2026-10-26T03:58:59.636999+00:00", + "review_kind": "Independent tool-assisted read-only code and actual-evidence review; not an external human audit.", + "baseline": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "review_checkout_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "source_hashes": { + "src/source_integrity_toolkit/contracts/report.py": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "src/source_integrity_toolkit/contracts/execution.py": "1e3a8f146569db22893b80669d50cf53be2eb396b1525caef66c68ab93a40c06", + "src/source_integrity_toolkit/reporting/assemble.py": "6db4f8707ccac48ac1a434d0144b991c9f043a48dda9a3b34011c72763eaf4a1", + "src/source_integrity_toolkit/runtime/disclosure.py": "40a79d5288b4cc11ceaf26f57adb3ac85b3a9bdd6ff5870edb9047a64e13e88a", + "src/source_integrity_toolkit/reporting/escaping.py": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "src/source_integrity_toolkit/reporting/json_report.py": "8c047f778534e9e2febbd4cb1d5f413adc72ebca13fe80db179bdbadd10f6ee1", + "src/source_integrity_toolkit/reporting/markdown_report.py": "e1e40d1669b7b9df09814fef33f9f3408961031f59368f8d89a34e7e2e434994", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/boundary.py": "7a497488f4524589c8de0a3ba5a10474fe5f4319c7f6eda9365e9e417a805d39", + "tests/contract/test_report_contract.py": "858a694b3da8a8afcc2eef2a5a2c6f6e433a55653999854226ea4d00f7dc7045", + "tests/contract/test_report_assembly.py": "3eae54d14134b90211e85bb9307ebd7668df7fb7ff3b88c5e4dc40c6e21a2c5f", + "tests/contract/test_json_report.py": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "tests/contract/test_report_parity.py": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "tests/security/test_report_disclosure.py": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72", + "tests/security/test_rendering.py": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "tests/security/test_report_resource_limits.py": "2609fcb1819d4bbfa1af8c8aeff7db999ea1bfa624caba12f5e46674464a2e95", + "tests/security/test_public_api_boundary.py": "5d588685427287a425fdf6fb2c29297209c933e6b1c8705b5d4c31e56da45cc9", + "tests/integration/test_public_audit.py": "46ecd804138b77a4365d78bbacea808602949556a59aceb3e1dc8d078a7f46d9", + "tests/contract/test_report_test_oracles.py": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + }, + "focused_run": { + "tests": 6276, + "failures": 1, + "errors": 0, + "skipped": 0, + "junit_seconds": 489.114, + "failed_nodes": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "passed": 6275, + "exit_code": 1, + "source_files": 232, + "source_hashes_unchanged": true, + "receipt": "p4w07-targeted-001-exit.json" + }, + "constructor_closure": { + "tests": 6, + "failures": 0, + "errors": 0, + "skipped": 0, + "junit_seconds": 15.528, + "failed_nodes": [], + "exit_code": 0, + "source_files": 232, + "source_hashes_unchanged": true, + "changed_path": "src/source_integrity_toolkit/contracts/report.py", + "change": "Four constructor defaults only; original failing assertion retained. Reconstructed previous source hash matches the full run. All other 231 files unchanged.", + "receipt": "p4w07-constructor-repair.json" + }, + "verification_conclusion": "The ten-file run passed 6,275 of 6,276 cases. Its sole original constructor-message failure is closed by a six-case final-source run after four default values were restored. This is scoped closure, not a new all-6,276 pass run.", + "private_regression": { + "tests": 146, + "failures": 0, + "errors": 0, + "skipped": 0, + "junit_seconds": 172.84, + "exit_code": 0, + "whole_source_frozen": false, + "scope": "Four existing private suites passed 146 cases. P01 changed concurrently only in public delivery representation; this is not a full frozen-final-tree run. Current P10 reconstructs the tested hash exactly after removing its two later public-only cache lines; P09/P08 equal tested before/after hashes. All original P01 definitions except AuditReport remain AST-identical to W06; four original private stop classes remain AST-identical.", + "receipt": "p4w07-private-runtime-001-execution.json" + }, + "original_test_preservation": { + "tests/contract/test_report_contract.py": { + "baseline_definitions": 146, + "unchanged_definitions": 145, + "changed_existing_definitions": [ + "test_abort_and_cancellation_cannot_invent_a_validation_state" + ], + "missing_definitions": [] + }, + "tests/contract/test_report_assembly.py": { + "baseline_definitions": 62, + "unchanged_definitions": 62, + "changed_existing_definitions": [], + "missing_definitions": [] + }, + "tests/security/test_report_resource_limits.py": { + "baseline_definitions": 27, + "unchanged_definitions": 27, + "changed_existing_definitions": [], + "missing_definitions": [] + } + }, + "unicode_equivalence": { + "status": "passed", + "legal_scalars": 1112064, + "chunks": 17376, + "surrogates_rejected": 2048, + "elapsed_seconds": 0.999342883999816, + "source_sha256": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "source_unchanged": true, + "scope": "Independent scalar-profile equality using a counting component port; not a bounded complete-invocation proof.", + "work_units": 999869, + "output_bytes": 4419730 + }, + "findings_closed": [ + { + "finding": "A supporting complete_trace could enter a final Finding without an original-owner registration.", + "resolution": "Contributing reconstruction now uses _owner_component; the non-path-primary plus complete_trace regression is included in final N02." + }, + { + "finding": "Frozen dataclass report could expose cached encodings through generic dataclasses.asdict.", + "resolution": "Paid private sixteen-root MappingProxyType backing blocks generic dataclass/deepcopy dumping; final constructor closure tests retention and serialization refusal." + }, + { + "finding": "Frozen exception setters prevented normal contextlib traceback propagation.", + "resolution": "Public AuditAbort/AuditCancelled retain frozen validated safe fields and allow only standard Exception.with_traceback metadata assignment. No guard exception or reflective access was added." + }, + { + "finding": "Complete invocation including required consistency exceeded 10M in earlier implementations.", + "resolution": "Bounded static native scalar/fence passes and invocation-local paid frozen-mapping order reuse remove repeated actual work while preserving unchanged caps, output rules and source meanings. Independent Unicode and original byte oracles plus the actual finite unavailable case were checked." + }, + { + "finding": "Direct AuditReport() lost its original fixed rejection message after representation construction changed.", + "resolution": "Four None defaults restored exact rejection through existing post-init validation; unchanged original N10 assertion passes in final six-case closure." + } + ], + "reviewed_design": [ + "One real invocation ledger/start/deadline/reserve reaches admission, analysis, disclosure, assembly, both encodings, paid consistency and atomic report delivery.", + "Both consistency passes consume the original port. Decoded JSON string meaning is compared; exact scalar spelling remains the renderer obligation verified independently. No second full encoding buffer or second output quota is introduced.", + "The ordering cache retains exact frozen object identities, pays first stable merge sort and subsequent accesses, is scoped to one completed report pair, and is not an analytical cross-job cache.", + "L13 uses concrete retained owner identity and deduplicated final Finding occurrences. Existing wrappers/links are not recounted; new retained witnesses/member occurrences debit the original pending+retained ledger.", + "Rejected-input diagnostic output failure preserves rejected input fact; cancellation does not fabricate an execution reason; established first causes remain bounded safe transport.", + "The delivered report retains only a read-only sixteen-root mapping, immutable nested values and two completed bytes. Source/prepared state, budget, cache and construction seal are not retained." + ], + "limitations": [ + "W07 internal composition only. Public audit_bundle/audit_file and CLI remain at their existing refusal boundary until their authorized stages.", + "Full W02 reference may truthfully hit the unchanged whole-invocation cap; finite complete cases do not prove every input finishes.", + "AuditUsageError contextlib compatibility remains for W08 activation and is not included in the two repaired public exception types.", + "No final W07 hosted matrix result, installed public surface, merge or release is claimed.", + "D04/D05 record-only updates may follow this review; reviewed product/test hashes must remain unchanged." + ] + }, + "raw": { + "file": "p4w07-independent-review.json", + "sha256": "b7830debedb4f8f340f2cf9361aa65821ccadf0efe0df7e42a191fa28186296e", + "bytes": 9586 + } + } + }, + "package_boundary": { + "activation_stage": 7, + "checked_modules": 48, + "entry_byte_protected_modules": 38, + "issues": [], + "ok": true, + "promoted_modules": [ + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "reporting/markdown_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 14, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "pipeline_stage_probes": [ + { + "raw": { + "file": "p4w07-pipeline-probe-001.json", + "sha256": "06659c66b9889a9cda9945cb5d43e1253e2092ab48e36f985df5ff4d5b9d938b", + "bytes": 1058 + }, + "facts": { + "purpose": "Diagnose the actual N12 minimal dossier abort after focused run 001", + "source": "Direct boundary stage wrappers delegate to the actual product and observe its single real budget; no limit or port replacement", + "result_type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "input_state": "accepted", + "used": 9999998, + "stop_kind": "global", + "phase": "stopped", + "limit_id": "WU9-L11", + "stage_cumulative_work": [ + [ + "_admit", + "done", + 48236 + ], + [ + "_plan_analysis", + "done", + 53579 + ], + [ + "_complete_analysis", + "done", + 1325599 + ], + [ + "_assemble_selected_report", + "done", + 4565483 + ], + [ + "_encode_json_report", + "done", + 6145764 + ], + [ + "_encode_markdown_report", + "done", + 8345065 + ], + [ + "_verify_json_report", + "stop", + 9999998, + "_AnalysisAborted" + ] + ], + "exit_code": 0, + "limits_changed": false, + "source_hash_snapshot": "No independent before/after snapshot was captured for this short diagnostic probe. The preceding focused run has its own complete source hashes and raw failures." + }, + "source_snapshots_retained_in_raw": false + }, + { + "raw": { + "file": "p4w07-pipeline-probe-002.json", + "sha256": "538ea20cd9f659fa491730315a5248c1aa23bf8f8ced99c58daac67e05f56948", + "bytes": 52995 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48236 + ], + [ + "_plan_analysis", + "done", + 53579 + ], + [ + "_complete_analysis", + "done", + 1325599 + ], + [ + "_assemble_selected_report", + "done", + 4565483 + ], + [ + "_encode_json_report", + "done", + 6145764 + ], + [ + "_encode_markdown_report", + "done", + 8345065 + ], + [ + "_verify_json_report", + "done", + 8976361 + ], + [ + "_verify_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-003.json", + "sha256": "7fe41819c4d11801f764ea07f74c7e17d232c0fcf88d3c42047e6e8302a5152a", + "bytes": 53005 + }, + "facts": { + "type": "AuditReport", + "json_bytes": 219712, + "markdown_bytes": 302556, + "used": 9992491, + "remaining": 7509, + "owner_count": 1, + "stop_kind": null, + "phase": "finalization", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48236 + ], + [ + "_plan_analysis", + "done", + 53579 + ], + [ + "_complete_analysis", + "done", + 1325599 + ], + [ + "_assemble_selected_report", + "done", + 4565483 + ], + [ + "_encode_json_report", + "done", + 6145764 + ], + [ + "_encode_markdown_report", + "done", + 8345065 + ], + [ + "_verify_json_report", + "done", + 8976361 + ], + [ + "_verify_markdown_report", + "done", + 9992482 + ], + [ + "_deliver_report", + "done", + 9992491 + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-004.json", + "sha256": "8120289c34bda91a9842d6158cd5896b8f732a5a0c895f11fdd5e6a3b759ddeb", + "bytes": 52725 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "failed", + "reason_code": "execution_failed", + "case": "acquisition", + "used": 2883337, + "remaining": 7116663, + "owner_count": 1, + "stop_kind": "failure", + "phase": "stopped", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "stop", + 2883337, + "_ReportContractError" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-005.json", + "sha256": "8120289c34bda91a9842d6158cd5896b8f732a5a0c895f11fdd5e6a3b759ddeb", + "bytes": 52725 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "failed", + "reason_code": "execution_failed", + "case": "acquisition", + "used": 2883337, + "remaining": 7116663, + "owner_count": 1, + "stop_kind": "failure", + "phase": "stopped", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "stop", + 2883337, + "_ReportContractError" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-006.json", + "sha256": "41823351e9db9694cb4b8e14317be37603086348742fe191f48252c689a862cb", + "bytes": 52876 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "case": "acquisition", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 8058660 + ], + [ + "_encode_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-007.json", + "sha256": "af2089195b3c2f348607df38a59252b285a988d936dd1dd9ddf2e55d301a6b67", + "bytes": 53021 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "case": "acquisition", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 6876622 + ], + [ + "_encode_markdown_report", + "done", + 8442300 + ], + [ + "_verify_json_report", + "done", + 9269391 + ], + [ + "_verify_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": false + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-008.json", + "sha256": "f67be507806a60a290d220a1726d82f883441118ff1629db4fcdbb2b2daf323b", + "bytes": 53020 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "case": "acquisition", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 6884423 + ], + [ + "_encode_markdown_report", + "done", + 8264713 + ], + [ + "_verify_json_report", + "done", + 8946130 + ], + [ + "_verify_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-009.json", + "sha256": "46e6447055e641e6b3d04a7fab039cc05920cbc4f7511df3b5c466a0e4cb1fef", + "bytes": 53032 + }, + "facts": { + "type": "AuditReport", + "json_bytes": 293616, + "markdown_bytes": 388746, + "case": "acquisition", + "used": 9885484, + "remaining": 114516, + "owner_count": 1, + "stop_kind": null, + "phase": "finalization", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 6884423 + ], + [ + "_encode_markdown_report", + "done", + 8058626 + ], + [ + "_verify_json_report", + "done", + 8740043 + ], + [ + "_verify_markdown_report", + "done", + 9885407 + ], + [ + "_deliver_report", + "done", + 9885484 + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + } + ], + "failures_and_repairs": { + "raw_failed_executions": [ + { + "stem": "p4w07-assembly-001", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "tests/contract/test_report_assembly.py", + "-q", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-assembly-001.xml" + ], + "start": "2026-10-26T03:19:30.183199+00:00", + "elapsed_seconds": 0.9236529999998311, + "exit_code": 2, + "before": { + "src/source_integrity_toolkit/contracts/execution.py": "5e3c3c8ccf51200957309c78aad7e0136d0203c720e6f5513033a760806fba0b", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/reporting/assemble.py": "3f096d00ea06f445cdd3a0072c62ed2f516edaa58053dc93ba8a491f9dca3fd4", + "src/source_integrity_toolkit/runtime/disclosure.py": "40a79d5288b4cc11ceaf26f57adb3ac85b3a9bdd6ff5870edb9047a64e13e88a", + "tests/contract/test_report_assembly.py": "0276dc41c3f4202741ebe76682636ea4e2e585a8486de1dec286d16abd37bd31" + }, + "after": { + "src/source_integrity_toolkit/contracts/execution.py": "5e3c3c8ccf51200957309c78aad7e0136d0203c720e6f5513033a760806fba0b", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/reporting/assemble.py": "3f096d00ea06f445cdd3a0072c62ed2f516edaa58053dc93ba8a491f9dca3fd4", + "src/source_integrity_toolkit/runtime/disclosure.py": "40a79d5288b4cc11ceaf26f57adb3ac85b3a9bdd6ff5870edb9047a64e13e88a", + "tests/contract/test_report_assembly.py": "0276dc41c3f4202741ebe76682636ea4e2e585a8486de1dec286d16abd37bd31" + }, + "source_hashes_equal": true + }, + "execution_raw": { + "file": "p4w07-assembly-001-execution.json", + "sha256": "0e26064895f849975af4b5db9e2fc96d778659dfc28bc919340076a159b2e487", + "bytes": 2156 + }, + "junit": { + "case_count": 1, + "counts": { + "passed": 0, + "failure": 0, + "error": 1, + "skipped": 0 + }, + "junit_seconds": 0.456, + "suite_attributes": [ + { + "name": "pytest", + "errors": "1", + "failures": "0", + "skipped": "0", + "tests": "1", + "time": "0.456", + "timestamp": "2026-10-26T14:19:30.531658+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-assembly-001.xml", + "sha256": "60e6a605b115ae9436a4dfd465e1f3572743c4be198cd47717eb11857c56e140", + "bytes": 1046 + } + }, + "cases_by_classname": { + "": 1 + }, + "failed_case_ids": [ + "::tests.contract.test_report_assembly" + ], + "raw": [ + { + "file": "p4w07-assembly-001.log", + "sha256": "dbbde8686af5cf8c0070513d9cc7d915fc38bd389bca819826083197be287e28", + "bytes": 1046 + }, + { + "file": "p4w07-assembly-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-assembly-001.xml", + "sha256": "60e6a605b115ae9436a4dfd465e1f3572743c4be198cd47717eb11857c56e140", + "bytes": 1046 + } + ] + } + }, + { + "stem": "p4w07-pipeline-001", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/integration/test_public_audit.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-pipeline-001.xml" + ], + "started_at_utc": "2026-10-26T03:16:51.916798+00:00", + "elapsed_seconds": 31.327741502999743, + "exit_code": 1, + "timeout_seconds": 600, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "source_files": 232, + "source_bytes_unchanged": true, + "changed_during_run": [], + "scope": "N12 internal same-invocation composition only; public API remains refusing." + }, + "execution_raw": { + "file": "p4w07-pipeline-001-execution.json", + "sha256": "60916b8c938552a23b97e74ee11e05a32a6c985d11d1897129ccee41fdfeb885", + "bytes": 690 + }, + "junit": { + "case_count": 14, + "counts": { + "passed": 7, + "failure": 2, + "error": 5, + "skipped": 0 + }, + "junit_seconds": 30.955, + "suite_attributes": [ + { + "name": "pytest", + "errors": "5", + "failures": "2", + "skipped": "0", + "tests": "14", + "time": "30.955", + "timestamp": "2026-10-26T14:16:52.127596+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-pipeline-001.xml", + "sha256": "ec3f8eaf6e66bb6e9209f71cd1a6aecbd3e26a636de38a86fb4a666809de8e82", + "bytes": 32088 + } + }, + "cases_by_classname": { + "tests.integration.test_public_audit": 14 + }, + "failed_case_ids": [ + "tests.integration.test_public_audit::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests.integration.test_public_audit::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests.integration.test_public_audit::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests.integration.test_public_audit::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests.integration.test_public_audit::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests.integration.test_public_audit::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests.integration.test_public_audit::test_source_mutation_after_delivery_cannot_change_report_or_encodings" + ], + "raw": [ + { + "file": "p4w07-pipeline-001.log", + "sha256": "86acea1b212efad031303286f4cf8701eac20efbb93010e74b6695c03f34e221", + "bytes": 30246 + }, + { + "file": "p4w07-pipeline-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-pipeline-001.xml", + "sha256": "ec3f8eaf6e66bb6e9209f71cd1a6aecbd3e26a636de38a86fb4a666809de8e82", + "bytes": 32088 + } + ] + } + }, + { + "stem": "p4w07-pipeline-002", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/integration/test_public_audit.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-pipeline-002.xml" + ], + "started_at_utc": "2026-10-26T03:25:52.966595+00:00", + "elapsed_seconds": 23.53336037200006, + "exit_code": 1, + "timeout_seconds": 600, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "source_files": 232, + "source_bytes_unchanged": true, + "changed_during_run": [], + "scope": "N12 internal same-invocation composition only; public API remains refusing." + }, + "execution_raw": { + "file": "p4w07-pipeline-002-execution.json", + "sha256": "027fae0c15ffb6bfc7749f574e90614597487e7ac7cdd2d3d3167e30ae99934c", + "bytes": 689 + }, + "junit": { + "case_count": 14, + "counts": { + "passed": 13, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 23.066, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "14", + "time": "23.066", + "timestamp": "2026-10-26T14:25:53.199778+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-pipeline-002.xml", + "sha256": "9e532ecd12a662e1ad85402d0c798a8f6b6989a42bef1e0288a26207d2788ad8", + "bytes": 7904 + } + }, + "cases_by_classname": { + "tests.integration.test_public_audit": 14 + }, + "failed_case_ids": [ + "tests.integration.test_public_audit::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable" + ], + "raw": [ + { + "file": "p4w07-pipeline-002.log", + "sha256": "c6424fb0ae38310f94b2a1def55c4080c8061658daf4556b4b0b9d6bbe660a0a", + "bytes": 5749 + }, + { + "file": "p4w07-pipeline-002-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-pipeline-002.xml", + "sha256": "9e532ecd12a662e1ad85402d0c798a8f6b6989a42bef1e0288a26207d2788ad8", + "bytes": 7904 + } + ] + } + }, + { + "stem": "p4w07-resource-001", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "tests/security/test_report_resource_limits.py", + "-q", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-resource-001.xml" + ], + "exit_code": 2, + "elapsed_seconds": 0.7582350579996273, + "timeout_seconds": 900, + "source_hashes_unchanged": true, + "changed_paths": [] + }, + "execution_raw": { + "file": "p4w07-resource-001-execution.json", + "sha256": "eff4e594fa3229dfa26f88a9231a97b747a950d881d08b7b592c38c079287378", + "bytes": 396 + }, + "junit": { + "case_count": 1, + "counts": { + "passed": 0, + "failure": 0, + "error": 1, + "skipped": 0 + }, + "junit_seconds": 0.322, + "suite_attributes": [ + { + "name": "pytest", + "errors": "1", + "failures": "0", + "skipped": "0", + "tests": "1", + "time": "0.322", + "timestamp": "2026-10-26T14:13:48.627152+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-resource-001.xml", + "sha256": "994b212a2d08574a9ce3cfadc2a3aff7a6681b062fa4a244bb1d693d5303b4d6", + "bytes": 1074 + } + }, + "cases_by_classname": { + "": 1 + }, + "failed_case_ids": [ + "::tests.security.test_report_resource_limits" + ], + "raw": [ + { + "file": "p4w07-resource-001.log", + "sha256": "108a5d1b29377917f5bcb60d16627db89186d8135bb110db2b4490b6e2c9930a", + "bytes": 1074 + }, + { + "file": "p4w07-resource-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-resource-001.xml", + "sha256": "994b212a2d08574a9ce3cfadc2a3aff7a6681b062fa4a244bb1d693d5303b4d6", + "bytes": 1074 + } + ] + } + }, + { + "stem": "p4w07-resource-002", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "tests/security/test_report_resource_limits.py", + "-q", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-resource-002.xml" + ], + "cwd": "/workspace/scratch/4e5267fe5990/source-integrity-toolkit", + "PYTHONPATH": "/workspace/scratch/4e5267fe5990/source-integrity-toolkit/src:/workspace/scratch/4e5267fe5990/source-integrity-toolkit/tests/contract", + "exit_code": 1, + "elapsed_seconds": 164.21928776999994, + "timeout_seconds": 900, + "timed_out": false, + "source_hashes_unchanged": false, + "changed_paths": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/reporting/escaping.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_report_contract.py", + "tests/integration/test_public_audit.py", + "tests/security/test_public_api_boundary.py" + ] + }, + "execution_raw": { + "file": "p4w07-resource-002-execution.json", + "sha256": "dc9e4868a76cf173f56ce5fa79fae69f1d40987fe811b3362072353d02731b2a", + "bytes": 1002 + }, + "junit": { + "case_count": 99, + "counts": { + "passed": 84, + "failure": 15, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 163.609, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "15", + "skipped": "0", + "tests": "99", + "time": "163.609", + "timestamp": "2026-10-26T14:17:01.633920+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-resource-002.xml", + "sha256": "07a5ca0657650892a1336e05f625137deaaab1c7dfb0dff40d83696825027f2d", + "bytes": 69557 + } + }, + "cases_by_classname": { + "tests.security.test_report_resource_limits": 99 + }, + "failed_case_ids": [ + "tests.security.test_report_resource_limits::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency", + "tests.security.test_report_resource_limits::test_each_invocation_stage_obeys_same_global_work_and_original_deadline[work-_verify_markdown_report]", + "tests.security.test_report_resource_limits::test_each_invocation_stage_obeys_same_global_work_and_original_deadline[work-_deliver_report]", + "tests.security.test_report_resource_limits::test_each_invocation_stage_obeys_same_global_work_and_original_deadline[time-_verify_markdown_report]", + "tests.security.test_report_resource_limits::test_each_invocation_stage_obeys_same_global_work_and_original_deadline[time-_deliver_report]", + "tests.security.test_report_resource_limits::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report[_verify_markdown_report]", + "tests.security.test_report_resource_limits::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report[_deliver_report]", + "tests.security.test_report_resource_limits::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget[_admit]", + "tests.security.test_report_resource_limits::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget[_execute_job]", + "tests.security.test_report_resource_limits::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report[_verify_markdown_report]", + "tests.security.test_report_resource_limits::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report[_deliver_report]", + "tests.security.test_report_resource_limits::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report[False]", + "tests.security.test_report_resource_limits::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report[True]", + "tests.security.test_report_resource_limits::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery[json]", + "tests.security.test_report_resource_limits::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery[markdown]" + ], + "raw": [ + { + "file": "p4w07-resource-002.log", + "sha256": "2f2f92e7313703bcea64267f8a8701a8686d0f75a65d8a8483e5f1cccbefc059", + "bytes": 53 + }, + { + "file": "p4w07-resource-002-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-resource-002.xml", + "sha256": "07a5ca0657650892a1336e05f625137deaaab1c7dfb0dff40d83696825027f2d", + "bytes": 69557 + } + ] + } + }, + { + "stem": "p4w07-security-001", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/security/test_public_api_boundary.py", + "tests/contract/test_report_contract.py::test_abort_and_cancellation_cannot_invent_a_validation_state", + "tests/contract/test_report_contract.py::test_w07_abort_retains_rejection_when_diagnostic_pair_cannot_be_delivered", + "tests/contract/test_report_contract.py::test_w07_rejection_transport_extension_does_not_allow_invented_state_pairs", + "tests/contract/test_report_contract.py::test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-security-001.xml" + ], + "cwd": "/workspace/scratch/4e5267fe5990/source-integrity-toolkit", + "exit_code": 1, + "elapsed_seconds": 52.041829109191895, + "timeout_seconds": 600, + "timed_out": false, + "source_before_count": 232, + "source_after_count": 232, + "source_hashes_unchanged": false, + "changed_during_run": [ + "src/source_integrity_toolkit/contracts/report.py", + "src/source_integrity_toolkit/reporting/assemble.py", + "src/source_integrity_toolkit/reporting/escaping.py" + ] + }, + "execution_raw": { + "file": "p4w07-security-001-execution.json", + "sha256": "50120f271c4728257859bc8f49ba86cfc0e2a100609139c44e6a3c8634a98344", + "bytes": 1193 + }, + "junit": { + "case_count": 37, + "counts": { + "passed": 29, + "failure": 8, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 51.578, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "8", + "skipped": "0", + "tests": "37", + "time": "51.578", + "timestamp": "2026-10-26T14:16:55.731319+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-security-001.xml", + "sha256": "2aaea779f5e97da90c2ab3785b233e25a3bc6307d889ed1be70a85cc3303ec91", + "bytes": 34254 + } + }, + "cases_by_classname": { + "tests.contract.test_report_contract": 17, + "tests.security.test_public_api_boundary": 20 + }, + "failed_case_ids": [ + "tests.security.test_public_api_boundary::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[success-None]", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[negative-open-open]", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[negative-listdir-os.listdir]", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[negative-stat-metadata.stat]", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[negative-network-socket.getaddrinfo]", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[negative-native-ctypes.dlopen]", + "tests.security.test_public_api_boundary::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect[negative-process-subprocess.Popen]" + ], + "raw": [ + { + "file": "p4w07-security-001.log", + "sha256": "8a65150e2da3f3c089a78f6f895b182de635b410636401f10dcce61fa0a194bd", + "bytes": 22336 + }, + { + "file": "p4w07-security-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-security-001.xml", + "sha256": "2aaea779f5e97da90c2ab3785b233e25a3bc6307d889ed1be70a85cc3303ec91", + "bytes": 34254 + } + ] + } + }, + { + "stem": "p4w07-targeted-001", + "record": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_parity.py", + "tests/security/test_report_disclosure.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-targeted-001.xml" + ], + "started_at_utc": "2026-10-26T03:45:20.936916+00:00", + "elapsed_seconds": 489.8466227079998, + "exit_code": 1, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "source_files": 232, + "source_bytes_unchanged": true, + "scope": "Ten named W07 report, encoding, budget, internal complete-invocation and security files; not a full suite or public API activation. Private regressions have their separate 146-test receipt." + }, + "execution_raw": { + "file": "p4w07-targeted-001-exit.json", + "sha256": "0e814b505c4f4fe9fd29b63d2487a5f4690bd581c69e283a30190d564d157dd7", + "bytes": 1195 + }, + "junit": { + "case_count": 6276, + "counts": { + "passed": 6275, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 489.114, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "6276", + "time": "489.114", + "timestamp": "2026-10-26T14:45:21.147701+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-targeted-001.xml", + "sha256": "fe4a649612b2e520b2cd3b981ecf59327c33617dbfb2540722c9dd99433c89d8", + "bytes": 1146676 + } + }, + "cases_by_classname": { + "tests.contract.test_json_report": 148, + "tests.contract.test_report_assembly": 79, + "tests.contract.test_report_contract": 5742, + "tests.contract.test_report_parity": 30, + "tests.contract.test_report_test_oracles": 89, + "tests.integration.test_public_audit": 14, + "tests.security.test_public_api_boundary": 20, + "tests.security.test_rendering": 26, + "tests.security.test_report_disclosure": 26, + "tests.security.test_report_resource_limits": 102 + }, + "failed_case_ids": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "raw": [ + { + "file": "p4w07-targeted-001.log", + "sha256": "fdacb76dbec559138dbb1f1924bff261fd00317899aef70d46d43c1e78a4f4d4", + "bytes": 9072 + }, + { + "file": "p4w07-targeted-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-targeted-001.xml", + "sha256": "fe4a649612b2e520b2cd3b981ecf59327c33617dbfb2540722c9dd99433c89d8", + "bytes": 1146676 + } + ] + } + } + ], + "accounting_sequence": "Initial minimal inputs correctly reached the unchanged global cap during replay checking. Later native bounded passes and paid ordering reuse allowed the recorded finite cases to complete. Acquisition then exposed the separately repaired W03 empty-trace projection; subsequent real cap stops and eventual completion remain in the probes.", + "failure_surface": "Early frozen exception traceback handling masked safe aborts in context-manager test infrastructure. The public exception compatibility repair and focused original-object propagation controls address this without exposing raw exception values.", + "test_corrections": "Earlier diagnostic tests incorrectly expected no Reason entry despite the diagnostic contract requiring it; those assertions were corrected without dropping fields. Collection attempts made while interfaces were being completed remain failed evidence.", + "constructor_closure": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "no_erasure": "Every earlier failed run and stage probe remains in the external evidence archive. Successful closure does not relabel earlier runs." + }, + "historical_W06_hosted_status": { + "head": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "run_id": 40212846768, + "status": "completed", + "conclusion": "success", + "profiles": [ + { + "id": 121227602325, + "name": "analytical core (ubuntu-24.04, Python 3.11)", + "status": "completed", + "conclusion": "success" + }, + { + "id": 121227602547, + "name": "analytical core (windows-2025, Python 3.11)", + "status": "completed", + "conclusion": "success" + }, + { + "id": 121227602553, + "name": "analytical core (ubuntu-24.04, Python 3.13)", + "status": "completed", + "conclusion": "success" + }, + { + "id": 121227602580, + "name": "analytical core (windows-2025, Python 3.13)", + "status": "completed", + "conclusion": "success" + } + ], + "observed_at": "2026-10-26T03:46:23.876Z", + "raw": [ + { + "file": "p4w07-prior-ci-runs.json", + "sha256": "7bad2ebde3873dd9a74ae06aff3dbed90d3261067b7900be8ae3606544f71960", + "bytes": 1134 + }, + { + "file": "p4w07-prior-ci-jobs.json", + "sha256": "5df3e53c5481d322b826c06c35eee05f2dcb9a72a9c9485bbf174cc14e11da76", + "bytes": 9428 + } + ], + "scope": "Exact W06-head GitHub run/jobs API readback only; no fresh complete raw-artifact audit." }, "remaining": [ - "W07 implementation/integration and later units remain separate.", - "No merge/release/public API activation." + "All 228 public-envelope/rendering field obligation rows and their verified counts remain unchanged and pending.", + "Public audit_bundle activation is W08; public obligation closure is W09; final installed/four-profile acceptance and handoff is W10.", + "The original full reference retains its actual whole-invocation resource stop. Finite completed cases do not establish universal 10M feasibility or replace original hero outcomes.", + "W07 published-head hosted run/results are not yet known in this prepublication record.", + "audit_file, CLI execution, native file adapters, merge, release, tag and version promotion remain pending." ], - "authority_notice": "This record is evidence only and cannot grant path, semantic, budget or execution authority." + "unchanged_boundaries": "No budget, deadline, reserve, output cap, workflow, pin, runtime dependency, analytical algorithm, vocabulary, frozen plan/schema/golden, API activation or module-inventory change.", + "authority_notice": "Evidence records describe observed work; they do not grant scope, select tests or authorize execution.", + "validated_at_utc": "2026-10-26T03:59:54.742093+00:00", + "publication_note": "Local W03 repair commit IDs and tested source bytes are retained here. Remote Git commit bindings and eventual W07 hosted results belong to external publication receipts; no self-referential success commit is claimed." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index 012dedd..2776c45 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,7 +1,7 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W06", - "status": "W06 exact internal Markdown and independent JSON parity verified; public delivery and whole-invocation integration remain pending", + "unit": "P4-W07", + "status": "W07 internal whole-invocation report composition and safe stopping verified; public API activation and all 228 public field obligations remain pending", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", @@ -11726,36 +11726,120 @@ "source": "OBSERVABILITY_AND_REPORTING.md §§12.2,16.1,16.8; PHASE_4_PLAN.md §4.1", "planned_unit": "P4-W02", "required_behavior": "Exactly 16 root members and only permitted report/run/input-state pairings; diagnostic envelopes have empty analytical arrays; actual installed tool identity and fixed unknown times.", - "status": "W02 declaration/local contract verified; actual public envelope execution pending W07/W08", + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", "actual_test_nodes": [ "tests/contract/test_report_contract.py::test_each_of_sixteen_root_members_is_required_and_typed", "tests/contract/test_report_contract.py::test_all_four_diagnostic_state_combinations_preserve_actual_acceptance", - "tests/contract/test_report_contract.py::test_reference_envelope_is_accepted_by_both_independent_contract_surfaces" + "tests/contract/test_report_contract.py::test_reference_envelope_is_accepted_by_both_independent_contract_surfaces", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline" ], "execution_evidence": [ "p4w02-targeted-combined-01.log", "p4w02-targeted-combined-01.xml", "p4w02-targeted-combined-03.log", - "p4w02-targeted-combined-03.xml" - ] + "p4w02-targeted-combined-03.xml", + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." + } + ], + "w07_previous_status": "W02 declaration/local contract verified; actual public envelope execution pending W07/W08", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false + } }, { "clause": "frozen_public_access", "source": "PHASE_4_PLAN.md §4.1", "planned_unit": "P4-W02", "required_behavior": "Read-only root attributes, immutable Mapping nested objects, tuple arrays, bounded native scalar types, immutable cached encoded bytes; no raw source, budget, prepared tree or private backing exposed.", - "status": "W02 declaration and private immutable capture verified; delivered AuditReport and encoded caches pending W05-W08", + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", "actual_test_nodes": [ "tests/contract/test_report_contract.py::test_immutable_document_is_deeply_detached_and_has_no_mutable_mapping_backing", "tests/contract/test_report_contract.py::test_public_report_type_is_declared_without_a_fabricated_success_constructor", - "tests/contract/test_report_contract.py::test_hostile_protocols_cannot_run_during_contract_or_transport_rejection" + "tests/contract/test_report_contract.py::test_hostile_protocols_cannot_run_during_contract_or_transport_rejection", + "tests/contract/test_report_contract.py::test_w07_abort_retains_rejection_when_diagnostic_pair_cannot_be_delivered", + "tests/contract/test_report_contract.py::test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "tests/contract/test_report_contract.py::test_w07_generic_serialization_cannot_dump_private_report_byte_caches", + "tests/contract/test_report_contract.py::test_w07_rejection_transport_extension_does_not_allow_invented_state_pairs", + "tests/contract/test_report_contract.py::test_w07_safe_transport_traceback_slot_rejects_invalid_values_and_hostile_names", + "tests/contract/test_report_contract.py::test_w07_safe_transports_cross_contextmanager_with_original_exception_identity", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/security/test_public_api_boundary.py::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect", + "tests/security/test_public_api_boundary.py::test_internal_invocation_rejects_hostile_input_without_executing_protocols", + "tests/security/test_public_api_boundary.py::test_internal_native_fault_surface_does_not_format_or_retain_source_exception", + "tests/security/test_public_api_boundary.py::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests/security/test_public_api_boundary.py::test_w07_public_entry_points_still_refuse_without_touching_arguments" ], "execution_evidence": [ "p4w02-targeted-combined-01.log", "p4w02-targeted-combined-01.xml", "p4w02-targeted-combined-03.log", - "p4w02-targeted-combined-03.xml" - ] + "p4w02-targeted-combined-03.xml", + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." + } + ], + "w07_previous_status": "W02 declaration and private immutable capture verified; delivered AuditReport and encoded caches pending W05-W08", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/contract/test_report_contract.py::test_w07_abort_retains_rejection_when_diagnostic_pair_cannot_be_delivered", + "tests/contract/test_report_contract.py::test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "tests/contract/test_report_contract.py::test_w07_generic_serialization_cannot_dump_private_report_byte_caches", + "tests/contract/test_report_contract.py::test_w07_rejection_transport_extension_does_not_allow_invented_state_pairs", + "tests/contract/test_report_contract.py::test_w07_safe_transport_traceback_slot_rejects_invalid_values_and_hostile_names", + "tests/contract/test_report_contract.py::test_w07_safe_transports_cross_contextmanager_with_original_exception_identity", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/security/test_public_api_boundary.py::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect", + "tests/security/test_public_api_boundary.py::test_internal_invocation_rejects_hostile_input_without_executing_protocols", + "tests/security/test_public_api_boundary.py::test_internal_native_fault_surface_does_not_format_or_retain_source_exception", + "tests/security/test_public_api_boundary.py::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests/security/test_public_api_boundary.py::test_w07_public_entry_points_still_refuse_without_touching_arguments" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false + } }, { "clause": "scope_and_population", @@ -11900,7 +11984,7 @@ "source": "REPOSITORY_ARCHITECTURE.md §§17.2–17.4,18.3; GOVERNANCE_AND_HANDOFF.md §22.1", "planned_unit": "P4-W05", "required_behavior": "J plus one LF; exact scalar/key/control encoding, native ordered arrays, portable integer values and original rational components; optional JSON display_decimal omitted.", - "status": "verified_internal_encoder_W05", + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", "actual_test_nodes": [ "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", @@ -11913,7 +11997,17 @@ "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", - "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root" + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats" ], "execution_evidence": [ { @@ -11921,15 +12015,55 @@ "tests_in_json_file": 148, "zero_failures_errors_skips": true, "reference_bytes": 421307 + }, + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." } - ] + ], + "w07_previous_status": "verified_internal_encoder_W05", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false + } }, { "clause": "exact_markdown", "source": "GOVERNANCE_AND_HANDOFF.md §22.2; REPOSITORY_ARCHITECTURE.md §18.3", "planned_unit": "P4-W06", "required_behavior": "Exact fixed root layout and complete pretty-J blocks, per-Result reason details, half-up six-place line for each available fraction, safe dynamic fences and one final LF.", - "status": "verified_internal_renderers_W06", + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", "actual_test_nodes": [ "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", @@ -11946,7 +12080,17 @@ "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", - "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats" ], "execution_evidence": [ { @@ -11956,15 +12100,59 @@ "zero_failures_errors_skips": true, "json_reference_bytes": 421307, "markdown_reference_bytes": 564555 + }, + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." } - ] + ], + "w07_previous_status": "verified_internal_renderers_W06", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure", + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false + } }, { "clause": "semantic_parity", "source": "OBSERVABILITY_AND_REPORTING.md §19.1; VALIDATION_PLAN.md SIT-VG017", "planned_unit": "P4-W06", "required_behavior": "Both representations encode the same selected frozen report; independent block decoding and oracles reject loss of unavailable siblings, scope, unknowns, reasons, contrary premises, denominator or attribution.", - "status": "verified_internal_renderers_W06", + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", "actual_test_nodes": [ "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", @@ -11981,7 +12169,49 @@ "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks", - "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure" + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" ], "execution_evidence": [ { @@ -11991,26 +12221,255 @@ "zero_failures_errors_skips": true, "json_reference_bytes": 421307, "markdown_reference_bytes": 564555 + }, + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." } - ] + ], + "w07_previous_status": "verified_internal_renderers_W06", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false + } }, { "clause": "one_ledger_and_stops", "source": "REPOSITORY_ARCHITECTURE.md §19; GOVERNANCE_AND_HANDOFF.md §22.3; PHASE_4_PLAN.md §4.4", "planned_unit": "P4-W07", "required_behavior": "Original ledger, deadline and 1024-unit emergency reserve span capture through both encodings/parity; preserve first established stop and real acceptance state; no restarted budget or successful partial report.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [] + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", + "actual_test_nodes": [ + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_public_api_boundary.py::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect", + "tests/security/test_public_api_boundary.py::test_internal_invocation_rejects_hostile_input_without_executing_protocols", + "tests/security/test_public_api_boundary.py::test_internal_native_fault_surface_does_not_format_or_retain_source_exception", + "tests/security/test_public_api_boundary.py::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests/security/test_public_api_boundary.py::test_w07_public_entry_points_still_refuse_without_touching_arguments", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "execution_evidence": [ + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." + } + ], + "w07_previous_status": "pending", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_public_api_boundary.py::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect", + "tests/security/test_public_api_boundary.py::test_internal_invocation_rejects_hostile_input_without_executing_protocols", + "tests/security/test_public_api_boundary.py::test_internal_native_fault_surface_does_not_format_or_retain_source_exception", + "tests/security/test_public_api_boundary.py::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests/security/test_public_api_boundary.py::test_w07_public_entry_points_still_refuse_without_touching_arguments", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false + } }, { "clause": "witness_and_output_limits", "source": "PRIVACY_AND_DATA_HANDLING.md WU9-L13,WU9-L14; PHASE_4_PLAN.md §4.4", "planned_unit": "P4-W07", "required_behavior": "Reconcile private retained witness reservations with public Finding/member occurrences without double reserve or lost members; separate encoded-byte limits for JSON and Markdown, no clipping.", - "status": "pending", - "actual_test_nodes": [], - "execution_evidence": [], + "status": "verified_internal_same_invocation_W07; public API and field-by-field public obligations remain pending W08/W09", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_w07_exact_private_owner_credits_and_new_occurrences", + "tests/contract/test_report_assembly.py::test_w07_final_finding_dedup_precedes_witness_quota", + "tests/contract/test_report_assembly.py::test_w07_nonpath_primary_keeps_same_owner_trace_accounting", + "tests/contract/test_report_assembly.py::test_w07_quota_enabled_reference_preserves_independent_bytes", + "tests/contract/test_report_assembly.py::test_w07_unbound_equal_component_cannot_borrow_an_owner_credit", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "execution_evidence": [ + { + "unit": "P4-W07", + "primary": "p4w07-targeted-001.xml", + "scoped_closure": "p4w07-constructor-closure-001.xml", + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution." + } + ], "w05_component_evidence": { "status": "output_encoding_component_verified; full witness/composition obligation remains pending", "actual_test_nodes": [ @@ -12057,6 +12516,55 @@ ], "execution_evidence": "p4w06-targeted-001.xml", "scope": "Existing38cases and10Markdown additions; actual fixedcounter remaining-space limits, LF/framing, mid-output stops and no paired delivery. No full64MiB allocation claim." + }, + "w07_previous_status": "pending", + "w07_internal_evidence": { + "status": "verified_at_internal_composition_boundary", + "actual_test_nodes": [ + "tests/contract/test_report_assembly.py::test_w07_exact_private_owner_credits_and_new_occurrences", + "tests/contract/test_report_assembly.py::test_w07_final_finding_dedup_precedes_witness_quota", + "tests/contract/test_report_assembly.py::test_w07_nonpath_primary_keeps_same_owner_trace_accounting", + "tests/contract/test_report_assembly.py::test_w07_quota_enabled_reference_preserves_independent_bytes", + "tests/contract/test_report_assembly.py::test_w07_unbound_equal_component_cannot_borrow_an_owner_credit", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "execution_evidence": [ + "p4w07-targeted-001.xml", + "p4w07-constructor-closure-001.xml" + ], + "validation_scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "public_activation_claimed": false } }, { @@ -15522,5 +16030,1400 @@ "meaning": "Only separately verified V02/D05 repair bytes inherited after the run; all tested W06 product/test and related JSON/oracle bytes remain identical." }, "scope": "Internal dual-renderer, independent parity, literal-data rendering and fixed output counter checks; no W07 full invocation or public delivery." + }, + "w07_verification": { + "targeted_identity_closure": { + "status": "all_original_targeted_identities_have_passing_evidence", + "primary": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py", + "tests/contract/test_report_assembly.py", + "tests/contract/test_json_report.py", + "tests/contract/test_report_parity.py", + "tests/security/test_report_disclosure.py", + "tests/security/test_rendering.py", + "tests/security/test_report_resource_limits.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py", + "tests/contract/test_report_test_oracles.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-targeted-001.xml" + ], + "started_at_utc": "2026-10-26T03:45:20.936916+00:00", + "elapsed_seconds": 489.8466227079998, + "exit_code": 1, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "source_files": 232, + "source_bytes_unchanged": true, + "scope": "Ten named W07 report, encoding, budget, internal complete-invocation and security files; not a full suite or public API activation. Private regressions have their separate 146-test receipt." + }, + "execution_raw": { + "file": "p4w07-targeted-001-exit.json", + "sha256": "0e814b505c4f4fe9fd29b63d2487a5f4690bd581c69e283a30190d564d157dd7", + "bytes": 1195 + }, + "junit": { + "case_count": 6276, + "counts": { + "passed": 6275, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 489.114, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "6276", + "time": "489.114", + "timestamp": "2026-10-26T14:45:21.147701+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-targeted-001.xml", + "sha256": "fe4a649612b2e520b2cd3b981ecf59327c33617dbfb2540722c9dd99433c89d8", + "bytes": 1146676 + } + }, + "cases_by_classname": { + "tests.contract.test_json_report": 148, + "tests.contract.test_report_assembly": 79, + "tests.contract.test_report_contract": 5742, + "tests.contract.test_report_parity": 30, + "tests.contract.test_report_test_oracles": 89, + "tests.integration.test_public_audit": 14, + "tests.security.test_public_api_boundary": 20, + "tests.security.test_rendering": 26, + "tests.security.test_report_disclosure": 26, + "tests.security.test_report_resource_limits": 102 + }, + "failed_case_ids": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "raw": [ + { + "file": "p4w07-targeted-001.log", + "sha256": "fdacb76dbec559138dbb1f1924bff261fd00317899aef70d46d43c1e78a4f4d4", + "bytes": 9072 + }, + { + "file": "p4w07-targeted-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-targeted-001.xml", + "sha256": "fe4a649612b2e520b2cd3b981ecf59327c33617dbfb2540722c9dd99433c89d8", + "bytes": 1146676 + } + ] + }, + "scoped_constructor_closure": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_report_contract.py::test_public_report_type_is_declared_without_a_fabricated_success_constructor", + "tests/contract/test_report_contract.py::test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "tests/contract/test_report_contract.py::test_w07_generic_serialization_cannot_dump_private_report_byte_caches", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-constructor-closure-001.xml" + ], + "started_at_utc": "2026-10-26T03:55:27.260062+00:00", + "elapsed_seconds": 15.90230425000027, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "base_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "source_files": 232, + "source_bytes_unchanged": true, + "scope": "Six direct controls close the sole full focused regression failure after four AuditReport constructor defaults restore the existing rejection message; includes real complete and unavailable invocation. This is scoped repair verification, not a full suite rerun." + }, + "execution_raw": { + "file": "p4w07-constructor-closure-001-exit.json", + "sha256": "f214dce539bb9cc3848a9b5e4a4877d5bd1fa0cc3dc795d5a33ed7ebe697e8da", + "bytes": 1525 + }, + "junit": { + "case_count": 6, + "counts": { + "passed": 6, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 15.528, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "6", + "time": "15.528", + "timestamp": "2026-10-26T14:55:27.488662+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-constructor-closure-001.xml", + "sha256": "84e3c611cd3ee4df17bc608e1141aa797f0d44087967d2bcca4cdf6033bee5e1", + "bytes": 1159 + } + }, + "cases_by_classname": { + "tests.contract.test_report_contract": 3, + "tests.integration.test_public_audit": 2, + "tests.security.test_report_resource_limits": 1 + }, + "failed_case_ids": [], + "raw": [ + { + "file": "p4w07-constructor-closure-001.log", + "sha256": "242b5a8b02a404b9de8fcc7db639121e9941a1eab1afc458f16c8099f56617ff", + "bytes": 99 + }, + { + "file": "p4w07-constructor-closure-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-constructor-closure-001.xml", + "sha256": "84e3c611cd3ee4df17bc608e1141aa797f0d44087967d2bcca4cdf6033bee5e1", + "bytes": 1159 + } + ] + }, + "distinct_original_identities_closed": 6276, + "closed_failure_ids": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "new_full_green_run_claimed": false, + "scope": "The original ten-file run retains its one constructor-message failure. Only four P01 dataclass defaults changed afterward, with unchanged assertions; the selected closure reruns the failed case and constructor, immutability, generic-serialization and actual complete-invocation controls. This is scoped closure, not a new all-green ten-file execution.", + "source_files_during_primary": 232, + "primary_source_hashes_equal": true, + "closure_source_hashes_equal": true, + "changed_after_primary": [ + "src/source_integrity_toolkit/contracts/report.py" + ], + "pre_patch_P01_exactly_reconstructed": true, + "constructor_repair": { + "changed_files": [ + "src/source_integrity_toolkit/contracts/report.py" + ], + "before_sha256": "820a057eba8a0cbc414da261c19d4d2fa0ab4ccaab77570768beeffb54fe0913", + "after_sha256": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "all_other_231_file_hashes_unchanged": true, + "reason": "Restore original fixed rejection message for AuditReport() and partial direct constructors. Completed internal construction still supplies all four values and retains all validation.", + "scope": "Four constructor field defaults only; no old test assertion changed, no renderer/resource/runtime path changed.", + "patch": "--- tested/src/source_integrity_toolkit/contracts/report.py\n+++ corrected/src/source_integrity_toolkit/contracts/report.py\n@@ -1532,10 +1532,10 @@\n the two already complete immutable byte strings. No budget, source tree,\n prepared snapshot, private index or encoder is retained by this interface.\n \"\"\"\n- _document: MappingProxyType\n- _json_bytes: bytes\n- _markdown_bytes: bytes\n- _seal: InitVar[object]\n+ _document: MappingProxyType = None\n+ _json_bytes: bytes = None\n+ _markdown_bytes: bytes = None\n+ _seal: InitVar[object] = None\n \n def __post_init__(self, _seal):\n if (type(_seal) is not _ReportDeliverySeal or\n" + }, + "constructor_repair_raw": { + "file": "p4w07-constructor-repair.json", + "sha256": "45f16bba05f7df463ee48a38dc892c970104e4af1b032861c8c4327044527a0c", + "bytes": 1325 + }, + "final_product_and_test_bytes": { + "src/source_integrity_toolkit/__init__.py": "0fdc19062761d6b718ff371557376483f7c8e7bbf7f3c347bcae576587513b97", + "src/source_integrity_toolkit/analysis/__init__.py": "2bcd171bde6b0b6c92c3a048cff959780e2e0616f468158b4b97d8967bf7e956", + "src/source_integrity_toolkit/analysis/context.py": "40cb6afefd1c187eaa8afe6555971d55da4cecba8ce3b157c83b42552e56a736", + "src/source_integrity_toolkit/analysis/contribution_profile.py": "4eccb7e682f8a8ce67192da1f7ccd3ced314b2f92e2cd2637444e9553ee502ed", + "src/source_integrity_toolkit/analysis/correction_outcomes.py": "11a09a667f6a2c6552a980875bf6f09255714582318263bc743db5907259af78", + "src/source_integrity_toolkit/analysis/correction_routes.py": "4935dd55e0f4b47b49b4e50d02b73dd816387fa93cdb6bc447ee8dde0c619c0f", + "src/source_integrity_toolkit/analysis/evaluator_lineage.py": "71e8a96caf3d25e9b6f130c99243ab5df16ab5a3407e8b39ac08f583a93c0cdd", + "src/source_integrity_toolkit/analysis/findings.py": "e983a368d3544998b2a4879a82e1a3366f20da074651a1084dc758bc569ff34b", + "src/source_integrity_toolkit/analysis/human_review.py": "bcff22f09add6285a2bcd744ab1e77d1d878f2a92eb1effb738564fe3716a3aa", + "src/source_integrity_toolkit/analysis/inventory.py": "6179f29dbff1afccb939d225947d57f9b9c1b4b03875f4ba992e993560087313", + "src/source_integrity_toolkit/analysis/origins.py": "de77914facb7cfabc7390dcd84cbbc80c8c9823f67d3e2bcb8e826ec21b7fac0", + "src/source_integrity_toolkit/analysis/presence.py": "69b3447fa721f97ce0aa5d488a22e6798ffa2012e1ec73a047e4da1141e8c518", + "src/source_integrity_toolkit/analysis/process_comparison.py": "9d0777bf4fdd422f4392657c3407970c47093de4992cf3837c9a3fe6e3d7e9d0", + "src/source_integrity_toolkit/api.py": "8808d7ef4a0db2f6e314c82fddd4b51cce164a165afaf43e6d626663f6f6768d", + "src/source_integrity_toolkit/cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "src/source_integrity_toolkit/contracts/__init__.py": "5a5c57d26930d12c3de59e180987f740b915e9eb17fd18a2daf29a6f91985432", + "src/source_integrity_toolkit/contracts/bundle.py": "7509a30f008de4ade02543bea26ccc4bd3d5843ae62f75b1841e2e61bcb903da", + "src/source_integrity_toolkit/contracts/constants.py": "d4bee68c62ba495e6aca1fdba352b013f9cc4ed7c3583b61092af234827ad486", + "src/source_integrity_toolkit/contracts/evidence.py": "1b9be04cde9674cb250b34c9d6acfb43bfd35beb19f8ebbe9304f714ef3fc611", + "src/source_integrity_toolkit/contracts/execution.py": "1e3a8f146569db22893b80669d50cf53be2eb396b1525caef66c68ab93a40c06", + "src/source_integrity_toolkit/contracts/report.py": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "src/source_integrity_toolkit/contracts/results.py": "565b4aa8d1053931b0b69b1af686b563427dce2b27be8215e916fbc18d335a11", + "src/source_integrity_toolkit/graph/__init__.py": "3db1c2c13cc1ae2bfb1a049894a04f7d27d7e6874d2079f1348d910aa0f5c943", + "src/source_integrity_toolkit/graph/cycles.py": "350e986d14aa6452c3a334eb4288d0d1b1105bdea6b0786c0ffc59380d8c5db9", + "src/source_integrity_toolkit/graph/projections.py": "b3aa1df29751c0001446af84abcbbde84820576ecb39bc34ff693485b9aea76d", + "src/source_integrity_toolkit/graph/traversal.py": "95f9f8a3eec1828f458256c1438fbd169f615c9698daaca176776b803d54f8f7", + "src/source_integrity_toolkit/graph/witnesses.py": "40682c09e9d3b53d0d36c5204961eb16739d13b392be68c4bf9698cbd1c31b9f", + "src/source_integrity_toolkit/io/__init__.py": "252ed1b29bff2517bc3ce909f4695d0f67c4baf0f1d7707708124107fbba783b", + "src/source_integrity_toolkit/io/input_file.py": "5628507c0989e94a3b5b5401e570b19256c940204859da9e938178ea261dea1f", + "src/source_integrity_toolkit/io/output_directory.py": "d27ae40d53b09355a0e3e137d490d1c2d1352edf67821c985bd0c79096b605ac", + "src/source_integrity_toolkit/io/platform_linux.py": "b63420614f26fc52ebe4e7d9af4d12782fd7374dc4780c420e0e4bdbe6091544", + "src/source_integrity_toolkit/io/platform_windows.py": "31e5f7b304d4455d5d60222f2077eefd284edce341c47524ac85de84f690b4c0", + "src/source_integrity_toolkit/io/publication.py": "ec5124c4f8f1db6d0f8a0d83ad6a62c28646d34c47740f706d1b47871480661d", + "src/source_integrity_toolkit/reporting/__init__.py": "f9db2edfae16c1062a74fcff49d6b5a68b25e35b108413cb1b2bab115ef9dcaa", + "src/source_integrity_toolkit/reporting/assemble.py": "6db4f8707ccac48ac1a434d0144b991c9f043a48dda9a3b34011c72763eaf4a1", + "src/source_integrity_toolkit/reporting/escaping.py": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "src/source_integrity_toolkit/reporting/json_report.py": "8c047f778534e9e2febbd4cb1d5f413adc72ebca13fe80db179bdbadd10f6ee1", + "src/source_integrity_toolkit/reporting/markdown_report.py": "e1e40d1669b7b9df09814fef33f9f3408961031f59368f8d89a34e7e2e434994", + "src/source_integrity_toolkit/runtime/__init__.py": "6bcbe18cb7295bd3339cf426931bdb29ed89edb348575d5deb070f008dec72c7", + "src/source_integrity_toolkit/runtime/boundary.py": "7a497488f4524589c8de0a3ba5a10474fe5f4319c7f6eda9365e9e417a805d39", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/disclosure.py": "40a79d5288b4cc11ceaf26f57adb3ac85b3a9bdd6ff5870edb9047a64e13e88a", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/validation/__init__.py": "0688a44d77c520368899546cc30531aad2849443c12941b536539bab5aac218e", + "src/source_integrity_toolkit/validation/limits.py": "f01e4e5cbc076b07440df19ed2524db549849fcc6cd9834648437ee61a5e53c8", + "src/source_integrity_toolkit/validation/references.py": "7ab63627c068b38364f5c47a6731903fc55bc9d86318bed4f182d9602418df7b", + "src/source_integrity_toolkit/validation/semantics.py": "f98ce60e55d88f543c94a1e260d0172939eb061a983ade4a05f906f7df42ec5d", + "src/source_integrity_toolkit/validation/structure.py": "bf2e61a236539b4b8bada935b39c46203bb8ccad4102e79730e9f84ba52fa315", + "tests/contract/README.md": "2ae135e0af60280fdb9f52d4f1a523cb97f7f06d161b8b8735198ad52db38d5d", + "tests/contract/test_analytical_basis.py": "f7563868b123857392c527de73d5d82b5020ab4ab11a763dae2d5f083e0d07c7", + "tests/contract/test_analytical_mutants.py": "5c953d82e58c9ca4d33daf09162ade376be999749089e9268b980c33653f6bfe", + "tests/contract/test_analytical_obligations.py": "8ddeb9753a6ceb0e2512338d0f2517ac1775eacec9f5f17da65f0a4a34b17005", + "tests/contract/test_analytical_observability.py": "8c9f4ebeb9764a2e5c4ba98c38dfd98e1e8d9b57c26f37624c7cf8dd52631312", + "tests/contract/test_analytical_temporal.py": "d16eed9fc0f014df0dc85d9ee09b75006c9ab37358de8ecb3061a4c3f41f7220", + "tests/contract/test_assertion_contract.py": "042ccafe57679ba35a89abea8a99623690090549b5fb3a2fc5236dba295c34ed", + "tests/contract/test_bundle_contract.py": "c92290224416ac97e6980af31e9f556d233c1260b34c139bc89b4fc0d6e58e4b", + "tests/contract/test_evidence_basis.py": "c3ac52a65f4bdf92f10431d0c4838735f711d11887f05396688306848f698569", + "tests/contract/test_finding_boundaries.py": "fc3380b204ac6dca2be00511970a8c8f84904216cde1aaac3b8ba33d038ea187", + "tests/contract/test_graph_views.py": "6fc9c300af293a5e2360fbf661215288186379024366cf358f9e30d29b566f65", + "tests/contract/test_input_schema_mapping.py": "ed373d60350b2ac371e84a3c8688c54f66b42274bcd8c50f13692beb559c3110", + "tests/contract/test_json_report.py": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "tests/contract/test_normalization_profile.py": "26f01d230f349995334b6892285def1774dcd10051a3dc7a05d9a4cd424e4a8d", + "tests/contract/test_observability_preparation.py": "d15b84850cd8d97752298fcbb8a14339ed835ae6d9790c1a7f045331cb245bcb", + "tests/contract/test_phase2_transition.py": "d476a8ba0ddba20a07d5b1670125d99824b1a5354ba20391fdc9982164671819", + "tests/contract/test_phase3_transition.py": "79dda9fa8645fe39023c8eefaaa4de0debb7b745c93a6f1a1dce7fba3683c4a0", + "tests/contract/test_prerequisite_contract.py": "88ff508c2de74118344bdd47dc8cc4da09ee9d5cee16cace2243ab16cf2974f7", + "tests/contract/test_report_assembly.py": "3eae54d14134b90211e85bb9307ebd7668df7fb7ff3b88c5e4dc40c6e21a2c5f", + "tests/contract/test_report_contract.py": "858a694b3da8a8afcc2eef2a5a2c6f6e433a55653999854226ea4d00f7dc7045", + "tests/contract/test_report_identity.py": "4d49303eb019632f9baeebcd4fc4da500e22e930f06bcd15d0c55ff85538cab8", + "tests/contract/test_report_parity.py": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "tests/contract/test_report_test_oracles.py": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4", + "tests/contract/test_result_contract.py": "f378232238789284732791b770655ba550748545a36f1ba6eef63240b90303d4", + "tests/contract/test_temporal_contract.py": "a900f41109fd5688b636cad6cea7f2777a841ddf17a7c3b86fa0cc8d91efce10", + "tests/contract/test_typed_records.py": "be6ed6b73c6f936dcc774f88d11b29b038f75f33676f3b2225de64d9da06a83a", + "tests/contract/test_verification_boundary.py": "24d1b7d8ea62ad1cb67b8e1f81f3fd5e00a5ec9d0bcfaed02918117318a81e92", + "tests/fixtures/README.md": "98367561c6665e16a8cab1431323d5dab0946ee334928ff553f5b70a04e50921", + "tests/fixtures/adversarial/case_index.json": "2f50e90a8229dfe3613385fa80730fa049ae789fbce198a95323660980245cb2", + "tests/fixtures/adversarial/phase3_cases.json": "e810ffdec2894d43dffb5bc806d88b6de419cab5a823bb8048e81e96fdfacf6d", + "tests/fixtures/adversarial/phase4_report_cases.json": "09bd8226afc4e68522d827f02d14fd3bbd6a5b65c2c9edc08cc982d8ca1f5ff5", + "tests/fixtures/hero/H7-01.bundle.json": "06d342e4d12457dd186c48d917ed023a30e24f66e4226dd1ebf769a6365c47f7", + "tests/fixtures/hero/H7-V01.bundle.json": "98f3b5b1d8e1214211adbdbdaa5cdcb71e5bb1b226fb26c2615648bcd49e5d09", + "tests/fixtures/hero/H7-V02.bundle.json": "043d7c3652035042ca2602d48efeed250d6599874b7ae7206cd74de23f596663", + "tests/fixtures/hero/H7-V03.bundle.json": "213e84942b77e43291ffec5feed4628ef075ddeb9262224c3d326b9402eae013", + "tests/fixtures/hero/fixture_manifest.json": "607fad79a03d6388e15cc3384c738cea6a1757574af9d333aca34676d141b7a6", + "tests/fixtures/micro/case_index.json": "580ca1560e69bb0b4583821eac3c554d7fd73d8d4cd07c131225de420d088ed9", + "tests/fixtures/micro/phase3_cases.json": "0be6460c8a59fb5ab3bff950e9eb56ff05891278a6331b741da0b7b953cedeac", + "tests/fixtures/micro/phase4_public_cases.json": "66fa953e6c11225f1848c2da02b4544b349f380b4f4293805058579e531e81bb", + "tests/golden/H7-01.logical.json": "bec2d971ded08baeaeb85f3ca340e05e959381540adf944bb437eeef4bf640d5", + "tests/golden/H7-V01.logical.json": "7cfb2f5d09175e0f658dac6d5db09777eab2b57406312775b18c0796b147b9ac", + "tests/golden/H7-V02.logical.json": "4bcd1bb23086e475d35830fe01487dde8d4740b5010f59b1da34e4f8445f4134", + "tests/golden/H7-V03.logical.json": "44f5315b7a6e50aae7a9f0d800b7c94f6b6a06425473c7982af100822150487d", + "tests/golden/README.md": "df5a664f6ce0cba56bc61e4af303a7aa88ea96da57ca614bb46b55d50edcbe41", + "tests/golden/phase3_core_expectations.json": "4effefea17e607309259c27a908f9db0540f9755d600d592db2be83fc6ee4677", + "tests/golden/phase4_reference_report.json": "8b65b805bcc8fa8f0b2cb6701d5bd88b028142f7037c25166c90dbddbc61bf48", + "tests/golden/phase4_reference_report.md": "776b2eaae10b3301681cb5a106753823bff5e4a9ff4a5a09325ed3a271f49bdd", + "tests/golden/phase4_report_expectations.json": "c1dbbbc7248e3c9f8d832a23619377daf5f658327dcdb5d7484d506652bbdfe0", + "tests/integration/README.md": "e41ffc1c4c55d70e5a8d0a708311d97b349362c4a57bb960822091c19b0e7d82", + "tests/integration/test_analytical_determinism.py": "cccc2ffdd92f328d7ee384e208cfb68135139c78b3004772145dd9b0500406f2", + "tests/integration/test_analytical_hero_inputs.py": "e197a08623417d1d7623e3acbd6342b80c10fed9c6abb124af75f7221d20fee4", + "tests/integration/test_analytical_installed_runtime.py": "434cb51f159da5ec71025e35130befe9ecbff95d5a8d613d1eaf897142ccafcb", + "tests/integration/test_analytical_pipeline.py": "381cdc6d0233e715352c9e85c28d7b96655cd7eaa730244134a271c7d35e796b", + "tests/integration/test_preparation_capability_boundary.py": "aaa25f2a0fd256d116599e135d975ba7a77ffb6a6ae468495342ba4e358e74f6", + "tests/integration/test_preparation_pipeline.py": "14161e83956f428f7219474da0c37203f32f3ed3591054f2b14a50881cabf0a7", + "tests/integration/test_prepared_hero_inputs.py": "60eb14b6e0942222721ebed083cb4a2328fef8d79dd9ab22c792666634f4e232", + "tests/integration/test_public_audit.py": "46ecd804138b77a4365d78bbacea808602949556a59aceb3e1dc8d078a7f46d9", + "tests/scaffold/test_api_stubs.py": "0441d0bbb735e70225331099c5c01688b24af1877eb63ef12796de00bab9974a", + "tests/scaffold/test_baseline_integrity.py": "b345c30ed2775b54e70f51797ad1d4a670799303902d1a0b4a8f3d54329aa0b8", + "tests/scaffold/test_ci_contract.py": "6070b92b44855cb0b4568ec4854bd3d5e06604cdca84d9951c0d8ce155b4a605", + "tests/scaffold/test_cli_scaffold.py": "8d69b2d20f8c2e1430ba78ab53076d46b28d9e2a54f2c1357e0cdaaa59164f22", + "tests/scaffold/test_contract_catalogs.py": "828589f6f544d7b5b9a0997a78a4dd92cea72524f943935027818ed6cb987472", + "tests/scaffold/test_fixture_integrity.py": "4c0de7dbc7e6a6e5c3cd0b9447aef7b96c7411cbc314a54daf773d9fdd3679db", + "tests/scaffold/test_imports.py": "2e6697b242e631ebfb652832b073b531fa4b44e7ae3e8669ef45be91570d7ff9", + "tests/scaffold/test_layer_boundaries.py": "8c73fa2ad9ec2748f154ab664da4e77d56f1110cdeba704cc46630f9398df65b", + "tests/scaffold/test_module_manifest.py": "35bd81f50cf65e95eec3dce65724ac07e80ffbb92dc3f7b466e8d0e7686b7e2d", + "tests/scaffold/test_no_runtime_implementation.py": "abcf0653adf4663ea4fcd6ac3861645caf07a5518c6d4bafae9c76fc0b6f969d", + "tests/scaffold/test_packaging.py": "cfc891098830d9adf1f2ee3a0c3bcc06e884fb00f356aa5a8e1822feb1aa5d93", + "tests/security/test_analytical_adversarial.py": "6be473d7e4c9c6f572e865e0ded856ee17a8b932ceb1b60d9e7935037e29e91e", + "tests/security/test_analytical_diagnostics.py": "c05a2b798cf0e7fcc8051d31485f96f490cd187439f4cc45d8c80cd546339dfa", + "tests/security/test_analytical_inertness.py": "1fe18d69dbe960e4ba401de7bde75740dbf1747c4aac88c5102c9257baf25ca6", + "tests/security/test_analytical_interruption.py": "9e1fc19c39e68efbafc95433d7140706fcf2fdb3fbb259a047f226bdf2748106", + "tests/security/test_analytical_resource_limits.py": "c47860822db6e49c8444af1e489ad66f4aa6587fb2f24d93ad6008fb523dc14d", + "tests/security/test_graph_limits.py": "1f6ac6254173bb477cb7b843c24c223a24858d4452b09d8cc3d01f83c54dc4b3", + "tests/security/test_input_capture.py": "9e5ffee442ce1de7844474787d0549a3690b6efe2cfe9124ad6461a8911d2ce9", + "tests/security/test_input_diagnostics.py": "f03e0d91796d39fcc8d90f0ff87914bd45feab9ad219db56f3f9c59c6dd4dc56", + "tests/security/test_input_resource_limits.py": "9df86868eb78c5f14ffd3e4977182e08a3785bfbb3f3d737396b2119ae05e466", + "tests/security/test_preparation_inertness.py": "b7cbdfc0f4b3a909c5ae58bc2a4c12e2272bf4cf1c92b31e2531239d9fe7d544", + "tests/security/test_public_api_boundary.py": "5d588685427287a425fdf6fb2c29297209c933e6b1c8705b5d4c31e56da45cc9", + "tests/security/test_rendering.py": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "tests/security/test_report_disclosure.py": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72", + "tests/security/test_report_resource_limits.py": "2609fcb1819d4bbfa1af8c8aeff7db999ea1bfa624caba12f5e46674464a2e95", + "tests/security/test_scaffold_inertness.py": "7179bb00e004e833d7448172cae2068f912e25adb3860c7d5fba9d46396619ba", + "tests/security/test_scaffold_no_native_loading.py": "add4a523f73deba8380a257a1846d8c044249996ec88ca56be1f4903563a96a6", + "tests/security/test_scaffold_no_network.py": "fafa792547d3e3a5b8800308a9b63869b063dd8baa1ef01ab044203760ca23b2", + "tests/unit/README.md": "780ce188f9f9ae364008304bd844dd51c81bee01d607a27b457c1e54f6535078", + "tests/unit/test_ancestry_frontiers.py": "53669615bf8eb7f183d71dfac16e1e744cc58010877e339d81c34d6ca8bd845b", + "tests/unit/test_context_preservation.py": "05b98397397de7df9509d0ea40bd641386fb71c1d39ad22a6c622cc4add164bc", + "tests/unit/test_contribution_profile.py": "8c8645dceb3c697ed2657c96f103234e1f2a6a115131fcadf0aa50794cf5e389", + "tests/unit/test_correction_outcomes.py": "2c06937c4c9c75521d3c29d5843c7b34afa27d061437b0a636a64957d18fa55b", + "tests/unit/test_correction_routes.py": "288a12d6e5b69a0ca2ca8616d87faee222b748aeef59ab7a66f017c654c1526b", + "tests/unit/test_evaluator_lineage.py": "f90ba1b288bf7203eb11a2660d19ef0fb5358a82dbe8ff9e864d9b5c87a0a947", + "tests/unit/test_evidence_domain_index.py": "addc34a1d7252f0d2aabe34239b626ffa497982eb43bf09db6a75593600ec730", + "tests/unit/test_findings.py": "3624f78945a17e8d9af3f2ed2449d786cdab702b73c1e1c6ddbac4cfe0220b61", + "tests/unit/test_graph_cycles.py": "8c6340a9cbf527305b17110f155369a15d4b79b50943918cb2d4536aca2925b0", + "tests/unit/test_graph_traversal.py": "6fc863e073c743f4c77eb809487ea2a3659dcfc0ef5836d3ed2d7a693ad47d7a", + "tests/unit/test_graph_witnesses.py": "b013d94df8e39c166fef7eea013515ecd0b9d1bee585ffa5d12171fee3015eb4", + "tests/unit/test_human_review.py": "07a8b60cbba11e5218a670ca3345b4b5f9a78fb091574872cd6cef77757f4ddd", + "tests/unit/test_immediate_inheritance.py": "bf5e50af4b5a39a8c393df4a9802774338ff3413b9df31ed1659f02284155704", + "tests/unit/test_input_decoding.py": "7852ae877408b4f1e56e98235f8082553bb9a5a84f095712b776a1bd09977541", + "tests/unit/test_inventory.py": "c84ae72fa7f56f728bc3830936e18e46944358610e475c8af320bc3db195f2ab", + "tests/unit/test_origins.py": "4b529c0950a4874fcec7ea18139a5b1ab0369d6bd6cfd36c8eb9896eb3726915", + "tests/unit/test_pipeline_cohorts.py": "1aa6c71d7b5fa803024be342a82af3998857bbbdfe2f6f34854ddf6a4314b597", + "tests/unit/test_presence.py": "400fbb77bad550ce1aae88f4a1f89c23e30ae15db0b9f4b9de082c793aff40b2", + "tests/unit/test_process_comparison.py": "a98345a7bf2319caf85eb8cb4064b38060dc1b64d790cdcd0b3914b034b37aaa", + "tests/unit/test_provenance_profile.py": "74b599ede4cc638a430cc48fa19f7ccb5573f9b1f4ed7d9f9216ddfb8f1f9ab1", + "tests/unit/test_reference_validation.py": "9bc483127d8657ba8209789985f9d6cdc725ca98545ab49328a0c44b1145fd69", + "tests/unit/test_value_capture.py": "e42c870f28d0f8216ad365b306eb77acd9116297f986a37ca10a97f6a7d64137" + } + }, + "actual_test_nodes": { + "root_and_run": [ + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline" + ], + "frozen_public_access": [ + "tests/contract/test_report_contract.py::test_w07_abort_retains_rejection_when_diagnostic_pair_cannot_be_delivered", + "tests/contract/test_report_contract.py::test_w07_delivered_report_attributes_and_nested_values_remain_immutable", + "tests/contract/test_report_contract.py::test_w07_generic_serialization_cannot_dump_private_report_byte_caches", + "tests/contract/test_report_contract.py::test_w07_rejection_transport_extension_does_not_allow_invented_state_pairs", + "tests/contract/test_report_contract.py::test_w07_safe_transport_traceback_slot_rejects_invalid_values_and_hostile_names", + "tests/contract/test_report_contract.py::test_w07_safe_transports_cross_contextmanager_with_original_exception_identity", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/security/test_public_api_boundary.py::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect", + "tests/security/test_public_api_boundary.py::test_internal_invocation_rejects_hostile_input_without_executing_protocols", + "tests/security/test_public_api_boundary.py::test_internal_native_fault_surface_does_not_format_or_retain_source_exception", + "tests/security/test_public_api_boundary.py::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests/security/test_public_api_boundary.py::test_w07_public_entry_points_still_refuse_without_touching_arguments" + ], + "one_ledger_and_stops": [ + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_public_api_boundary.py::test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect", + "tests/security/test_public_api_boundary.py::test_internal_invocation_rejects_hostile_input_without_executing_protocols", + "tests/security/test_public_api_boundary.py::test_internal_native_fault_surface_does_not_format_or_retain_source_exception", + "tests/security/test_public_api_boundary.py::test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "tests/security/test_public_api_boundary.py::test_w07_public_entry_points_still_refuse_without_touching_arguments", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "witness_and_output_limits": [ + "tests/contract/test_report_assembly.py::test_w07_exact_private_owner_credits_and_new_occurrences", + "tests/contract/test_report_assembly.py::test_w07_final_finding_dedup_precedes_witness_quota", + "tests/contract/test_report_assembly.py::test_w07_nonpath_primary_keeps_same_owner_trace_accounting", + "tests/contract/test_report_assembly.py::test_w07_quota_enabled_reference_preserves_independent_bytes", + "tests/contract/test_report_assembly.py::test_w07_unbound_equal_component_cannot_borrow_an_owner_credit", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ], + "canonical_json": [ + "tests/contract/test_json_report.py::test_actual_selected_report_matches_independent_reference_bytes", + "tests/contract/test_json_report.py::test_allowed_scalars_adjacent_to_control_ranges_keep_utf8", + "tests/contract/test_json_report.py::test_encoder_rejects_untrusted_types_before_custom_protocols", + "tests/contract/test_json_report.py::test_every_required_control_scalar_has_lowercase_long_escape", + "tests/contract/test_json_report.py::test_exact_private_atoms_use_literal_shortest_representations", + "tests/contract/test_json_report.py::test_exact_scalar_types_and_empty_containers", + "tests/contract/test_json_report.py::test_invalid_trusted_components_fail_without_values_in_exception", + "tests/contract/test_json_report.py::test_keys_use_unicode_scalar_order_without_normalization", + "tests/contract/test_json_report.py::test_original_fractions_ordered_arrays_and_duplicate_occurrences_survive", + "tests/contract/test_json_report.py::test_quotes_backslash_slash_multilingual_and_combining_forms", + "tests/contract/test_json_report.py::test_report_entry_requires_frozen_project_root", + "tests/contract/test_json_report.py::test_report_wrapper_adds_exactly_one_lf_to_j", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats" + ], + "exact_markdown": [ + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_rendering.py::test_control_and_bidi_scalars_are_exposed_as_exact_lowercase_json_escapes", + "tests/security/test_rendering.py::test_fence_is_one_longer_than_longest_literal_backtick_run", + "tests/security/test_rendering.py::test_invalid_component_header_text_cannot_become_markdown_structure", + "tests/security/test_rendering.py::test_markup_canaries_stay_in_encoded_blocks_and_retain_exact_values", + "tests/security/test_rendering.py::test_multilingual_combining_forms_and_terminal_sequences_are_not_dropped", + "tests/security/test_rendering.py::test_result_and_repeated_reason_details_keep_source_text_inside_safe_blocks" + ], + "semantic_parity": [ + "tests/contract/test_report_parity.py::test_all_root_members_complete_results_reasons_and_native_qualifications_survive", + "tests/contract/test_report_parity.py::test_available_completion_interval_retains_exact_endpoints_without_extra_decimal_line", + "tests/contract/test_report_parity.py::test_counterevidence_is_retained_and_independent_parser_rejects_its_omission", + "tests/contract/test_report_parity.py::test_diagnostic_envelopes_keep_empty_results_safe_diagnostics_and_actual_input_state", + "tests/contract/test_report_parity.py::test_exact_layout_oracle_rejects_framing_and_presentation_mutants", + "tests/contract/test_report_parity.py::test_fraction_display_uses_half_up_six_places_and_keeps_original_components", + "tests/contract/test_report_parity.py::test_independent_parser_rejects_each_substantive_omission", + "tests/contract/test_report_parity.py::test_nonresults_keep_null_value_reasons_and_never_gain_a_decimal", + "tests/contract/test_report_parity.py::test_real_selected_document_matches_both_independent_exact_byte_references", + "tests/contract/test_report_parity.py::test_reason_details_follow_canonical_reason_order_without_reordering_result_refs", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "tests/integration/test_public_audit.py::test_empty_declared_dimensions_preserve_explicit_nonresults", + "tests/integration/test_public_audit.py::test_existing_private_entry_preserves_real_analysis_without_public_delivery", + "tests/integration/test_public_audit.py::test_explicit_dimension_empty_seed_ratios_complete_as_unavailable", + "tests/integration/test_public_audit.py::test_finite_declared_inputs_have_literal_public_inventory_and_family_facts", + "tests/integration/test_public_audit.py::test_full_reference_is_subject_to_the_actual_whole_invocation_limit", + "tests/integration/test_public_audit.py::test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget", + "tests/integration/test_public_audit.py::test_run_identity_unknown_times_and_disclosure_are_retained", + "tests/integration/test_public_audit.py::test_source_mutation_after_delivery_cannot_change_report_or_encodings", + "tests/integration/test_public_audit.py::test_structural_rejection_delivers_complete_safe_diagnostic_formats", + "tests/security/test_report_resource_limits.py::test_actual_output_cap_below_equal_next_byte_is_rejected_prospectively", + "tests/security/test_report_resource_limits.py::test_cancellation_at_each_stage_has_actual_state_and_never_returns_report", + "tests/security/test_report_resource_limits.py::test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair", + "tests/security/test_report_resource_limits.py::test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation", + "tests/security/test_report_resource_limits.py::test_duplicate_encoding_port_request_cannot_reset_existing_output_counts", + "tests/security/test_report_resource_limits.py::test_each_invocation_stage_obeys_same_global_work_and_original_deadline", + "tests/security/test_report_resource_limits.py::test_encoding_name_cannot_select_extra_counter_or_invoke_custom_comparison", + "tests/security/test_report_resource_limits.py::test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report", + "tests/security/test_report_resource_limits.py::test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget", + "tests/security/test_report_resource_limits.py::test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation", + "tests/security/test_report_resource_limits.py::test_fixed_output_counters_are_separate_cumulative_and_not_new_work_allowances", + "tests/security/test_report_resource_limits.py::test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling", + "tests/security/test_report_resource_limits.py::test_l14_emergency_delivery_uses_existing_reserve_once_without_payload", + "tests/security/test_report_resource_limits.py::test_late_report_limit_preserves_earlier_analytical_stop_and_blocks_both_ports", + "tests/security/test_report_resource_limits.py::test_local_job_stop_retains_only_atomically_committed_results_in_complete_report", + "tests/security/test_report_resource_limits.py::test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object", + "tests/security/test_report_resource_limits.py::test_markdown_cap_includes_pretty_spaces_fences_and_all_linefeeds", + "tests/security/test_report_resource_limits.py::test_markdown_final_lf_uses_actual_cap_without_prefix_delivery", + "tests/security/test_report_resource_limits.py::test_markdown_mid_output_stop_returns_no_partial_bytes", + "tests/security/test_report_resource_limits.py::test_mid_encoding_stop_returns_no_prefix_and_preserves_actual_acceptance", + "tests/security/test_report_resource_limits.py::test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order", + "tests/security/test_report_resource_limits.py::test_output_count_requires_exact_nonnegative_integer_without_protocols", + "tests/security/test_report_resource_limits.py::test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values", + "tests/security/test_report_resource_limits.py::test_real_utf8_encoder_obeys_remaining_fixed_byte_cap_without_clipping", + "tests/security/test_report_resource_limits.py::test_report_abort_mapping_rejects_unknown_exception_without_private_protocols", + "tests/security/test_report_resource_limits.py::test_report_encoding_requires_current_owner_and_existing_finalization", + "tests/security/test_report_resource_limits.py::test_report_final_lf_counts_against_actual_cap_and_no_partial_report_returns", + "tests/security/test_report_resource_limits.py::test_report_phase_keeps_original_deadline_at_equality_and_next_nanosecond", + "tests/security/test_report_resource_limits.py::test_report_port_has_no_new_clock_job_acceptance_or_reset_authority", + "tests/security/test_report_resource_limits.py::test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery", + "tests/security/test_report_resource_limits.py::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts", + "tests/security/test_report_resource_limits.py::test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency" + ] + }, + "unicode_scalar_profile": { + "receipt": { + "status": "passed", + "legal_scalars": 1112064, + "chunks": 17376, + "surrogates_rejected": 2048, + "elapsed_seconds": 0.999342883999816, + "source_sha256": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "source_unchanged": true, + "scope": "Independent scalar-profile equality using a counting component port; not a bounded complete-invocation proof.", + "work_units": 999869, + "output_bytes": 4419730 + }, + "raw": { + "file": "p4w07-unicode-equivalence.json", + "sha256": "20efa8c30fd19c46bbfa9054bbef6966e57b5ceda90674d47f655cc0c7af113f", + "bytes": 433 + } + }, + "pipeline_stage_probes": [ + { + "raw": { + "file": "p4w07-pipeline-probe-001.json", + "sha256": "06659c66b9889a9cda9945cb5d43e1253e2092ab48e36f985df5ff4d5b9d938b", + "bytes": 1058 + }, + "facts": { + "purpose": "Diagnose the actual N12 minimal dossier abort after focused run 001", + "source": "Direct boundary stage wrappers delegate to the actual product and observe its single real budget; no limit or port replacement", + "result_type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "input_state": "accepted", + "used": 9999998, + "stop_kind": "global", + "phase": "stopped", + "limit_id": "WU9-L11", + "stage_cumulative_work": [ + [ + "_admit", + "done", + 48236 + ], + [ + "_plan_analysis", + "done", + 53579 + ], + [ + "_complete_analysis", + "done", + 1325599 + ], + [ + "_assemble_selected_report", + "done", + 4565483 + ], + [ + "_encode_json_report", + "done", + 6145764 + ], + [ + "_encode_markdown_report", + "done", + 8345065 + ], + [ + "_verify_json_report", + "stop", + 9999998, + "_AnalysisAborted" + ] + ], + "exit_code": 0, + "limits_changed": false, + "source_hash_snapshot": "No independent before/after snapshot was captured for this short diagnostic probe. The preceding focused run has its own complete source hashes and raw failures." + }, + "source_snapshots_retained_in_raw": false + }, + { + "raw": { + "file": "p4w07-pipeline-probe-002.json", + "sha256": "538ea20cd9f659fa491730315a5248c1aa23bf8f8ced99c58daac67e05f56948", + "bytes": 52995 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48236 + ], + [ + "_plan_analysis", + "done", + 53579 + ], + [ + "_complete_analysis", + "done", + 1325599 + ], + [ + "_assemble_selected_report", + "done", + 4565483 + ], + [ + "_encode_json_report", + "done", + 6145764 + ], + [ + "_encode_markdown_report", + "done", + 8345065 + ], + [ + "_verify_json_report", + "done", + 8976361 + ], + [ + "_verify_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-003.json", + "sha256": "7fe41819c4d11801f764ea07f74c7e17d232c0fcf88d3c42047e6e8302a5152a", + "bytes": 53005 + }, + "facts": { + "type": "AuditReport", + "json_bytes": 219712, + "markdown_bytes": 302556, + "used": 9992491, + "remaining": 7509, + "owner_count": 1, + "stop_kind": null, + "phase": "finalization", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48236 + ], + [ + "_plan_analysis", + "done", + 53579 + ], + [ + "_complete_analysis", + "done", + 1325599 + ], + [ + "_assemble_selected_report", + "done", + 4565483 + ], + [ + "_encode_json_report", + "done", + 6145764 + ], + [ + "_encode_markdown_report", + "done", + 8345065 + ], + [ + "_verify_json_report", + "done", + 8976361 + ], + [ + "_verify_markdown_report", + "done", + 9992482 + ], + [ + "_deliver_report", + "done", + 9992491 + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-004.json", + "sha256": "8120289c34bda91a9842d6158cd5896b8f732a5a0c895f11fdd5e6a3b759ddeb", + "bytes": 52725 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "failed", + "reason_code": "execution_failed", + "case": "acquisition", + "used": 2883337, + "remaining": 7116663, + "owner_count": 1, + "stop_kind": "failure", + "phase": "stopped", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "stop", + 2883337, + "_ReportContractError" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-005.json", + "sha256": "8120289c34bda91a9842d6158cd5896b8f732a5a0c895f11fdd5e6a3b759ddeb", + "bytes": 52725 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "failed", + "reason_code": "execution_failed", + "case": "acquisition", + "used": 2883337, + "remaining": 7116663, + "owner_count": 1, + "stop_kind": "failure", + "phase": "stopped", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "stop", + 2883337, + "_ReportContractError" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-006.json", + "sha256": "41823351e9db9694cb4b8e14317be37603086348742fe191f48252c689a862cb", + "bytes": 52876 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "case": "acquisition", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 8058660 + ], + [ + "_encode_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-007.json", + "sha256": "af2089195b3c2f348607df38a59252b285a988d936dd1dd9ddf2e55d301a6b67", + "bytes": 53021 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "case": "acquisition", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 6876622 + ], + [ + "_encode_markdown_report", + "done", + 8442300 + ], + [ + "_verify_json_report", + "done", + 9269391 + ], + [ + "_verify_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": false + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-008.json", + "sha256": "f67be507806a60a290d220a1726d82f883441118ff1629db4fcdbb2b2daf323b", + "bytes": 53020 + }, + "facts": { + "type": "AuditAbort", + "processing_state": "interrupted", + "reason_code": "resource_limit_reached", + "case": "acquisition", + "used": 10000000, + "remaining": 0, + "owner_count": 1, + "stop_kind": "global", + "phase": "stopped", + "input_state": "accepted", + "limit_id": "WU9-L11", + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 6884423 + ], + [ + "_encode_markdown_report", + "done", + 8264713 + ], + [ + "_verify_json_report", + "done", + 8946130 + ], + [ + "_verify_markdown_report", + "stop", + 10000000, + "_AnalysisAborted" + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + }, + { + "raw": { + "file": "p4w07-pipeline-probe-009.json", + "sha256": "46e6447055e641e6b3d04a7fab039cc05920cbc4f7511df3b5c466a0e4cb1fef", + "bytes": 53032 + }, + "facts": { + "type": "AuditReport", + "json_bytes": 293616, + "markdown_bytes": 388746, + "case": "acquisition", + "used": 9885484, + "remaining": 114516, + "owner_count": 1, + "stop_kind": null, + "phase": "finalization", + "input_state": "accepted", + "limit_id": null, + "stages": [ + [ + "_admit", + "done", + 48330 + ], + [ + "_plan_analysis", + "done", + 54749 + ], + [ + "_complete_analysis", + "done", + 1899414 + ], + [ + "_assemble_selected_report", + "done", + 5956594 + ], + [ + "_encode_json_report", + "done", + 6884423 + ], + [ + "_encode_markdown_report", + "done", + 8058626 + ], + [ + "_verify_json_report", + "done", + 8740043 + ], + [ + "_verify_markdown_report", + "done", + 9885407 + ], + [ + "_deliver_report", + "done", + 9885484 + ] + ], + "source_bytes_unchanged": true + }, + "source_snapshots_retained_in_raw": true + } + ], + "private_regression": { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/integration/test_analytical_pipeline.py", + "tests/security/test_analytical_interruption.py", + "tests/security/test_analytical_diagnostics.py", + "tests/security/test_analytical_resource_limits.py", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w07-private-runtime-001.xml" + ], + "started_at": "2026-10-26T03:17:06.916358+00:00", + "elapsed_seconds": 173.25644176600053, + "exit_code": 0, + "source_before": { + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/contracts/report.py": "a165e1fecf99dcacaa9a778a8d110da0d618019c270188e902d8e3980fa2606e" + }, + "source_after": { + "src/source_integrity_toolkit/runtime/boundary.py": "7383cf3a3a35aa875d98595e2c90ff2daea05eaee8182695a41c8fcf9bc30728", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/contracts/report.py": "7865b95cfe66dc4ed9f0969b1774962c78b59b9df33854528d21097365c352b1" + }, + "observed_paths_unchanged": false, + "note": "Focused old private regression at W07 working source. Root final unified run binds final full source." + }, + "execution_raw": { + "file": "p4w07-private-runtime-001-execution.json", + "sha256": "15bd90cb0630665845dee1b72723cf5996e3c00df0af43f56eaafc06569a31b5", + "bytes": 1736 + }, + "junit": { + "case_count": 146, + "counts": { + "passed": 146, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_seconds": 172.84, + "suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "146", + "time": "172.840", + "timestamp": "2026-10-26T14:17:07.184434+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "raw": { + "file": "p4w07-private-runtime-001.xml", + "sha256": "0fe38585e0e77ab2ced6a897806ed4e60d88a3db5fd706b84ae1f41f4a8795fb", + "bytes": 25356 + } + }, + "cases_by_classname": { + "tests.integration.test_analytical_pipeline": 36, + "tests.security.test_analytical_diagnostics": 29, + "tests.security.test_analytical_interruption": 21, + "tests.security.test_analytical_resource_limits": 60 + }, + "failed_case_ids": [], + "raw": [ + { + "file": "p4w07-private-runtime-001.log", + "sha256": "dd1be2e40d3606e9dc4c956087b7ad9f57847b7215ffc32037a16527cfdd22cd", + "bytes": 272 + }, + { + "file": "p4w07-private-runtime-001-stderr.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "file": "p4w07-private-runtime-001.xml", + "sha256": "0fe38585e0e77ab2ced6a897806ed4e60d88a3db5fd706b84ae1f41f4a8795fb", + "bytes": 25356 + } + ] + }, + "scope": "Internal _audit_value only. Existing audit_bundle/audit_file and CLI refusals remain; W08-W10, merge and release are not started.", + "independent_review": { + "status": "passed_no_remaining_blocking_findings", + "receipt": { + "status": "passed_no_remaining_blocking_findings", + "reviewed_at_utc": "2026-10-26T03:58:59.636999+00:00", + "review_kind": "Independent tool-assisted read-only code and actual-evidence review; not an external human audit.", + "baseline": "e2cd1217ac7873c338d1d0503c0cdef259ce2f3c", + "review_checkout_head": "944298a1df694c5ae9a67109f6a238444c408ea2", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "source_hashes": { + "src/source_integrity_toolkit/contracts/report.py": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "src/source_integrity_toolkit/contracts/execution.py": "1e3a8f146569db22893b80669d50cf53be2eb396b1525caef66c68ab93a40c06", + "src/source_integrity_toolkit/reporting/assemble.py": "6db4f8707ccac48ac1a434d0144b991c9f043a48dda9a3b34011c72763eaf4a1", + "src/source_integrity_toolkit/runtime/disclosure.py": "40a79d5288b4cc11ceaf26f57adb3ac85b3a9bdd6ff5870edb9047a64e13e88a", + "src/source_integrity_toolkit/reporting/escaping.py": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "src/source_integrity_toolkit/reporting/json_report.py": "8c047f778534e9e2febbd4cb1d5f413adc72ebca13fe80db179bdbadd10f6ee1", + "src/source_integrity_toolkit/reporting/markdown_report.py": "e1e40d1669b7b9df09814fef33f9f3408961031f59368f8d89a34e7e2e434994", + "src/source_integrity_toolkit/runtime/resources.py": "a6c6ac966cc039e79d94569ec9139ba5088bc21a354750cefed8910487d6287f", + "src/source_integrity_toolkit/runtime/diagnostics.py": "39660879b726b128db96079a32e3bf5bc55bbd98609384f711c408fd59999b22", + "src/source_integrity_toolkit/runtime/boundary.py": "7a497488f4524589c8de0a3ba5a10474fe5f4319c7f6eda9365e9e417a805d39", + "tests/contract/test_report_contract.py": "858a694b3da8a8afcc2eef2a5a2c6f6e433a55653999854226ea4d00f7dc7045", + "tests/contract/test_report_assembly.py": "3eae54d14134b90211e85bb9307ebd7668df7fb7ff3b88c5e4dc40c6e21a2c5f", + "tests/contract/test_json_report.py": "b727c6f75c6e098ca2491ccfd111c4951ef871717d8debba45a602bddba081f1", + "tests/contract/test_report_parity.py": "762e28af92e365577d7134f170d129916206d16503ffe19b55510cf3f432bf86", + "tests/security/test_report_disclosure.py": "a82c6e85e5940c8be218a4183e28c64cca8f17e4574ac056e4c794038be83c72", + "tests/security/test_rendering.py": "8eae4b6e6ee552d982d5fec5b3afcf0b8112d9e518c23bf16b44f8ca449a129b", + "tests/security/test_report_resource_limits.py": "2609fcb1819d4bbfa1af8c8aeff7db999ea1bfa624caba12f5e46674464a2e95", + "tests/security/test_public_api_boundary.py": "5d588685427287a425fdf6fb2c29297209c933e6b1c8705b5d4c31e56da45cc9", + "tests/integration/test_public_audit.py": "46ecd804138b77a4365d78bbacea808602949556a59aceb3e1dc8d078a7f46d9", + "tests/contract/test_report_test_oracles.py": "2f8d1add11c82b5a60f3160e83b0e5e6866cd7ffcc9260bd10660e1e751bc3a4" + }, + "focused_run": { + "tests": 6276, + "failures": 1, + "errors": 0, + "skipped": 0, + "junit_seconds": 489.114, + "failed_nodes": [ + "tests.security.test_report_resource_limits::test_two_encoders_share_one_ledger_and_keep_distinct_byte_counts" + ], + "passed": 6275, + "exit_code": 1, + "source_files": 232, + "source_hashes_unchanged": true, + "receipt": "p4w07-targeted-001-exit.json" + }, + "constructor_closure": { + "tests": 6, + "failures": 0, + "errors": 0, + "skipped": 0, + "junit_seconds": 15.528, + "failed_nodes": [], + "exit_code": 0, + "source_files": 232, + "source_hashes_unchanged": true, + "changed_path": "src/source_integrity_toolkit/contracts/report.py", + "change": "Four constructor defaults only; original failing assertion retained. Reconstructed previous source hash matches the full run. All other 231 files unchanged.", + "receipt": "p4w07-constructor-repair.json" + }, + "verification_conclusion": "The ten-file run passed 6,275 of 6,276 cases. Its sole original constructor-message failure is closed by a six-case final-source run after four default values were restored. This is scoped closure, not a new all-6,276 pass run.", + "private_regression": { + "tests": 146, + "failures": 0, + "errors": 0, + "skipped": 0, + "junit_seconds": 172.84, + "exit_code": 0, + "whole_source_frozen": false, + "scope": "Four existing private suites passed 146 cases. P01 changed concurrently only in public delivery representation; this is not a full frozen-final-tree run. Current P10 reconstructs the tested hash exactly after removing its two later public-only cache lines; P09/P08 equal tested before/after hashes. All original P01 definitions except AuditReport remain AST-identical to W06; four original private stop classes remain AST-identical.", + "receipt": "p4w07-private-runtime-001-execution.json" + }, + "original_test_preservation": { + "tests/contract/test_report_contract.py": { + "baseline_definitions": 146, + "unchanged_definitions": 145, + "changed_existing_definitions": [ + "test_abort_and_cancellation_cannot_invent_a_validation_state" + ], + "missing_definitions": [] + }, + "tests/contract/test_report_assembly.py": { + "baseline_definitions": 62, + "unchanged_definitions": 62, + "changed_existing_definitions": [], + "missing_definitions": [] + }, + "tests/security/test_report_resource_limits.py": { + "baseline_definitions": 27, + "unchanged_definitions": 27, + "changed_existing_definitions": [], + "missing_definitions": [] + } + }, + "unicode_equivalence": { + "status": "passed", + "legal_scalars": 1112064, + "chunks": 17376, + "surrogates_rejected": 2048, + "elapsed_seconds": 0.999342883999816, + "source_sha256": "a23088d560d616ede7f9a31254e7a96ff4b78c08afcb5b34047f52db87d3b8d2", + "source_unchanged": true, + "scope": "Independent scalar-profile equality using a counting component port; not a bounded complete-invocation proof.", + "work_units": 999869, + "output_bytes": 4419730 + }, + "findings_closed": [ + { + "finding": "A supporting complete_trace could enter a final Finding without an original-owner registration.", + "resolution": "Contributing reconstruction now uses _owner_component; the non-path-primary plus complete_trace regression is included in final N02." + }, + { + "finding": "Frozen dataclass report could expose cached encodings through generic dataclasses.asdict.", + "resolution": "Paid private sixteen-root MappingProxyType backing blocks generic dataclass/deepcopy dumping; final constructor closure tests retention and serialization refusal." + }, + { + "finding": "Frozen exception setters prevented normal contextlib traceback propagation.", + "resolution": "Public AuditAbort/AuditCancelled retain frozen validated safe fields and allow only standard Exception.with_traceback metadata assignment. No guard exception or reflective access was added." + }, + { + "finding": "Complete invocation including required consistency exceeded 10M in earlier implementations.", + "resolution": "Bounded static native scalar/fence passes and invocation-local paid frozen-mapping order reuse remove repeated actual work while preserving unchanged caps, output rules and source meanings. Independent Unicode and original byte oracles plus the actual finite unavailable case were checked." + }, + { + "finding": "Direct AuditReport() lost its original fixed rejection message after representation construction changed.", + "resolution": "Four None defaults restored exact rejection through existing post-init validation; unchanged original N10 assertion passes in final six-case closure." + } + ], + "reviewed_design": [ + "One real invocation ledger/start/deadline/reserve reaches admission, analysis, disclosure, assembly, both encodings, paid consistency and atomic report delivery.", + "Both consistency passes consume the original port. Decoded JSON string meaning is compared; exact scalar spelling remains the renderer obligation verified independently. No second full encoding buffer or second output quota is introduced.", + "The ordering cache retains exact frozen object identities, pays first stable merge sort and subsequent accesses, is scoped to one completed report pair, and is not an analytical cross-job cache.", + "L13 uses concrete retained owner identity and deduplicated final Finding occurrences. Existing wrappers/links are not recounted; new retained witnesses/member occurrences debit the original pending+retained ledger.", + "Rejected-input diagnostic output failure preserves rejected input fact; cancellation does not fabricate an execution reason; established first causes remain bounded safe transport.", + "The delivered report retains only a read-only sixteen-root mapping, immutable nested values and two completed bytes. Source/prepared state, budget, cache and construction seal are not retained." + ], + "limitations": [ + "W07 internal composition only. Public audit_bundle/audit_file and CLI remain at their existing refusal boundary until their authorized stages.", + "Full W02 reference may truthfully hit the unchanged whole-invocation cap; finite complete cases do not prove every input finishes.", + "AuditUsageError contextlib compatibility remains for W08 activation and is not included in the two repaired public exception types.", + "No final W07 hosted matrix result, installed public surface, merge or release is claimed.", + "D04/D05 record-only updates may follow this review; reviewed product/test hashes must remain unchanged." + ] + }, + "raw": { + "file": "p4w07-independent-review.json", + "sha256": "b7830debedb4f8f340f2cf9361aa65821ccadf0efe0df7e42a191fa28186296e", + "bytes": 9586 + } + } } } diff --git a/src/source_integrity_toolkit/contracts/execution.py b/src/source_integrity_toolkit/contracts/execution.py index 0af8bde..78b2725 100644 --- a/src/source_integrity_toolkit/contracts/execution.py +++ b/src/source_integrity_toolkit/contracts/execution.py @@ -178,7 +178,7 @@ def _transport_require(ok: bool) -> None: @dataclass(frozen=True, slots=True, repr=False, eq=False) -class AuditAbort(Exception): +class _AuditAbortFields(Exception): """No conforming report can be delivered; retain only established states. Publication is fixed to not_published in the in-memory Phase 4 surface. @@ -194,10 +194,14 @@ def __post_init__(self) -> None: _transport_require(type(self.input_validation_state) is str) _transport_require(type(self.reason_code) is str) _transport_require(type(self.publication_state) is str) - _transport_require(self.input_validation_state in ("accepted", "not_completed")) + _transport_require(self.input_validation_state in ("accepted", "rejected", "not_completed")) _transport_require(self.publication_state == "not_published") - _transport_require((self.processing_state, self.reason_code) in ( - ("interrupted", "resource_limit_reached"), ("failed", "execution_failed"))) + if self.processing_state == "rejected": + _transport_require(self.input_validation_state == "rejected" and + self.reason_code == "input_not_accepted") + else: + _transport_require((self.processing_state, self.reason_code) in ( + ("interrupted", "resource_limit_reached"), ("failed", "execution_failed"))) @property def args(self) -> tuple: @@ -214,8 +218,22 @@ def __repr__(self) -> str: return "AuditAbort()" +class AuditAbort(_AuditAbortFields): + """Immutable public fields with normal Python traceback propagation.""" + __slots__ = () + + def __setattr__(self, name, value): + if type(name) is str and name == "__traceback__": + Exception.with_traceback(self, value) + return + raise AttributeError("AuditAbort fields are immutable.") + + def __delattr__(self, name): + raise AttributeError("AuditAbort fields are immutable.") + + @dataclass(frozen=True, slots=True, repr=False, eq=False) -class AuditCancelled(Exception): +class _AuditCancelledFields(Exception): """Caller cancellation, with no fabricated execution Reason code.""" input_validation_state: str publication_state: str = "not_published" @@ -241,6 +259,20 @@ def __repr__(self) -> str: return "AuditCancelled()" +class AuditCancelled(_AuditCancelledFields): + """Immutable public fields with normal Python traceback propagation.""" + __slots__ = () + + def __setattr__(self, name, value): + if type(name) is str and name == "__traceback__": + Exception.with_traceback(self, value) + return + raise AttributeError("AuditCancelled fields are immutable.") + + def __delattr__(self, name): + raise AttributeError("AuditCancelled fields are immutable.") + + @dataclass(frozen=True, slots=True, repr=False, eq=False) class AuditUsageError(ValueError): """A fixed, payload-free trusted-invocation failure, before input access.""" @@ -275,24 +307,44 @@ def charge_output(self, encoding: str, byte_count: int) -> None: class _ReportFinalizationPort(_ReportEncodingPort, Protocol): - """Later composition adds witness accounting to bounded report encoding. + """One invocation's restricted report encoding and witness accounting. - This declaration does not activate runtime composition or report delivery. + The semantic owner supplies only newly retained report occurrences. No clock, I/O, caller callback, new ledger or configurable limit is exposed. """ def reserve_report_witness(self, witnesses: int, members: int) -> None: ... +@dataclass(frozen=True, slots=True, repr=False, eq=False) +class _ReportDeliveryStop: + """A rejected input's diagnostic could not be completely delivered. + + Structural rejection remains an established input fact. A subsequent + delivery guard or defect determines this transport's processing reason; + it does not turn the rejected input into accepted or unexamined input. + The older private preparation and analysis stop combinations stay fixed. + """ + input_state: str + execution_state: str + reason_code: str + + def __post_init__(self) -> None: + _transport_require(type(self.input_state) is str and self.input_state == "rejected") + _transport_require(type(self.execution_state) is str and type(self.reason_code) is str) + _transport_require((self.execution_state, self.reason_code) in ( + ("interrupted", "resource_limit_reached"), ("failed", "execution_failed"))) + + @dataclass(frozen=True, slots=True, repr=False, eq=False) class _ReportAborted(Exception): - """Private output-limit propagation without changing earlier stop classes.""" - stop: _PreparationStop + """Private report-delivery propagation without changing earlier stops.""" + stop: _PreparationStop | _ReportDeliveryStop limit_id: str | None = None def __post_init__(self) -> None: - _transport_require(type(self.stop) is _PreparationStop) - _transport_require(self.stop.input_state in ("accepted", "not_completed")) + _transport_require(type(self.stop) in (_PreparationStop, _ReportDeliveryStop)) + _transport_require(self.stop.input_state in ("accepted", "rejected", "not_completed")) if self.stop.execution_state == "interrupted": _transport_require(type(self.limit_id) is str and self.limit_id in _ANALYSIS_LIMIT_IDS + ("WU9-L14",)) diff --git a/src/source_integrity_toolkit/contracts/report.py b/src/source_integrity_toolkit/contracts/report.py index 14c5247..6c965ef 100644 --- a/src/source_integrity_toolkit/contracts/report.py +++ b/src/source_integrity_toolkit/contracts/report.py @@ -9,7 +9,8 @@ completed after W05 admission and PC02-PC24 remain execution-pending. W13 delivery links the separate actual owners' analytical facts and complete cells. """ -from dataclasses import dataclass +from dataclasses import dataclass, InitVar +from types import MappingProxyType from .bundle import _require DOMAIN_LABELS = ( @@ -1518,27 +1519,34 @@ def __repr__(self): return '_ReportMapping()' +class _ReportDeliverySeal: + """Private construction marker; never retained in a delivered report.""" + __slots__ = () + + +@dataclass(frozen=True, slots=True, repr=False, eq=False) class AuditReport: - """Read-only report interface; W02 cannot construct a completed audit. + """Read-only report delivered by the internal bounded completion owner. - The future private completion owner must store only a frozen document and + The private completion owner stores only a frozen document and the two already complete immutable byte strings. No budget, source tree, prepared snapshot, private index or encoder is retained by this interface. """ - __slots__ = ('_document', '_json_bytes', '_markdown_bytes') - - def __new__(cls, *args, **kwargs): - raise TypeError('AuditReport is delivered only by audit_bundle.') + _document: MappingProxyType = None + _json_bytes: bytes = None + _markdown_bytes: bytes = None + _seal: InitVar[object] = None + + def __post_init__(self, _seal): + if (type(_seal) is not _ReportDeliverySeal or + type(self._document) is not MappingProxyType or + type(self._json_bytes) is not bytes or + type(self._markdown_bytes) is not bytes): + raise TypeError('AuditReport is delivered only by audit_bundle.') def __init_subclass__(cls, **kwargs): raise TypeError('AuditReport cannot be subclassed.') - def __setattr__(self, name, value): - raise TypeError('AuditReport is immutable.') - - def __delattr__(self, name): - raise TypeError('AuditReport is immutable.') - def __repr__(self): return 'AuditReport()' @@ -1613,6 +1621,31 @@ def release_limits(self): return self._document['release_limits'] +def _deliver_report(document, json_bytes, markdown_bytes, port): + """Retain an already validated document and its checked immutable pair. + + The runtime must complete both bounded renderers and their content checks + on this same document before entering this private construction seam. + No source, execution context or mutable backing is retained. + """ + port.charge(9) + _report_require(type(document) is _ReportMapping) + _report_require(type(json_bytes) is bytes and type(markdown_bytes) is bytes) + _report_require(bool(json_bytes) and bool(markdown_bytes)) + # A fresh unexposed backing holds just the sixteen roots. Besides a read- + # only surface, the proxy prevents generic dataclass/deepcopy serialization + # from walking into the private encoded caches. Nested values stay frozen. + port.charge(2) + roots = {} + for name, value in document._pairs: + _byte_work(port, 4 * len(name), 3) + roots[name] = value + port.charge(2) + report = AuditReport(MappingProxyType(roots), json_bytes, markdown_bytes, _ReportDeliverySeal()) + port.check() + return report + + def _report_text_work(value, port): """Conservative UTF-8 work, paid before scalar inspection in <=64-char blocks.""" _report_require(type(value) is str) diff --git a/src/source_integrity_toolkit/reporting/assemble.py b/src/source_integrity_toolkit/reporting/assemble.py index bb54215..dc2c55a 100644 --- a/src/source_integrity_toolkit/reporting/assemble.py +++ b/src/source_integrity_toolkit/reporting/assemble.py @@ -196,7 +196,7 @@ def _anchor(value, port): class _Assembly: - def __init__(self, outcome, selection, port): + def __init__(self, outcome, selection, port, reserve_witnesses=False): self.outcome, self.selection, self.port = outcome, selection, port self.rows = {name: [] for name, unused in _PREFIXES} self.objects, self.result_slots, self.basis_slots = {}, {}, {} @@ -206,6 +206,8 @@ def __init__(self, outcome, selection, port): self.scope_keys = {} self.scope_identities = {} self.reference_tokens = {} + self.reserve_witnesses = reserve_witnesses + self.component_sources = {} for kind, entries in (('basis', selection.basis_entries), ('disclosure', selection.disclosures), ('finding', selection.finding_witnesses), ('owner', selection.owner_witnesses)): @@ -418,6 +420,10 @@ def finding(self, value): self.reason(item) witness = self.choose('finding', value) _check_finding_witness(value, witness, self) + if self.reserve_witnesses: + for component, payload in zip(_field(witness, 'components', self.port), + value.witness.owner_witnesses): + _remember_component(self, component, payload) self.add('findings', value, _anchor(value, self.port), { 'observation_kind': value.observation_kind, 'condition_code': value.condition_code, 'diagnostic_refs': _sort(list(value.diagnostic_refs), self.port), @@ -672,6 +678,31 @@ def _graph_component(payload, port): return result +def _remember_component(assembly, component, payload): + """Retain a proved source-owner identity, never a content-based credit.""" + if assembly.reserve_witnesses: + assembly.port.charge(4) + _require(type(payload) is tuple and bool(payload)) + old = assembly.component_sources.get(id(component)) + _require(old is None or (old[0] is component and old[1] is payload)) + # Keeping the component itself prevents recycled object IDs from + # acquiring another owner's paid witness reservation. + assembly.component_sources[id(component)] = (component, payload) + return component + + +def _owner_component(assembly, payload): + return _remember_component(assembly, _graph_component(payload, assembly.port), payload) + + +def _copy_component_owner(assembly, original, copied): + if assembly.reserve_witnesses: + assembly.port.charge(2) + source = assembly.component_sources.get(id(original)) + _require(source is not None and source[0] is original) + _remember_component(assembly, copied, source[1]) + + def _selected_component(payload, port): _require(type(payload) is tuple and bool(payload)) @@ -846,6 +877,7 @@ def _assemble_witnesses(assembly): for component in components: if _field(component, 'type', port) == 'graph_witness': row = {name: child for name, child in component._pairs} + _copy_component_owner(assembly, component, row) if row['kind'] == 'path': paths.append((row, _field(chosen, 'input_refs', port), _proof_context(finding.scope_ref, port), finding.basis_refs)) @@ -872,7 +904,7 @@ def _assemble_witnesses(assembly): selected = assembly.choose('owner', record) components = _field(selected, 'components', port) _require(len(components) == len(record.payload)) - canonical = tuple(_graph_component(payload, port) for payload in record.payload) + canonical = tuple(_owner_component(assembly, payload) for payload in record.payload) for component, actual in zip(components, canonical): _require(_same(component, actual, assembly)) for component in canonical: @@ -956,7 +988,7 @@ def _assemble_witnesses(assembly): supporting, related, input_rows = [], [], [] for record in group['records']: selected = assembly.choose('owner', record) - actual = tuple(_graph_component(payload, port) for payload in record.payload) + actual = tuple(_owner_component(assembly, payload) for payload in record.payload) contributes = any(_same(part, primary, assembly) or (part['kind'] == 'complete_trace' and primary['kind'] == 'path' and _component_matches_path(primary, part, assembly)) @@ -1166,13 +1198,71 @@ def _run(state, completed, diagnostics, tool_version): 'qualifications': _c._REPORT_RUN_QUALIFICATIONS} -def _assemble_report(outcome, selection, port, *, tool_version='0.1.0.dev0'): +def _reserve_report_witnesses(assembly): + """Reconcile final Finding occurrences before final document allocation. + + Candidate rows and selected projections are charged staging views. Only + the existing full-body deduplication decides which Findings are retained. + A concrete private owner pays for its first represented component, while + another actual component occurrence consumes new witness/member quota. + A Finding ID reused by Result links never visits this loop a second time. + """ + if not assembly.reserve_witnesses: + return + port, consumed = assembly.port, set() + for row in assembly.rows['findings']: + port.charge(4) + witness = row['body']['witness'] + if type(witness) is dict: + inputs, components = witness['input_refs'], witness['components'] + else: + inputs = _field(witness, 'input_refs', port) + components = _field(witness, 'components', port) + owner = row['owner'] + original_links = {} + if type(owner) is _c._PrivateFinding: + old_inputs = _ref_keys(owner.witness.input_refs, port) + new_inputs = _ref_keys(tuple(_as_input(ref, port) for ref in inputs), port) + for key in old_inputs: + _charge_key((key, new_inputs), port) + _require(key in new_inputs) + new_witnesses, new_members = 0, len(new_inputs) - len(old_inputs) + for payload in owner.witness.owner_witnesses: + port.charge(3) + original_links[id(payload)] = original_links.get(id(payload), 0) + 1 + else: + new_witnesses, new_members = 1, len(inputs) + for component in components: + port.charge(5) + source = assembly.component_sources.get(id(component)) + _require(source is not None and source[0] is component) + payload = source[1] + identity = id(payload) + available = original_links.get(identity, 0) + if available: + original_links[identity] = available - 1 + else: + new_members += 1 + if identity in consumed: + count = component['member_count'] if type(component) is dict else _field(component, 'member_count', port) + _require(type(count) is int and count >= 0) + new_witnesses += 1 + new_members += count + else: + consumed.add(identity) + # No unbounded report body is copied or frozen before its new retained + # quota is secured. Existing private pending/retained quotas stay put. + port.reserve_report_witness(new_witnesses, new_members) + + +def _assemble_report(outcome, selection, port, *, tool_version='0.1.0.dev0', reserve_witnesses=False): """Assemble one logical envelope under the supplied current invocation port.""" port.check() port.charge(14) _require(type(outcome) is _c._AnalyticalOutcome) + _require(type(reserve_witnesses) is bool) _c._validate_selected_report_disclosure(selection, port) - assembly = _Assembly(outcome, selection, port) + assembly = _Assembly(outcome, selection, port, reserve_witnesses) for result in outcome.results: assembly.result(result) for finding in outcome.findings: @@ -1181,6 +1271,7 @@ def _assemble_report(outcome, selection, port, *, tool_version='0.1.0.dev0'): _assemble_witnesses(assembly) _require(assembly.used == set(assembly.selected)) assembly.identities_for_rows() + _reserve_report_witnesses(assembly) document = {'contract_version': 'sit-report/0.1', 'report_kind': 'audit_report', 'report_id': 'SIT-RPT-000001', 'input_identity': _identity(outcome.prepared, port), 'input_validation': {'state': 'accepted', 'diagnostics': ()}, diff --git a/src/source_integrity_toolkit/reporting/escaping.py b/src/source_integrity_toolkit/reporting/escaping.py index a38d0da..037bec4 100644 --- a/src/source_integrity_toolkit/reporting/escaping.py +++ b/src/source_integrity_toolkit/reporting/escaping.py @@ -11,10 +11,109 @@ from ..contracts.bundle import _Number, _number_bytes, _compare_text from ..contracts.execution import _byte_work from ..contracts.report import _ReportMapping, _ReportContractError +import json +import re _MAX_INTEGER = 9_007_199_254_740_991 +# Fixed scalar transform selected by the frozen J profile. Values contain +# literal JSON escape text; no input-controlled mapping or callback is used. +_J_TRANSLATION = { + 0: "\\u0000", + 1: "\\u0001", + 2: "\\u0002", + 3: "\\u0003", + 4: "\\u0004", + 5: "\\u0005", + 6: "\\u0006", + 7: "\\u0007", + 8: "\\u0008", + 9: "\\u0009", + 10: "\\u000a", + 11: "\\u000b", + 12: "\\u000c", + 13: "\\u000d", + 14: "\\u000e", + 15: "\\u000f", + 16: "\\u0010", + 17: "\\u0011", + 18: "\\u0012", + 19: "\\u0013", + 20: "\\u0014", + 21: "\\u0015", + 22: "\\u0016", + 23: "\\u0017", + 24: "\\u0018", + 25: "\\u0019", + 26: "\\u001a", + 27: "\\u001b", + 28: "\\u001c", + 29: "\\u001d", + 30: "\\u001e", + 31: "\\u001f", + 34: "\\\"", + 92: "\\\\", + 127: "\\u007f", + 128: "\\u0080", + 129: "\\u0081", + 130: "\\u0082", + 131: "\\u0083", + 132: "\\u0084", + 133: "\\u0085", + 134: "\\u0086", + 135: "\\u0087", + 136: "\\u0088", + 137: "\\u0089", + 138: "\\u008a", + 139: "\\u008b", + 140: "\\u008c", + 141: "\\u008d", + 142: "\\u008e", + 143: "\\u008f", + 144: "\\u0090", + 145: "\\u0091", + 146: "\\u0092", + 147: "\\u0093", + 148: "\\u0094", + 149: "\\u0095", + 150: "\\u0096", + 151: "\\u0097", + 152: "\\u0098", + 153: "\\u0099", + 154: "\\u009a", + 155: "\\u009b", + 156: "\\u009c", + 157: "\\u009d", + 158: "\\u009e", + 159: "\\u009f", + 1564: "\\u061c", + 8206: "\\u200e", + 8207: "\\u200f", + 8232: "\\u2028", + 8233: "\\u2029", + 8234: "\\u202a", + 8235: "\\u202b", + 8236: "\\u202c", + 8237: "\\u202d", + 8238: "\\u202e", + 8294: "\\u2066", + 8295: "\\u2067", + 8296: "\\u2068", + 8297: "\\u2069", +} +_J_SCALAR_CLASSES = ( + r'(?P["\\]+)|' + r'(?P[\x00-\x1f\x7f-\x9f\u061c\u200e-\u200f\u2028-\u202e\u2066-\u2069]+)|' + r'(?P[\ud800-\udfff]+)|' + r'(?P[\u00a0-\u061b\u061d-\u07ff]+)|' + r'(?P[\u0800-\u200d\u2010-\u2027\u202f-\u2065\u206a-\ud7ff\ue000-\uffff]+)|' + r'(?P[\U00010000-\U0010ffff]+)' +) +_J_WIDTHS = {'short': 2, 'escape': 6, 'two': 2, 'three': 3, 'four': 4} + + + def _require(ok): if not ok: @@ -81,9 +180,49 @@ def _atom_length(atom, port): return length +class _CachedEncodingPort: + """One finalization's paid ordering of immutable representation objects. + + Analytical jobs have already ended. This stores only exact frozen mapping + identities and already charged sorted pairs, never source interpretations. + The context is local to one encoding pair and is never delivered or global. + Every consumption and all actual encoding/comparison still debit the same + original restricted port. This object cannot start a budget or a job. + """ + __slots__ = ('_port', '_pairs') + + def __init__(self, port): + port.charge(3) + self._port = port + self._pairs = {} + + @property + def _owner(self): + return self._port._owner + + def charge(self, units): + self._port.charge(units) + + def check(self): + self._port.check() + + def charge_output(self, encoding, length): + self._port.charge_output(encoding, length) + + def _sorted_report_pairs(value, port): """Charged stable bottom-up merge; no dict hashing or custom sort key.""" port.charge(2) + cache = type(port) is _CachedEncodingPort + if cache: + port.charge(3) + key = id(value) + existing = port._pairs.get(key) + if existing is not None: + port.charge(2) + _require(existing[0] is value) + port.check() + return existing[1] pairs = value._pairs _require(type(pairs) is tuple) source = [] @@ -116,6 +255,9 @@ def _sorted_report_pairs(value, port): _require(_compare_text(source[position - 1][0], source[position][0], port) < 0) port.charge(n + 1) result = tuple(source) + if cache: + port.charge(4) + port._pairs[key] = (value, result) port.check() return result @@ -162,34 +304,37 @@ def string(self, value): _byte_work(port, size * 4, 2) block = value[start:start + size] port.check() - # Each input block is <=256 UTF-8 bytes. Measure before allocating - # its encoded counterpart; escapes can expand it to <=384 bytes. - _byte_work(port, size * 4, size + 1) - length = 0 - for char in block: - code = ord(char) - _require(not 0xD800 <= code <= 0xDFFF) - length += (6 if _escaped(code) else 2 if char in ('"', '\\') - else 1 if code < 128 else 2 if code < 2048 - else 3 if code < 65536 else 4) + # Native scans are charged by their bounded byte passes. Ordinary + # ASCII needs no per-character Python object construction. These + # disjoint fixed classes count exact UTF-8/escape output width. + _byte_work(port, size * 4, 2) + length = size + matches = re.finditer(_J_SCALAR_CLASSES, block) + while True: + port.charge(1) + match = next(matches, None) + if match is None: + break + _byte_work(port, 32, 3) + kind = match.lastgroup + _require(kind != 'bad') + _byte_work(port, 128, 4) + length += (match.end() - match.start()) * (_J_WIDTHS[kind] - 1) + port.check() port.check() self._reserve(length) - _byte_work(port, size * 4, 2 * size + 2) - _byte_work(port, length, size + 1) - parts = [] - for char in block: - code = ord(char) - if _escaped(code): - fragment = ('\\u%04x' % code).encode('ascii') - elif char in ('"', '\\'): - fragment = ('\\' + char).encode('ascii') - else: - fragment = char.encode('utf-8') - parts.append(fragment) + # Reserve before either transformed text or encoded bytes exists. + # Translation reads the scalar block and writes at most length + # Unicode scalars. UTF-8 encoding is a separately paid pass. + _byte_work(port, size * 4, 1) + _byte_work(port, length * 4, 1) + translated = block.translate(_J_TRANSLATION) port.check() - _byte_work(port, length, len(parts) + 1) - fragment = b''.join(parts) + _byte_work(port, length * 4, 1) + _byte_work(port, length, 1) + fragment = translated.encode('utf-8') port.check() + _require(len(fragment) == length) self._retain(fragment) self.literal(b'"') @@ -296,6 +441,98 @@ def finish(self): return result +class _CheckingWriter(_JWriter): + """Compare a frozen value with one completed output, by bounded fragments. + + This pass consumes ordinary work on the original port. It creates no + second complete output and does not count the same retained bytes twice + against L14. Each prospective temporary fragment is bounded by the bytes + remaining in the completed output before its allocation. + """ + __slots__ = ('_expected',) + + def __init__(self, port, encoding, expected): + _require(type(expected) is bytes) + _require(type(encoding) is str and encoding in ('json', 'markdown')) + port.charge(5) + self._port = port + self._encoding = encoding + self._parts = [] + self._length = 0 + self._expected = expected + + def _reserve(self, length): + self._port.charge(3) + _require(type(length) is int and 0 <= length <= len(self._expected) - self._length) + + def _retain(self, fragment): + port = self._port + port.charge(3) + _require(type(fragment) is bytes) + end = self._length + len(fragment) + _require(end <= len(self._expected)) + _byte_work(port, len(fragment), 2) + expected = self._expected[self._length:end] + _byte_work(port, 2 * len(fragment), 1) + _require(fragment == expected) + self._length = end + port.check() + + def string(self, value): + """Decode one bounded existing scalar instead of re-encoding it. + + Framing is still checked against the fixed document walk. Only a JSON + string token reaches the native decoder, never a container, number or + callback. All scanning, decoding, copying and comparison passes debit + this invocation. The original renderer owns exact J escape spelling; + this separate check establishes the decoded scalar's complete meaning. + """ + port = self._port + port.charge(5) + _require(type(value) is str) + start = self._length + _require(start < len(self._expected) and self._expected[start] == 34) + # J uses at most six bytes per source scalar, plus its two quotes. + ceiling = min(len(self._expected), start + 6 * len(value) + 2) + position, escaped, end = start + 1, False, None + while position < ceiling and end is None: + size = min(256, ceiling - position) + _byte_work(port, size, 3) + block = self._expected[position:position + size] + _byte_work(port, size, 1) + for offset, byte in enumerate(block): + if escaped: + escaped = False + elif byte == 92: + escaped = True + elif byte == 34: + end = position + offset + 1 + break + position += size + port.check() + _require(end is not None) + length = end - start + _byte_work(port, length, 2) + token = self._expected[start:end] + # UTF-8 decoding and JSON string decoding are two distinct passes. + _byte_work(port, length, 1) + _byte_work(port, length, 2) + decoded = json.loads(token) + port.check() + _require(type(decoded) is str) + _byte_work(port, 4 * len(value), 1) + _byte_work(port, 4 * len(decoded), 1) + _require(value == decoded) + port.charge(1) + self._length = end + port.check() + + def finish(self): + self._port.charge(2) + _require(self._length == len(self._expected)) + self._port.check() + + def _encode_j(value, port, *, encoding='json'): """Encode a trusted frozen value as J, without a terminal line feed. @@ -357,18 +594,22 @@ def _fence_length(value, port): continue kind = type(current) if kind is str: - run = 0 - for start in range(0, len(current), 64): - size = min(64, len(current) - start) - _byte_work(port, size * 4, 1) - block = current[start:start + size] - _byte_work(port, size * 4, size + 1) - for char in block: - code = ord(char) - _require(not 0xD800 <= code <= 0xDFFF) - run = run + 1 if char == '`' else 0 - longest = max(longest, run) + # Two fixed linear native scans, each prepaid at the conservative + # UTF-8 bound. No per-character objects or encoded body are copied. + _byte_work(port, 4 * len(current), 3) + _require(re.search(r'[\ud800-\udfff]', current) is None) + port.check() + _byte_work(port, 4 * len(current), 2) + matches = re.finditer('`+', current) + while True: + port.charge(1) + match = next(matches, None) + if match is None: + break + _byte_work(port, 128, 4) + longest = max(longest, match.end() - match.start()) port.check() + port.check() elif kind is _ReportMapping or kind is tuple: port.charge(3) identity = id(current) diff --git a/src/source_integrity_toolkit/reporting/json_report.py b/src/source_integrity_toolkit/reporting/json_report.py index 1ebbd3a..23be1f3 100644 --- a/src/source_integrity_toolkit/reporting/json_report.py +++ b/src/source_integrity_toolkit/reporting/json_report.py @@ -7,7 +7,7 @@ new budget, public AuditReport construction or filesystem access occurs here. """ from ..contracts.report import _ReportMapping, _ReportContractError -from .escaping import _JWriter +from .escaping import _JWriter, _CheckingWriter def _encode_json_report(document, port): @@ -24,3 +24,14 @@ def _encode_json_report(document, port): writer.value(document) writer.literal(b'\n') return writer.finish() + + +def _verify_json_report(document, encoded, port): + """Check complete framing and scalar content against the frozen document.""" + port.charge(1) + if type(document) is not _ReportMapping: + raise _ReportContractError('invalid_report_contract') from None + writer = _CheckingWriter(port, 'json', encoded) + writer.value(document) + writer.literal(b'\n') + writer.finish() diff --git a/src/source_integrity_toolkit/reporting/markdown_report.py b/src/source_integrity_toolkit/reporting/markdown_report.py index 872c920..865c4b6 100644 --- a/src/source_integrity_toolkit/reporting/markdown_report.py +++ b/src/source_integrity_toolkit/reporting/markdown_report.py @@ -12,7 +12,7 @@ from ..contracts.report import _ReportMapping, _REPORT_ROOT_FIELDS from ..contracts.results import FIELD_BINDINGS from .escaping import ( - _JWriter, _require, _sorted_report_pairs, _fence_length, + _JWriter, _CheckingWriter, _require, _sorted_report_pairs, _fence_length, _repeat_syntax, _write_pretty_j, _MAX_INTEGER, ) @@ -186,6 +186,15 @@ def _encode_markdown_report(document, port): Only this one immutable document supplies both ordinary sections and repeated Result/Reason details. No partial bytes or report escape failure. """ + return _write_markdown_report(document, port, _JWriter(port, 'markdown')) + + +def _verify_markdown_report(document, encoded, port): + """Check all framing and scalar content, including repeated details.""" + _write_markdown_report(document, port, _CheckingWriter(port, 'markdown', encoded)) + + +def _write_markdown_report(document, port, writer): fields = _fields(document, port) port.charge(len(_REPORT_ROOT_FIELDS) + 1) _require(len(fields) == len(_REPORT_ROOT_FIELDS)) @@ -203,7 +212,6 @@ def _encode_markdown_report(document, port): index = _reason_index(reasons, port) results = _member(fields, 'results', port) _require(type(results) is tuple) - writer = _JWriter(port, 'markdown') writer.literal(b'# Source Integrity Audit\n\nReport kind: ') _ascii(writer, kind) writer.literal(b'\nProcessing state: ') diff --git a/src/source_integrity_toolkit/runtime/boundary.py b/src/source_integrity_toolkit/runtime/boundary.py index cd0b160..5c00df5 100644 --- a/src/source_integrity_toolkit/runtime/boundary.py +++ b/src/source_integrity_toolkit/runtime/boundary.py @@ -6,7 +6,8 @@ The existing preparation seams retain their return types. Analytical admission uses the same helpers and accepts only after its full finite structural job plan. One execution context owns admission, current-job work and delivery. -No public auditing, file access, options, callbacks or report export is added. +Internal complete reports use that same context through both encodings. +Public API activation, file access, options and callbacks remain separate. """ from ..contracts.execution import _PreparationAborted, _AuditCancelled from ..io.input_file import _decode_utf8 @@ -862,7 +863,24 @@ def _matching_witnesses(profile, ref, port): return tuple(selected) -def _detach_witnesses(profile, port): +def _detached_payload(witness, port, payload_cache): + """Preserve one owner's retained occurrence within this current job. + + This cache is only immutable representation reuse. It performs no new + qualification and never survives the owning job. Distinct witness objects + remain distinct even when their payload values happen to compare equal. + """ + for old, value in payload_cache: + port.charge(1) + if old is witness: + return value + payload = _payload(witness, port) + port.charge(1) + payload_cache.append((witness, payload)) + return payload + + +def _detach_witnesses(profile, port, payload_cache=None): from ..contracts.report import _WitnessRecord refs, seen, records = [], set(), [] for result in profile.results: @@ -875,21 +893,14 @@ def _detach_witnesses(profile, port): refs.append(ref) # Each symbolic anchor retains exactly its actual owner payload. Shared # payload tuples are immutable; no new witness reservation is invented. - payload_cache = [] + if payload_cache is None: + port.charge(1) + payload_cache = [] for ref in refs: selected = _matching_witnesses(profile, ref, port) parts, members = [], 0 for witness in selected: - cached = None - for old, value in payload_cache: - port.charge(1) - if old is witness: - cached = value - break - if cached is None: - cached = _payload(witness, port) - port.charge(1) - payload_cache.append((witness, cached)) + cached = _detached_payload(witness, port, payload_cache) port.charge(2) parts.append(cached) members += witness.member_count @@ -899,12 +910,15 @@ def _detach_witnesses(profile, port): return tuple(records) -def _detach_findings(findings, port): +def _detach_findings(findings, port, payload_cache=None): from ..contracts.report import _DetachedFindingWitness, _PrivateFinding output = [] + if payload_cache is None: + port.charge(1) + payload_cache = [] for finding in findings: witness = finding.witness - payloads = tuple(_payload(value, port) for value in witness.owner_witnesses) + payloads = tuple(_detached_payload(value, port, payload_cache) for value in witness.owner_witnesses) for source in witness.input_refs: _charge_link(source, port) port.charge(len(payloads) + len(witness.input_refs) + 10) @@ -1042,8 +1056,10 @@ def _execute_job(prepared, spec, ledger, port): profiles.extend(profile.facts.stage_profiles) port.charge(1) profiles.append(profile) + port.charge(1) + payload_cache = [] for local in profiles: - witnesses = _detach_witnesses(local, port) + witnesses = _detach_witnesses(local, port, payload_cache) _commit_job(port, local.results, (), witnesses) # Completed owner cells survive a later findings interruption in this same # current job. No result can be supplied by an earlier semantic cache. @@ -1056,7 +1072,7 @@ def _execute_job(prepared, spec, ledger, port): graph_requests = ((query, start, target),) finding_profile = _finding_owner._findings(prepared, context, ledger, port, stage_profiles=(profile,), graph_requests=graph_requests) - findings = _detach_findings(finding_profile.findings, port) + findings = _detach_findings(finding_profile.findings, port, payload_cache) _commit_job(port, (), findings, ()) return port._committed @@ -1071,8 +1087,67 @@ def _analyze_utf8(raw: object): return _run_analysis(raw, supplied_utf8=True) +from ..contracts.report import _JobOutcome + + +def _assemble_analysis(prepared, plan, job_outcomes, results, findings, witnesses, + port, execution_state='completed'): + """Retain the original call-time lookup of the private contract owner.""" + from ..contracts.report import _assemble_analysis as assemble + return assemble(prepared, plan, job_outcomes, results, findings, witnesses, + port, execution_state=execution_state) + + +def _complete_analysis(prepared, plan, budget): + """Finish the existing private analytical schedule on its caller's ledger. + + The finalizer is returned to the trusted composition owner, never retained + by an outcome or offered as a caller-controlled extension point. + """ + results, findings, witnesses, job_outcomes = [], [], [], [] + interrupted = None + for index, spec in enumerate(plan.jobs): + job = budget.start_job() + try: + _execute_job(prepared, spec, budget.witnesses, job) + budget.finish_job(job) + except _AnalysisAborted: + if budget._stop_kind not in ('job', 'witness'): + raise + interrupted = index + committed = job._committed or ((), (), ()) + # Already paid immutable tuples move to the delivery collector. + # Collection allocation is charged to finalization if stopped. + if interrupted is not None: + break + budget.charge(sum(len(items) for items in committed) + 10) + results.extend(committed[0]); findings.extend(committed[1]); witnesses.extend(committed[2]) + job_outcomes.append(_JobOutcome(spec, tuple(result.ref for result in committed[0]), 'completed', + spec.operation_key[0] == 'no_subject')) + port = budget.begin_finalization() + if interrupted is not None: + port.charge(sum(len(items) for items in committed) + 10) + results.extend(committed[0]); findings.extend(committed[1]); witnesses.extend(committed[2]) + for index in range(interrupted, len(plan.jobs)): + spec = plan.jobs[index] + existing = committed[0] if index == interrupted else () + done = tuple(result.ref.field_key for result in existing if result.ref.diagnostic_id == spec.family) + port.charge(len(done) * len(spec.field_keys) + len(done) + 1) + missing = tuple(field for field in spec.field_keys if field not in done) + state = 'interrupted' if index == interrupted else 'not_performed' + unexecuted = _planned_nonresults(prepared, spec, port, execution=state, + code='resource_limit_reached', fields=missing) + port.charge(len(unexecuted) + len(existing) + 8) + results.extend(unexecuted) + job_outcomes.append(_JobOutcome(spec, tuple(result.ref for result in existing + unexecuted), state, + spec.operation_key[0] == 'no_subject')) + port.charge(len(results) + len(findings) + len(witnesses) + len(job_outcomes) + 5) + outcome = _assemble_analysis(prepared, plan, tuple(job_outcomes), tuple(results), tuple(findings), + tuple(witnesses), port, execution_state='interrupted' if interrupted is not None else 'completed') + return outcome, port + + def _run_analysis(value: object, *, supplied_utf8: bool): - from ..contracts.report import _JobOutcome, _assemble_analysis budget = None try: budget = _new_analysis_budget() @@ -1080,46 +1155,8 @@ def _run_analysis(value: object, *, supplied_utf8: bool): prepared = _admit(value, supplied_utf8=supplied_utf8, budget=budget) plan = _plan_analysis(prepared, budget) budget.record_input_acceptance() - results, findings, witnesses, job_outcomes = [], [], [], [] - interrupted = None - for index, spec in enumerate(plan.jobs): - job = budget.start_job() - try: - _execute_job(prepared, spec, budget.witnesses, job) - budget.finish_job(job) - except _AnalysisAborted: - if budget._stop_kind not in ('job', 'witness'): - raise - interrupted = index - committed = job._committed or ((), (), ()) - # Already paid immutable tuples move to the delivery collector. - # Collection allocation is charged to finalization if stopped. - if interrupted is not None: - break - budget.charge(sum(len(items) for items in committed) + 10) - results.extend(committed[0]); findings.extend(committed[1]); witnesses.extend(committed[2]) - job_outcomes.append(_JobOutcome(spec, tuple(result.ref for result in committed[0]), 'completed', - spec.operation_key[0] == 'no_subject')) - port = budget.begin_finalization() - if interrupted is not None: - port.charge(sum(len(items) for items in committed) + 10) - results.extend(committed[0]); findings.extend(committed[1]); witnesses.extend(committed[2]) - for index in range(interrupted, len(plan.jobs)): - spec = plan.jobs[index] - existing = committed[0] if index == interrupted else () - done = tuple(result.ref.field_key for result in existing if result.ref.diagnostic_id == spec.family) - port.charge(len(done) * len(spec.field_keys) + len(done) + 1) - missing = tuple(field for field in spec.field_keys if field not in done) - state = 'interrupted' if index == interrupted else 'not_performed' - unexecuted = _planned_nonresults(prepared, spec, port, execution=state, - code='resource_limit_reached', fields=missing) - port.charge(len(unexecuted) + len(existing) + 8) - results.extend(unexecuted) - job_outcomes.append(_JobOutcome(spec, tuple(result.ref for result in existing + unexecuted), state, - spec.operation_key[0] == 'no_subject')) - port.charge(len(results) + len(findings) + len(witnesses) + len(job_outcomes) + 5) - return _assemble_analysis(prepared, plan, tuple(job_outcomes), tuple(results), tuple(findings), - tuple(witnesses), port, execution_state='interrupted' if interrupted is not None else 'completed') + outcome, unused_port = _complete_analysis(prepared, plan, budget) + return outcome except (_PreparationAborted, _AnalysisAborted, _AuditCancelled): raise except KeyboardInterrupt: @@ -1128,3 +1165,88 @@ def _run_analysis(value: object, *, supplied_utf8: bool): budget.fail() except (_PreparationAborted, _AnalysisAborted, _AuditCancelled) as cause: return _analytical_diagnostic(cause) if budget is None else _emergency_analytical_diagnostic(budget) + + +# The Phase 4 composition seam remains internal until the separately authorized +# public API activation. All work below consumes the very same invocation. +from ..contracts.execution import _ReportAborted, AuditAbort, AuditCancelled +from ..contracts.report import _deliver_report +from ..reporting.assemble import _assemble_diagnostic +from ..reporting.json_report import _encode_json_report, _verify_json_report +from ..reporting.markdown_report import _encode_markdown_report, _verify_markdown_report +from ..reporting.escaping import _CachedEncodingPort +from .disclosure import _assemble_selected_report +from .diagnostics import _report_abort, _emergency_report_abort + + +def _complete_report(document, port): + """Both complete encodings and their consistency precede atomic delivery.""" + port = _CachedEncodingPort(port) + json_bytes = _encode_json_report(document, port) + markdown_bytes = _encode_markdown_report(document, port) + _verify_json_report(document, json_bytes, port) + _verify_markdown_report(document, markdown_bytes, port) + report = _deliver_report(document, json_bytes, markdown_bytes, port) + port.check() + return report + + +def _stopped_report(budget, cause, prepared): + """Attempt one charged diagnostic, or spend the existing emergency reserve. + + A failed assembly or encoder is terminal. It cannot restart report work or + hide a known accepted input behind an unfinished-admission envelope. + """ + if type(cause) is not _AuditCancelled and budget._phase in ('admission', 'analysis'): + try: + try: + finalizer = budget.begin_diagnostic_finalization() + port = budget.begin_report_encoding(finalizer) + retained = prepared if budget.input_state == 'accepted' else None + document = _assemble_diagnostic(cause, port, prepared=retained) + return _complete_report(document, port) + except (_PreparationAborted, _AnalysisAborted, _ReportAborted, _AuditCancelled): + raise + except KeyboardInterrupt: + budget.cancel() + except Exception: + budget.fail() + except (_PreparationAborted, _AnalysisAborted, _ReportAborted, _AuditCancelled): + pass + raise _emergency_report_abort(budget) from None + + +def _audit_value(value: object): + """Internal complete in-process report invocation with one fixed budget. + + No options, caller port, callbacks, files or network are accepted. The + returned report owns only the frozen selected document and complete bytes. + Preparation, every analytical job, disclosure, assembly and both renderers + retain one ledger, start time and reserve through the last delivery check. + """ + try: + budget = _new_analysis_budget() + except (_PreparationAborted, _AnalysisAborted, _AuditCancelled) as cause: + raise _report_abort(cause) from None + except KeyboardInterrupt: + raise AuditCancelled('not_completed') from None + except Exception: + raise AuditAbort('failed', 'not_completed', 'execution_failed') from None + prepared = None + try: + try: + prepared = _admit(value, supplied_utf8=False, budget=budget) + plan = _plan_analysis(prepared, budget) + budget.record_input_acceptance() + outcome, finalizer = _complete_analysis(prepared, plan, budget) + port = budget.begin_report_encoding(finalizer) + document = _assemble_selected_report(outcome, port, reserve_witnesses=True) + return _complete_report(document, port) + except (_PreparationAborted, _AnalysisAborted, _ReportAborted, _AuditCancelled): + raise + except KeyboardInterrupt: + budget.cancel() + except Exception: + budget.fail() + except (_PreparationAborted, _AnalysisAborted, _ReportAborted, _AuditCancelled) as cause: + return _stopped_report(budget, cause, prepared) diff --git a/src/source_integrity_toolkit/runtime/diagnostics.py b/src/source_integrity_toolkit/runtime/diagnostics.py index 0154e77..d448c45 100644 --- a/src/source_integrity_toolkit/runtime/diagnostics.py +++ b/src/source_integrity_toolkit/runtime/diagnostics.py @@ -1,6 +1,6 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Owner: RUNTIME_BOUNDARY. Fixed private input-stop records only. +"""Owner: RUNTIME_BOUNDARY. Fixed private stops and safe report transports. No arbitrary source, key, ID, exception, locator or method string is accepted. No report envelope, logging, rendering, serialization or I/O is implemented. @@ -159,7 +159,7 @@ def _report_abort(cause: object) -> object: """ if type(cause) is _AuditCancelled: return AuditCancelled(cause.input_state) - if type(cause) not in (_AnalysisAborted, _ReportAborted): + if type(cause) not in (_PreparationAborted, _AnalysisAborted, _ReportAborted): raise TypeError("unrecognized_private_stop") from None stop = cause.stop return AuditAbort(stop.execution_state, stop.input_state, stop.reason_code) @@ -169,4 +169,4 @@ def _emergency_report_abort(budget: object) -> object: """Spend the same invocation's one prepaid reserve for a safe report abort.""" if type(budget) is not _AnalysisBudget: raise TypeError("invalid_private_budget") from None - return _report_abort(budget.take_emergency()) + return _report_abort(budget.take_report_emergency()) diff --git a/src/source_integrity_toolkit/runtime/disclosure.py b/src/source_integrity_toolkit/runtime/disclosure.py index a0550e0..87aaa71 100644 --- a/src/source_integrity_toolkit/runtime/disclosure.py +++ b/src/source_integrity_toolkit/runtime/disclosure.py @@ -701,7 +701,8 @@ def _select_report_disclosure(outcome, port): return selection -def _assemble_selected_report(outcome, port, *, tool_version='0.1.0.dev0'): +def _assemble_selected_report(outcome, port, *, tool_version='0.1.0.dev0', reserve_witnesses=False): """Select and assemble under the same caller-owned bounded internal port.""" selected = _select_report_disclosure(outcome, port) - return _a._assemble_report(outcome, selected, port, tool_version=tool_version) + return _a._assemble_report(outcome, selected, port, tool_version=tool_version, + reserve_witnesses=reserve_witnesses) diff --git a/src/source_integrity_toolkit/runtime/resources.py b/src/source_integrity_toolkit/runtime/resources.py index 46c3dfa..ae72838 100644 --- a/src/source_integrity_toolkit/runtime/resources.py +++ b/src/source_integrity_toolkit/runtime/resources.py @@ -17,7 +17,7 @@ from ..contracts.execution import ( _PreparationStop, _PreparationAborted, _AuditCancelled, _STRUCTURAL_CODES, _PREPARATION_LIMIT_IDS, _CONSTRAINT_CODES, - _AnalysisAborted, _ANALYSIS_LIMIT_IDS, _ReportAborted, + _AnalysisAborted, _ANALYSIS_LIMIT_IDS, _ReportAborted, _ReportDeliveryStop, ) from ..validation.limits import _WitnessLedger @@ -217,6 +217,9 @@ def charge(self, units: int) -> None: def charge_output(self, encoding: str, byte_count: int) -> None: self._owner._report_output_charge(self, encoding, byte_count) + def reserve_report_witness(self, witnesses: int, members: int) -> None: + self._owner._report_witness_charge(self, witnesses, members) + @dataclass(slots=True, repr=False, eq=False) class _WitnessJobAccounting: @@ -259,6 +262,8 @@ class _AnalysisBudget(_PreparationBudget): _report_encoder: object = field(default=None, init=False) _json_output_bytes: int = field(default=0, init=False) _markdown_output_bytes: int = field(default=0, init=False) + _diagnostic_finalization: bool = field(default=False, init=False) + _report_delivery_cause: object = field(default=None, init=False) def _clock_check(self) -> None: now = self._now() @@ -289,6 +294,7 @@ def charge(self, units: int) -> None: def _stop(self, kind: str, limit_id: str) -> None: if self._phase == "finalization": self._finalization_blocked = True + self._record_rejected_delivery("interrupted", "resource_limit_reached", limit_id) self._raise_existing() self._stop_kind = kind self._cause = _AnalysisAborted( @@ -313,6 +319,7 @@ def interrupt(self, limit_id: str) -> None: def fail(self) -> None: if self._phase == "finalization": self._finalization_blocked = True + self._record_rejected_delivery("failed", "execution_failed") self._raise_existing() self._stop_kind = "failure" self._cause = _AnalysisAborted(_PreparationStop(self._state, "failed", "execution_failed")) @@ -377,6 +384,36 @@ def begin_finalization(self) -> _BoundedFinalization: self._finalization_charge(finalizer, 1) return finalizer + def begin_diagnostic_finalization(self) -> _BoundedFinalization: + """A terminal diagnostic uses ordinary work on this same invocation. + + Only a structural rejection, pre-acceptance non-global resource stop, + or execution defect before finalization can enter this path. It does + not resume analysis or retry failed report assembly. A global/time + stop, cancellation, previous finalizer or spent reserve stays terminal. + """ + cause = self._cause + rejected = type(cause) is _PreparationAborted and cause.stop.execution_state == "rejected" + stopped = type(cause) is _AnalysisAborted and self._stop_kind in ("admission_resource", "failure") + if (not (rejected or stopped) or self._phase not in ("admission", "analysis") or + self._finalizer is not None or self._emergency_taken): + self._raise_existing() + self.fail() + self._phase = "finalization" + self._job = None + self._diagnostic_finalization = True + finalizer = _BoundedFinalization(self) + self._finalizer = finalizer + self._finalization_charge(finalizer, 1) + return finalizer + + def _record_rejected_delivery(self, state: str, reason: str, limit_id=None) -> None: + """Keep a structural rejection and its first later delivery failure.""" + if (self._diagnostic_finalization and self._state == "rejected" and + self._report_delivery_cause is None): + self._report_delivery_cause = _ReportAborted( + _ReportDeliveryStop("rejected", state, reason), limit_id) + def take_emergency(self) -> object: """The one safe abort is terminal, including any earlier delivery port.""" cause = _PreparationBudget.take_emergency(self) @@ -385,6 +422,11 @@ def take_emergency(self) -> object: self._job = None return cause + def take_report_emergency(self) -> object: + """Consume the same prepaid reserve, with truthful rejected delivery.""" + cause = self.take_emergency() + return self._report_delivery_cause if self._report_delivery_cause is not None else cause + def _finalization_check(self, port: object) -> None: if (type(port) is not _BoundedFinalization or self._finalizer is not port or self._phase != "finalization"): @@ -392,7 +434,8 @@ def _finalization_check(self, port: object) -> None: if self._finalization_blocked: self._raise_existing() self.fail() - if self._cause is not None and self._stop_kind not in ("job", "witness"): + if (self._cause is not None and self._stop_kind not in ("job", "witness") and + not self._diagnostic_finalization): self._raise_existing() self._clock_check() @@ -440,6 +483,7 @@ def _report_output_charge(self, port: object, encoding: str, byte_count: int) -> used = self._json_output_bytes if encoding == "json" else self._markdown_output_bytes if byte_count > _REPORT_OUTPUT_LIMIT - used: self._finalization_blocked = True + self._record_rejected_delivery("interrupted", "resource_limit_reached", "WU9-L14") self._raise_existing() self._stop_kind = "output" self._cause = _ReportAborted( @@ -452,6 +496,35 @@ def _report_output_charge(self, port: object, encoding: str, byte_count: int) -> else: self._markdown_output_bytes += byte_count + def _report_witness_charge(self, port: object, witnesses: int, members: int) -> None: + """Prospectively retain only new report occurrences in the old quota. + + The assembler proves the exact existing witness/component reuse and + supplies additions. Pending and retained private reservations remain + counted; there is no aggregate credit, refund, new ceiling or new + analytical job. Payload copying and traversal are separately charged. + """ + self._report_encoding_check(port) + if (type(witnesses) is not int or type(members) is not int or + witnesses < 0 or members < 0): + self.fail() + self._finalization_charge(self._finalizer, 5) + ledger = self._witness_ledger + retained_witnesses = 0 if ledger is None else ledger._retained_witnesses + retained_members = 0 if ledger is None else ledger._retained_members + pending_witnesses = 0 if ledger is None else ledger._reserved_witnesses + pending_members = 0 if ledger is None else ledger._reserved_members + if (witnesses > 20_000 - retained_witnesses - pending_witnesses or + members > 100_000 - retained_members - pending_members): + self._stop("witness", "WU9-L13") + self._finalization_charge(self._finalizer, witnesses + members) + if ledger is None: + self._finalization_charge(self._finalizer, 5) + ledger = _WitnessLedger(_WitnessJobAccounting(self)) + self._witness_ledger = ledger + ledger._retained_witnesses += witnesses + ledger._retained_members += members + def _new_analysis_budget() -> _AnalysisBudget: """Zero-argument project factory; no independent post-preparation reset.""" diff --git a/tests/contract/test_report_assembly.py b/tests/contract/test_report_assembly.py index 7adb28c..181595a 100644 --- a/tests/contract/test_report_assembly.py +++ b/tests/contract/test_report_assembly.py @@ -12,6 +12,7 @@ from dataclasses import replace import json from pathlib import Path +from types import SimpleNamespace import pytest @@ -1376,6 +1377,159 @@ def test_runtime_review_scan_and_repeated_source_slots_keep_owner_order(review_s assert 0 < port.units <= 10_000_000 +class WitnessQuotaPort(RecordingPort): + """Record new retained occurrences; fixed-cap integration lives in N10.""" + def __init__(self): + super().__init__() + self.reservations = [] + + def reserve_report_witness(self, witnesses, members): + assert type(witnesses) is int and type(members) is int + assert witnesses >= 0 and members >= 0 + self.reservations.append((witnesses, members)) + + +def _quota_component_state(reference_outcome, specifications): + """Explicit three-member owner payload and two input links, no oracle dump. + + Each specification declares a wrapper identity and the exact original + payload object it uses. These are trusted component controls, not claims + that the synthetic rows were produced by a real analytical invocation. + """ + refs = tuple(_InputRef('records', name) for name in ('W07-A', 'W07-B', 'W07-C')) + shared = ('selected_members', refs, 3) + port = WitnessQuotaPort() + state = SimpleNamespace(port=port, reserve_witnesses=True, + component_sources={}, rows={'findings': []}) + for existing, fresh_payload, extra_input in specifications: + payload = tuple(list(shared)) if fresh_payload else shared + component = {'type': 'selected_members', 'members': refs, 'member_count': 3} + assemble._remember_component(state, component, payload) + owner = object() + if existing: + witness = contract._DetachedFindingWitness(refs[:2], (payload,), 3) + owner = replace(reference_outcome.findings[0], witness=witness) + inputs = refs if extra_input else refs[:2] + state.rows['findings'].append({'owner': owner, 'body': { + 'witness': {'input_refs': inputs, 'components': (component,)}}}) + return state + + +@pytest.mark.parametrize('specifications,expected', [ + # Existing wrapper + its two input links + one component link are paid. + (((True, False, False),), [(0, 0)]), + # Two existing wrappers share one paid owner component. Its second actual + # retained payload occurrence adds one witness and three member occurrences. + (((True, False, False), (True, False, False)), [(0, 0), (1, 3)]), + # Equal content from different actual owners keeps both original credits. + (((True, False, False), (True, True, False)), [(0, 0), (0, 0)]), + # New wrapper: one witness, two input links and one component link. + (((False, False, False),), [(1, 3)]), + (((False, False, False), (False, False, False)), [(1, 3), (2, 6)]), + # An additional input link consumes one member even on an old wrapper. + (((True, False, True),), [(0, 1)]), +]) +def test_w07_exact_private_owner_credits_and_new_occurrences(reference_outcome, + specifications, expected): + state = _quota_component_state(reference_outcome, specifications) + assemble._reserve_report_witnesses(state) + assert state.port.reservations == expected + + +def test_w07_unbound_equal_component_cannot_borrow_an_owner_credit(reference_outcome): + state = _quota_component_state(reference_outcome, ((True, False, False),)) + witness = state.rows['findings'][0]['body']['witness'] + witness['components'] = (dict(witness['components'][0]),) + with pytest.raises(contract._ReportContractError): + assemble._reserve_report_witnesses(state) + assert state.port.reservations == [] + + +def test_w07_quota_enabled_reference_preserves_independent_bytes(reference_outcome): + port = WitnessQuotaPort() + document = disclosure_runtime._assemble_selected_report(reference_outcome, port, + reserve_witnesses=True) + _strict_equal(_plain(document), _reference_document()) + assert len(port.reservations) == 22 + assert all(witnesses >= 0 and members >= 0 for witnesses, members in port.reservations) + assert any(witnesses > 0 for witnesses, members in port.reservations) + + +def test_w07_final_finding_dedup_precedes_witness_quota(reference_outcome): + # An identical explanatory Finding has one final identity, even if reached + # through two distinct private carriers. No extra output witness is retained. + original = reference_outcome.findings[0] + repeated = replace(original) + expanded = replace(reference_outcome, findings=reference_outcome.findings + (repeated,)) + ports = (WitnessQuotaPort(), WitnessQuotaPort()) + baseline = disclosure_runtime._assemble_selected_report(reference_outcome, ports[0], + reserve_witnesses=True) + duplicate = disclosure_runtime._assemble_selected_report(expanded, ports[1], + reserve_witnesses=True) + _strict_equal(_plain(duplicate), _plain(baseline)) + assert ports[0].reservations == ports[1].reservations + assert len(ports[0].reservations) == 22 + + +def test_w07_nonpath_primary_keeps_same_owner_trace_accounting(reference_outcome): + # Independently authored absence + complete trace from one exact owner. + # The trace enters through the supporting-record branch, including when + # there is no path primary. Both components already own private quota. + scope = next(result.ref.scope for result in reference_outcome.results + if result.ref.field_key == 'single_origin_contribution_hhi') + start, target = _InputRef('records', 'P4-E1'), _InputRef('records', 'P4-O1') + node = ('node', start, 'evidence_item') + target_node = ('node', target, 'origin_event') + public_node = {'ref': _source(start), 'kind': 'evidence_item'} + public_target = {'ref': _source(target), 'kind': 'origin_event'} + fields = ('nodes', 'members', 'starts', 'examined_nodes', 'frontiers', 'terminals', + 'edges', 'internal_edges', 'exit_edges', 'examined_edges', 'observations') + payloads, components = [], [] + for kind, count in (('no_witness_in_examined_view', 4), ('complete_trace', 3)): + material = {name: () for name in fields} + material.update(starts=(node,), examined_nodes=(node,), terminals=(node,), + target=target_node if kind == 'no_witness_in_examined_view' else None) + payloads.append(('graph_witness', kind, scope.inquiry_ref.identifier, + tuple(ref.identifier for ref in scope.claim_refs), scope.dependency_dimension, + scope.graph_view, scope.operation_anchor, tuple(material.items()), count)) + selected = {name: [] for name in fields} + selected.update(type='graph_witness', kind=kind, member_count=count, + starts=[public_node], examined_nodes=[public_node], terminals=[public_node], + target=public_target if kind == 'no_witness_in_examined_view' else None) + components.append(selected) + link = values._WitnessRef(scope, 'member_set', ('w07-accounting', start)) + record = contract._WitnessRecord((link,), tuple(payloads), (), 7) + result_ref = values._ResultRef('SIT-M014', 'anomaly_context_disclosures', scope) + result = values._Result(result_ref, (), 'completed', 'available', 'attributed_record', + 'record_disclosures', values._RecordDisclosures(()), (), (), (link,), (), + 'Constructed finite witness accounting control.') + basis = [] + for ref in (start, target): + row = copy.deepcopy(next(entry for entry in _reference_document()['basis_index'] + if entry['source'] == _source(ref))) + del row['id'] + del row['source'] + row['check_refs'] = () + basis.append((values._BasisRef(ref), row)) + port = WitnessQuotaPort() + selected = contract._capture_report_disclosure(tuple(basis), + ((result_ref, {'records': []}),), (), port, + owner_witnesses=((record, {'input_refs': [_source(start), _source(target)], + 'components': components}),)) + outcome = replace(reference_outcome, results=(result,), findings=(), + witnesses=(record,), capabilities=(), domains=()) + state = assemble._Assembly(outcome, selected, port, reserve_witnesses=True) + state.result(result) + assemble._assemble_witnesses(state) + state.identities_for_rows() + assemble._reserve_report_witnesses(state) + assert port.reservations == [(1, 4)] + witness = state.resolve(state.rows['findings'][0]['body'])['witness'] + assert [item['kind'] for item in witness['components']] == [ + 'no_witness_in_examined_view', 'complete_trace'] + assert [item['member_count'] for item in witness['components']] == [4, 3] + + def test_empty_seed_dimension_preserves_completed_trace_and_unavailable_ratios(): """Reporting W4-10/18.2: an empty typed search cannot invent a ratio zero.""" source = _reference_dossier() diff --git a/tests/contract/test_report_contract.py b/tests/contract/test_report_contract.py index 9fbb997..44489ef 100644 --- a/tests/contract/test_report_contract.py +++ b/tests/contract/test_report_contract.py @@ -437,8 +437,16 @@ def test_abort_rejects_invented_or_mismatched_stop_classification(state, reason) @pytest.mark.parametrize("input_state", ("rejected", "unknown", True, None, "private input")) def test_abort_and_cancellation_cannot_invent_a_validation_state(input_state): - with pytest.raises(TypeError, match="^invalid_audit_transport$"): - execution.AuditAbort("failed", input_state, "execution_failed") + if input_state == "rejected": + # W07 reaches diagnostic output after structural rejection. Architecture + # 18.4 preserves actual validation state when later output failure wins. + error = execution.AuditAbort("failed", input_state, "execution_failed") + assert error.input_validation_state == "rejected" + assert error.processing_state == "failed" + assert error.reason_code == "execution_failed" + else: + with pytest.raises(TypeError, match="^invalid_audit_transport$"): + execution.AuditAbort("failed", input_state, "execution_failed") with pytest.raises(TypeError, match="^invalid_audit_transport$"): execution.AuditCancelled(input_state) @@ -2747,3 +2755,152 @@ def collect(rule, pointer): assert evidence['missing_rejected_cases'], (pointer, member) else: assert evidence['optional_omission_accepted_cases'], (pointer, member) + + +@pytest.mark.parametrize("state,reason", ( + ("interrupted", "resource_limit_reached"), + ("failed", "execution_failed"), + ("rejected", "input_not_accepted"), +)) +def test_w07_abort_retains_rejection_when_diagnostic_pair_cannot_be_delivered(state, reason): + # Architecture 18.4: actual acceptance survives output failure. Governance + # 22.3: an earlier established rejection survives later caller cancellation. + error = execution.AuditAbort(state, "rejected", reason) + assert error.processing_state == state + assert error.input_validation_state == "rejected" + assert error.reason_code == reason + assert error.publication_state == "not_published" + assert error.args == ("Audit could not be completed.",) + assert repr(error) == "AuditAbort()" + with pytest.raises((AttributeError, TypeError)): + error.input_validation_state = "accepted" + with pytest.raises(TypeError, match="^invalid_audit_transport$"): + execution.AuditCancelled("rejected") + + +@pytest.mark.parametrize("state,input_state,reason", ( + ("rejected", "accepted", "input_not_accepted"), + ("rejected", "not_completed", "input_not_accepted"), + ("rejected", "rejected", "execution_failed"), + ("rejected", "rejected", "resource_limit_reached"), + ("interrupted", "rejected", "input_not_accepted"), + ("failed", "rejected", "input_not_accepted"), + ("completed", "rejected", "input_not_accepted"), + ("cancelled", "rejected", "input_not_accepted"), +)) +def test_w07_rejection_transport_extension_does_not_allow_invented_state_pairs(state, input_state, reason): + with pytest.raises(TypeError, match="^invalid_audit_transport$"): + execution.AuditAbort(state, input_state, reason) + + +def test_w07_delivered_report_attributes_and_nested_values_remain_immutable(): + from source_integrity_toolkit.runtime.boundary import _audit_value + report = _audit_value({}) + assert type(report) is report_contract.AuditReport + assert report.report_kind == "validation_diagnostics" + for member in ROOT_MEMBERS: + original = getattr(report, member) + with pytest.raises((AttributeError, TypeError)): + setattr(report, member, None) + with pytest.raises((AttributeError, TypeError)): + delattr(report, member) + assert getattr(report, member) is original + for member in report_contract.AuditReport.__slots__: + with pytest.raises((AttributeError, TypeError)): + setattr(report, member, None) + with pytest.raises(TypeError): + report.run["processing_state"] = "completed" + with pytest.raises(TypeError): + report.run["started_at"]["state"] = "known" + with pytest.raises(TypeError): + report.run["requested_diagnostic_ids"][0] = "invented" + with pytest.raises((AttributeError, TypeError)): + report.run._pairs = () + with pytest.raises(TypeError): + report_contract.AuditReport({}) + with pytest.raises(TypeError): + class CallerReport(report_contract.AuditReport): + pass + + +@pytest.mark.parametrize("kind", ("abort", "cancelled")) +def test_w07_safe_transports_cross_contextmanager_with_original_exception_identity(kind): + from contextlib import contextmanager + from dataclasses import fields + + error = (execution.AuditAbort("interrupted", "accepted", "resource_limit_reached") + if kind == "abort" else execution.AuditCancelled("accepted")) + + @contextmanager + def transparent_context(): + yield + + with pytest.raises(type(error)) as caught: + with transparent_context(): + raise error + assert caught.value is error + assert error.__traceback__ is not None + assert error.input_validation_state == "accepted" + assert error.publication_state == "not_published" + for field in fields(error): + value = getattr(error, field.name) + with pytest.raises((AttributeError, TypeError)): + setattr(error, field.name, "caller_secret") + with pytest.raises((AttributeError, TypeError)): + delattr(error, field.name) + assert getattr(error, field.name) == value + for name in ("args", "safe_message", "caller_secret"): + with pytest.raises((AttributeError, TypeError)): + setattr(error, name, "caller_secret") + + +@pytest.mark.parametrize("kind", ("abort", "cancelled")) +def test_w07_safe_transport_traceback_slot_rejects_invalid_values_and_hostile_names(kind): + calls = [] + + def touched(*args, **kwargs): + calls.append("protocol") + raise AssertionError("transport executed hostile protocol") + + class Hostile: + __str__ = __repr__ = __eq__ = __bool__ = touched + + class HostileName(str): + __str__ = __repr__ = __eq__ = touched + + error = (execution.AuditAbort("failed", "not_completed", "execution_failed") + if kind == "abort" else execution.AuditCancelled("not_completed")) + for value in (True, 1, {}, Hostile()): + with pytest.raises(TypeError): + error.__traceback__ = value + assert error.__traceback__ is None + for name in (Hostile(), HostileName("__traceback__")): + with pytest.raises((AttributeError, TypeError)): + type(error).__setattr__(error, name, None) + error.__traceback__ = None + assert error.__traceback__ is None and calls == [] + assert error.input_validation_state == "not_completed" + assert error.publication_state == "not_published" + + +def test_w07_generic_serialization_cannot_dump_private_report_byte_caches(): + from dataclasses import asdict + from types import MappingProxyType + from source_integrity_toolkit.runtime.boundary import _audit_value + + report = _audit_value({}) + assert type(report._document) is MappingProxyType + assert set(report._document) == set(ROOT_MEMBERS) + original_fields = tuple(getattr(report, name) for name in ROOT_MEMBERS) + json_bytes, markdown_bytes = report.to_json_bytes(), report.to_markdown_bytes() + for serialize in (asdict, copy.deepcopy, json.dumps): + with pytest.raises(TypeError): + serialize(report) + with pytest.raises(TypeError): + json.dumps(report, default=asdict) + with pytest.raises(TypeError): + report._document["run"] = None + for name, original in zip(ROOT_MEMBERS, original_fields): + assert getattr(report, name) is original + assert report.to_json_bytes() is json_bytes + assert report.to_markdown_bytes() is markdown_bytes diff --git a/tests/integration/test_public_audit.py b/tests/integration/test_public_audit.py new file mode 100644 index 0000000..ad53759 --- /dev/null +++ b/tests/integration/test_public_audit.py @@ -0,0 +1,368 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W07 real internal memory composition, before W08 public API activation. + +The finite dossier below is independently authored from the bundle contract. +Its empty seed/dimension populations have literal expectations, not snapshots +generated from the new implementation. Exact formatting is checked independently +against its frozen logical document; the larger W02 reference retains its +original independent goldens and its real same-invocation budget outcome. +""" +import copy +import importlib.util +import json +from pathlib import Path +import re + +import pytest + +from source_integrity_toolkit.contracts import report as contract +from source_integrity_toolkit.contracts.execution import AuditAbort +from source_integrity_toolkit.runtime import boundary, resources + + +ROOT = Path(__file__).resolve().parents[2] +FAMILIES = tuple('SIT-M' + str(number).zfill(3) for number in range(1, 16)) +ROOT_MEMBERS = ( + 'contract_version', 'report_kind', 'report_id', 'run', 'input_identity', + 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', + 'checks', 'observability_domains', 'results', 'findings', 'reasons', + 'release_limits', +) +DIMENSIONAL = {'SIT-M002', 'SIT-M003', 'SIT-M004', 'SIT-M005', + 'SIT-M006', 'SIT-M007', 'SIT-M013'} + + +def _load(name, relative): + spec = importlib.util.spec_from_file_location(name, ROOT / relative) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +def _unknown(): + return {'state': 'unknown', 'value': None, 'precision': None, + 'reason': 'P4-W07 fictional occurrence time is not supplied.'} + + +def _provenance(): + return {'attributed_to_ref': 'P4-W07-ACTOR', 'basis_kind': 'declaration', + 'evidence_ref_ids': [], 'method': 'Finite W07 supplied declaration.', + 'qualifications': ['Supplied declaration only; no authentication.']} + + +def _minimal_value(): + """One declared claim, no seeds/dimensions, and no implicit world subjects.""" + return { + 'contract_version': 'sit-bundle/0.1', 'bundle_id': 'P4-W07-BUNDLE', + 'snapshot_id': 'P4-W07-SNAPSHOT', 'recorded_at': _unknown(), + 'predecessor': None, + 'inquiries': [{ + 'id': 'P4-W07-I', 'target_claim_refs': ['P4-W07-CLAIM'], + 'target_object_refs': [], 'seed_artifact_refs': [], + 'seed_evidence_refs': [], + 'boundary': {'description': 'Finite W07 declared boundary.', + 'criterion': 'Only supplied typed bindings.', + 'system_refs': []}, + 'time_window': {'start': _unknown(), 'end': _unknown()}, + 'as_of': _unknown(), 'dependency_dimensions': [], + 'coverage_assertion_refs': [], 'provenance': _provenance(), + }], + 'records': [ + {'id': 'P4-W07-ACTOR', 'kind': 'actor', + 'data': {'actor_kind': 'human', 'identity_disclosure': 'pseudonymous', + 'display_name': 'W07-PRIVATE-DISPLAY-NOT-EXPORTED'}, + 'provenance': _provenance()}, + {'id': 'P4-W07-CLAIM', 'kind': 'claim', + 'data': {'claim_key': 'P4-W07-CLAIM-FAMILY', 'version_label': 'v1', + 'text': 'Finite W07 fictional claim.', + 'context': 'Finite W07 supplied context.'}, + 'provenance': _provenance()}, + ], + 'assertions': [], 'evidence_references': [], + } + + +def _plain(value): + if type(value) is contract._ReportMapping: + return {name: _plain(value[name]) for name in value} + if type(value) is tuple: + return [_plain(item) for item in value] + assert value is None or type(value) in (str, bool, int) + return value + + +def _compact(value): + """Independent J scalar spellings on the exposed logical report only.""" + raw = json.dumps(value, ensure_ascii=False, sort_keys=True, + separators=(',', ':'), allow_nan=False) + short = {'\\b': '\\u0008', '\\f': '\\u000c', '\\n': '\\u000a', + '\\r': '\\u000d', '\\t': '\\u0009'} + + def replace(match): + token = match.group() + if token.startswith('\\'): + return short.get(token, token) + return '\\u' + format(ord(token), '04x') + + raw = re.sub(r'\\.|[\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]', + replace, raw) + return (raw + '\n').encode('utf-8') + + +def _assert_complete_formats(report): + assert type(report) is contract.AuditReport + document = {name: _plain(getattr(report, name)) for name in ROOT_MEMBERS} + json_raw = report.to_json_bytes() + markdown_raw = report.to_markdown_bytes() + assert type(json_raw) is type(markdown_raw) is bytes + assert json_raw == _compact(document) + parity = _load('sit_w07_independent_parity', 'tests/contract/test_report_parity.py') + parity._strict_equal(parity._parse_markdown(markdown_raw, document), document) + schema = _load('sit_w07_report_schema', 'tests/contract/test_report_contract.py') + assert schema.schema_accepts(document, schema.report_schema(), schema.report_schema()) + return document + + +@pytest.fixture(scope='module') +def completed(): + source = _minimal_value() + before = copy.deepcopy(source) + owners = [] + factory = boundary._new_analysis_budget + + def observe(): + owner = factory() + owners.append(owner) + return owner + + patch = pytest.MonkeyPatch() + try: + patch.setattr(boundary, '_new_analysis_budget', observe) + report = boundary._audit_value(source) + finally: + patch.undo() + assert source == before + assert len(owners) == 1 + return report, _assert_complete_formats(report), owners[0] + + +def test_one_actual_invocation_delivers_both_formats_on_one_unchanged_budget(completed): + report, document, owner = completed + assert document['report_kind'] == 'audit_report' + assert document['run']['processing_state'] == 'completed' + assert document['input_validation'] == {'state': 'accepted', 'diagnostics': []} + assert 1024 < owner.used <= 10_000_000 + assert owner.remaining == 10_000_000 - owner.used + assert owner._json_output_bytes == len(report.to_json_bytes()) + assert owner._markdown_output_bytes == len(report.to_markdown_bytes()) + assert owner._start > 0 and owner._last >= owner._start + assert owner._last - owner._start <= 60_000_000_000 + assert resources._WORK_LIMIT == 10_000_000 + assert resources._EMERGENCY_RESERVE == 1024 + assert resources._DEADLINE_NS == 60_000_000_000 + + +def test_finite_declared_inputs_have_literal_public_inventory_and_family_facts(completed): + _, document, _ = completed + assert document['report_id'] == 'SIT-RPT-000001' + assert document['run']['requested_diagnostic_ids'] == list(FAMILIES) + assert document['run']['completed_diagnostic_ids'] == list(FAMILIES) + assert document['run']['diagnostics'] == [] + assert len(document['capabilities']) == 15 + assert {row['diagnostic_id'] for row in document['capabilities']} == set(FAMILIES) + assert [row['level_index'] for row in document['observability_domains']] == list(range(5)) + assert all(row['execution_state'] == 'completed' for row in document['results']) + for field in ('nominal_seed_artifact_record_count', 'seed_evidence_item_count', + 'claim_artifact_record_count', 'unresolved_seed_artifact_reference_count'): + rows = [row for row in document['results'] if row['field_key'] == field] + assert len(rows) == 1 + assert rows[0]['result_state'] == 'available' + assert type(rows[0]['value']) is int and rows[0]['value'] == 0 + inventory = next(row for row in document['results'] + if row['field_key'] == 'declared_basis_inventory') + assert inventory['result_state'] == 'available' and inventory['value']['total'] == 3 + declaration = next(row for row in inventory['value']['categories'] + if row['label'] == 'declaration') + assert declaration['count'] == 3 + assert {(ref['collection'], ref['identifier']) for ref in declaration['member_refs']} == { + ('inquiries', 'P4-W07-I'), ('records', 'P4-W07-ACTOR'), + ('records', 'P4-W07-CLAIM'), + } + + +def test_empty_declared_dimensions_preserve_explicit_nonresults(completed): + _, document, _ = completed + reasons = {row['id']: row for row in document['reasons']} + scopes = {row['id']: row for row in document['scopes']} + dimensional = [row for row in document['results'] if row['diagnostic_id'] in DIMENSIONAL] + assert {row['diagnostic_id'] for row in dimensional} == DIMENSIONAL + for row in dimensional: + assert row['result_state'] == 'not_applicable' and row['value'] is None + assert scopes[row['scope_ref']]['dependency_dimension'] is None + assert row['reason_refs'] + actual = [reasons[identifier] for identifier in row['reason_refs']] + assert {reason['code'] for reason in actual} == {'dimension_not_selected'} + assert {reason['classification'] for reason in actual} == {'structural_inapplicability'} + assert all(row['id'] in reason['affected_result_refs'] for reason in actual) + + +def test_explicit_dimension_empty_seed_ratios_complete_as_unavailable(): + """Reporting W4-10 and Definitions 22: known N=0 is not a ratio zero.""" + source = _minimal_value() + source['inquiries'][0]['dependency_dimensions'] = ['acquisition'] + before = copy.deepcopy(source) + report = boundary._audit_value(source) + document = _assert_complete_formats(report) + assert source == before + assert document['run']['processing_state'] == 'completed' + assert document['input_validation']['state'] == 'accepted' + reasons = {row['id']: row for row in document['reasons']} + for field in ('single_origin_contribution_hhi', 'documentary_origin_resolution_fraction', + 'inherited_only_seed_fraction'): + rows = [row for row in document['results'] if row['field_key'] == field] + assert len(rows) == 1 + row = rows[0] + assert row['execution_state'] == 'completed' + assert row['result_state'] == 'unavailable' and row['value'] is None + assert row['reason_refs'] + assert 'zero_denominator' in {reasons[identifier]['code'] for identifier in row['reason_refs']} + + +def test_run_identity_unknown_times_and_disclosure_are_retained(completed): + report, document, _ = completed + identity = document['input_identity'] + assert identity['bundle_id'] == 'P4-W07-BUNDLE' + assert identity['snapshot_id'] == 'P4-W07-SNAPSHOT' + assert identity['source_mode'] == 'in_process' + assert identity['raw_file_digest'] is None and identity['qualifications'] + for field in ('started_at', 'finished_at'): + assert document['run'][field] == {'state': 'unknown', 'value': None, + 'precision': None, 'reason': 'not_recorded_by_SIT-RP-0.1'} + assert b'W07-PRIVATE-DISPLAY-NOT-EXPORTED' not in report.to_json_bytes() + assert b'W07-PRIVATE-DISPLAY-NOT-EXPORTED' not in report.to_markdown_bytes() + + +def test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime(completed, monkeypatch): + report, document, owner = completed + original_used, original_last = owner.used, owner._last + json_raw, markdown_raw = report.to_json_bytes(), report.to_markdown_bytes() + + def forbidden(*args, **kwargs): + raise AssertionError('completed report reentered execution') + + monkeypatch.setattr(resources, 'monotonic_ns', forbidden) + monkeypatch.setattr(boundary, '_new_analysis_budget', forbidden) + for _ in range(3): + assert report.to_json_bytes() is json_raw + assert report.to_markdown_bytes() is markdown_raw + assert report.report_id == document['report_id'] + assert (owner.used, owner._last) == (original_used, original_last) + assert set(type(report).__slots__) == {'_document', '_json_bytes', '_markdown_bytes'} + with pytest.raises(TypeError): + report.results = () + with pytest.raises(TypeError): + report.results[0]['value'] = 99 + with pytest.raises(TypeError): + report.run['requested_diagnostic_ids'][0] = 'altered' + assert report.to_json_bytes() is json_raw + + +def test_source_mutation_after_delivery_cannot_change_report_or_encodings(): + source = _minimal_value() + before = copy.deepcopy(source) + report = boundary._audit_value(source) + assert source == before + json_raw, markdown_raw = report.to_json_bytes(), report.to_markdown_bytes() + source['inquiries'][0]['target_claim_refs'].clear() + source['records'][1]['data']['text'] = 'MUTATED-AFTER-DELIVERY' + source.clear() + assert report.input_identity['bundle_id'] == 'P4-W07-BUNDLE' + assert report.to_json_bytes() is json_raw + assert report.to_markdown_bytes() is markdown_raw + assert b'MUTATED-AFTER-DELIVERY' not in json_raw + markdown_raw + + +@pytest.mark.parametrize('mode', ('value', 'utf8')) +def test_existing_private_entry_preserves_real_analysis_without_public_delivery(mode): + source = _minimal_value() + before = copy.deepcopy(source) + argument = source if mode == 'value' else json.dumps(source).encode('utf-8') + out = boundary._analyze_value(argument) if mode == 'value' else boundary._analyze_utf8(argument) + assert type(out) is contract._AnalyticalOutcome + assert out.execution_state == 'completed' and out.input_state == 'accepted' + assert not hasattr(out, 'to_json_bytes') and not hasattr(out, 'report_kind') + assert len(out.capabilities) == 15 and len(out.domains) == 5 + assert source == before + for field in ('nominal_seed_artifact_record_count', 'seed_evidence_item_count'): + row = next(row for row in out.results if row.ref.field_key == field) + assert row.result_state == 'available' and row.value.value == 0 + + +@pytest.mark.parametrize('mutation,code', ( + ('missing', 'missing_required_field'), + ('contract', 'unsupported_input_contract'), + ('duplicate', 'duplicate_identifier'), + ('dangling', 'dangling_reference'), +)) +def test_structural_rejection_delivers_complete_safe_diagnostic_formats(mutation, code): + source = _minimal_value() + if mutation == 'missing': + del source['snapshot_id'] + elif mutation == 'contract': + source['contract_version'] = 'unsupported-private-contract-canary' + elif mutation == 'duplicate': + source['records'].append(copy.deepcopy(source['records'][1])) + else: + source['inquiries'][0]['target_claim_refs'] = ['PRIVATE-MISSING-CLAIM'] + before = copy.deepcopy(source) + report = boundary._audit_value(source) + document = _assert_complete_formats(report) + assert source == before + assert document['report_kind'] == 'validation_diagnostics' + assert document['run']['processing_state'] == 'rejected' + assert document['input_validation']['state'] == 'rejected' + assert [row['code'] for row in document['input_validation']['diagnostics']] == [code] + assert {row['code'] for row in document['reasons']} == {'input_not_accepted'} + for name in ('scopes', 'populations', 'basis_index', 'capabilities', 'checks', + 'observability_domains', 'results', 'findings'): + assert document[name] == [] + assert document['input_identity']['bundle_id'] is None + assert document['input_identity']['snapshot_id'] is None + for canary in (b'PRIVATE-MISSING-CLAIM', b'unsupported-private-contract-canary', + b'W07-PRIVATE-DISPLAY-NOT-EXPORTED'): + assert canary not in report.to_json_bytes() + report.to_markdown_bytes() + + +def test_full_reference_is_subject_to_the_actual_whole_invocation_limit(monkeypatch): + """W02 component completion does not authorize another report allowance.""" + cases = json.loads((ROOT / 'tests/fixtures/micro/phase4_public_cases.json').read_bytes()) + assert cases['cases'][0]['id'] == 'P4-REFERENCE-ONE-ORIGIN' + source = cases['cases'][0]['dossier'] + before = copy.deepcopy(source) + owners = [] + factory = boundary._new_analysis_budget + + def observe(): + owner = factory() + owners.append(owner) + return owner + + monkeypatch.setattr(boundary, '_new_analysis_budget', observe) + try: + report = boundary._audit_value(source) + except AuditAbort as stopped: + assert stopped.processing_state == 'interrupted' + assert stopped.input_validation_state == 'accepted' + assert stopped.reason_code == 'resource_limit_reached' + assert stopped.publication_state == 'not_published' + assert len(owners) == 1 and owners[0]._cause.limit_id == 'WU9-L11' + assert owners[0]._stop_kind == 'global' and owners[0]._emergency_taken + else: + # If a future scoped integration eliminates redundant work legitimately, + # success must still satisfy both unchanged independent complete goldens. + assert report.to_json_bytes() == (ROOT / 'tests/golden/phase4_reference_report.json').read_bytes() + assert report.to_markdown_bytes() == (ROOT / 'tests/golden/phase4_reference_report.md').read_bytes() + _assert_complete_formats(report) + assert len(owners) == 1 and 1024 < owners[0].used <= 10_000_000 + assert source == before diff --git a/tests/security/test_public_api_boundary.py b/tests/security/test_public_api_boundary.py new file mode 100644 index 0000000..5c8cf35 --- /dev/null +++ b/tests/security/test_public_api_boundary.py @@ -0,0 +1,286 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""P4-W07 internal invocation safety before the public API is activated. + +Observers cover exercised Python effects in a warmed process. They do not claim +hostile same-process isolation, native file validation or future CLI behavior. +""" +import copy +import json +from pathlib import Path +import subprocess +import sys +import traceback +from types import MappingProxyType + +import pytest + +from source_integrity_toolkit import api +from source_integrity_toolkit.contracts.execution import AuditAbort, AuditCancelled +from source_integrity_toolkit.contracts.report import AuditReport +from source_integrity_toolkit.runtime import boundary, resources + + +ROOT = Path(__file__).resolve().parents[2] +CANARY = "FICTIONAL_W07_PRIVATE_SOURCE_EXCEPTION_529713" + + +def finite_input(): + """Independent minimal claim inquiry from the frozen bundle contract.""" + unknown = {"state": "unknown", "value": None, "precision": None, + "reason": "Time not supplied in this fictional boundary case."} + provenance = {"attributed_to_ref": "A", "basis_kind": "declaration", + "evidence_ref_ids": [], "method": "Fictional declaration.", + "qualifications": []} + return { + "contract_version": "sit-bundle/0.1", "bundle_id": "W07-BOUNDARY", + "snapshot_id": "S1", "recorded_at": copy.deepcopy(unknown), + "predecessor": None, + "inquiries": [{"id": "I", "target_claim_refs": ["C"], + "target_object_refs": [], "seed_artifact_refs": [], "seed_evidence_refs": [], + "boundary": {"description": "Fictional finite claim only.", + "criterion": "Explicit submitted records.", "system_refs": []}, + "time_window": {"start": copy.deepcopy(unknown), "end": copy.deepcopy(unknown)}, + "as_of": copy.deepcopy(unknown), "dependency_dimensions": [], + "coverage_assertion_refs": [], "provenance": copy.deepcopy(provenance)}], + "records": [{"id": "A", "kind": "actor", "data": { + "actor_kind": "human", "identity_disclosure": "pseudonymous", + "display_name": "Fictional boundary actor."}, + "provenance": copy.deepcopy(provenance)}, + {"id": "C", "kind": "claim", "data": { + "claim_key": "fictional-claim", "version_label": "v1", + "text": "Fictional claim.", "context": "Finite boundary test."}, + "provenance": copy.deepcopy(provenance)}], + "assertions": [], "evidence_references": [], + } + + +@pytest.mark.parametrize("kind", ( + "root", "dict_subclass", "key_subclass", "string_subclass", "list_subclass", + "nested_object", "generator", "cycle", +)) +def test_internal_invocation_rejects_hostile_input_without_executing_protocols(kind, capsys): + calls = [] + + def touched(*args, **kwargs): + calls.append("caller_protocol") + raise AssertionError("untrusted protocol executed") + + class Hostile: + __str__ = __repr__ = __iter__ = __bool__ = __hash__ = __eq__ = touched + __int__ = __float__ = __index__ = __fspath__ = touched + __copy__ = __deepcopy__ = __reduce__ = __reduce_ex__ = touched + + class HostileDict(dict): + __str__ = __repr__ = __iter__ = __len__ = items = keys = values = touched + + class HostileText(str): + __str__ = __repr__ = __iter__ = __len__ = __eq__ = touched + __hash__ = str.__hash__ + + class HostileList(list): + __str__ = __repr__ = __iter__ = __len__ = __getitem__ = touched + + def generator(): + touched() + yield None + + source = finite_input() + if kind == "root": + source = Hostile() + elif kind == "dict_subclass": + source = HostileDict(source) + elif kind == "key_subclass": + source[HostileText("caller-key")] = CANARY + elif kind == "string_subclass": + source["bundle_id"] = HostileText(CANARY) + elif kind == "list_subclass": + source["records"] = HostileList(source["records"]) + elif kind == "nested_object": + source["extensions"] = {"fictional:private": Hostile()} + elif kind == "generator": + source["extensions"] = {"fictional:private": generator()} + else: + source["extensions"] = {"fictional:cycle": source} + result = boundary._audit_value(source) + assert type(result) is AuditReport + assert result.report_kind == "validation_diagnostics" + assert result.input_validation["state"] == "rejected" + assert result.run["processing_state"] == "rejected" + assert result.results == () and result.findings == () + assert calls == [] + assert CANARY.encode() not in result.to_json_bytes() + result.to_markdown_bytes() + assert capsys.readouterr() == ("", "") + + +@pytest.mark.parametrize("fault", ("opaque", "memory", "cancel")) +def test_internal_native_fault_surface_does_not_format_or_retain_source_exception(fault, monkeypatch, capsys): + calls = [] + + class Opaque(Exception): + def __str__(self): + calls.append("str") + raise AssertionError("native exception formatted") + + def __repr__(self): + calls.append("repr") + raise AssertionError("native exception represented") + + def fail(*args, **kwargs): + if fault == "opaque": + raise Opaque(CANARY) + if fault == "memory": + raise MemoryError(CANARY) + raise KeyboardInterrupt(CANARY) + + monkeypatch.setattr(boundary, "_admit", fail) + source = finite_input() + before = copy.deepcopy(source) + try: + result = boundary._audit_value(source) + except (AuditAbort, AuditCancelled) as error: + if fault == "cancel": + assert type(error) is AuditCancelled + assert not hasattr(error, "reason_code") + else: + assert type(error) is AuditAbort and error.reason_code == "execution_failed" + assert error.input_validation_state == "not_completed" + assert error.publication_state == "not_published" + assert CANARY not in str(error) + repr(error) + str(error.args) + assert CANARY not in "".join(traceback.format_exception(error)) + else: + assert fault != "cancel" + assert type(result) is AuditReport + assert result.report_kind == "processing_diagnostics" + assert result.run["processing_state"] == "failed" + assert result.input_validation["state"] == "not_completed" + assert CANARY.encode() not in result.to_json_bytes() + result.to_markdown_bytes() + assert calls == [] and source == before + assert capsys.readouterr() == ("", "") + + +def test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes(monkeypatch): + source = finite_input() + source["extensions"] = {"fictional:private": {"secret": CANARY}} + before = copy.deepcopy(source) + report = boundary._audit_value(source) + assert type(report) is AuditReport + assert report.run["processing_state"] == "completed" + assert report.input_validation["state"] == "accepted" + assert source == before + assert not hasattr(report, "__dict__") + assert AuditReport.__slots__ == ("_document", "_json_bytes", "_markdown_bytes") + original_json, original_markdown = report.to_json_bytes(), report.to_markdown_bytes() + assert CANARY.encode() not in original_json + original_markdown + source.clear() + + def forbidden(*args, **kwargs): + raise AssertionError("cached report started new runtime work") + + monkeypatch.setattr(resources, "monotonic_ns", forbidden) + monkeypatch.setattr(boundary, "_new_analysis_budget", forbidden) + monkeypatch.setattr(boundary, "_audit_value", forbidden) + from source_integrity_toolkit.reporting import json_report, markdown_report + monkeypatch.setattr(json_report, "_encode_json_report", forbidden) + monkeypatch.setattr(markdown_report, "_encode_markdown_report", forbidden) + for unused in range(3): + assert report.to_json_bytes() is original_json + assert report.to_markdown_bytes() is original_markdown + assert report.input_identity["bundle_id"] == "W07-BOUNDARY" + + from source_integrity_toolkit.contracts.report import _ReportMapping + assert type(report._document) is MappingProxyType + assert len(report._document) == 16 + pending = [] + for key, value in report._document.items(): + assert type(key) is str + pending.append(value) + while pending: + value = pending.pop() + if type(value) is _ReportMapping: + assert type(value._pairs) is tuple + for key, item in value._pairs: + assert type(key) is str + pending.append(item) + elif type(value) is tuple: + pending.extend(value) + else: + assert type(value) in (str, bool, int, type(None)) + + +def test_w07_public_entry_points_still_refuse_without_touching_arguments(): + calls = [] + + class Hostile: + def touched(self, *args, **kwargs): + calls.append("caller_protocol") + raise AssertionError("public stub touched input") + __repr__ = __str__ = __iter__ = __len__ = __fspath__ = touched + + hostile = Hostile() + with pytest.raises(NotImplementedError): + api.audit_bundle(hostile, options=hostile) + with pytest.raises(NotImplementedError): + api.audit_file(hostile, hostile, options=hostile) + assert calls == [] + + +PROBE = r''' +import sys,json,ctypes,socket,subprocess,os,builtins,io +import encodings.idna +sys.path.insert(0,sys.argv[1]) +from source_integrity_toolkit.runtime.boundary import _audit_value +from source_integrity_toolkit.contracts.report import AuditReport +source=json.loads(sys.stdin.buffer.read());mode=sys.argv[2];events=[] +# Warm trusted imports before observing the entire subsequent invocation. +# Negative controls exercise each observer directly and need no audit replay. +if mode=='success': + warm=_audit_value(source) + assert type(warm) is AuditReport and warm.run['processing_state']=='completed' +before=json.dumps(source,sort_keys=True) +def audit(event,args): + if event=='open' or event.startswith('socket.') or event=='ctypes.dlopen' or event=='subprocess.Popen' or event in ('os.listdir','os.scandir'): + events.append(event);raise RuntimeError('blocked_observed_effect') +sys.addaudithook(audit) +def metadata_trap(*args,**kwargs): + events.append('metadata.stat');raise RuntimeError('blocked_metadata_effect') +os.stat=metadata_trap;os.lstat=metadata_trap +try: + if mode=='negative-open': builtins.open('FICTIONAL_MUST_NOT_OPEN','rb') + elif mode=='negative-listdir': os.listdir('FICTIONAL_MUST_NOT_ENUMERATE') + elif mode=='negative-stat': os.stat('FICTIONAL_MUST_NOT_STAT') + elif mode=='negative-network': socket.getaddrinfo('fictional.invalid',443) + elif mode=='negative-native': ctypes.CDLL('FICTIONAL_MUST_NOT_LOAD') + elif mode=='negative-process': subprocess.Popen([sys.executable,'-c','pass']) + else: + report=_audit_value(source) + assert type(report) is AuditReport and report.run['processing_state']=='completed' + assert report.to_json_bytes()==warm.to_json_bytes() + assert report.to_markdown_bytes()==warm.to_markdown_bytes() + rejected=_audit_value({'fictional:source':source}) + assert type(rejected) is AuditReport and rejected.input_validation['state']=='rejected' + assert json.dumps(source,sort_keys=True)==before +except RuntimeError: + if not mode.startswith('negative-'): raise +print(json.dumps({'events':events,'ok':True})) +''' + + +@pytest.mark.parametrize("mode,event", ( + ("success", None), ("negative-open", "open"), + ("negative-listdir", "os.listdir"), ("negative-stat", "metadata.stat"), + ("negative-network", "socket.getaddrinfo"), ("negative-native", "ctypes.dlopen"), + ("negative-process", "subprocess.Popen"), +)) +def test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect(mode, event): + source = finite_input() + source["extensions"] = {"fictional:untrusted": { + "path": "../" + CANARY, "$ref": "https://fictional.invalid/schema", + "code": "__import__('os').system('FICTIONAL_MUST_NOT_EXECUTE')", + }} + run = subprocess.run([sys.executable, "-I", "-S", "-B", "-c", PROBE, + str(ROOT / "src"), mode], input=json.dumps(source).encode(), + capture_output=True, timeout=90) + assert run.returncode == 0, run.stderr.decode(errors="replace") + assert json.loads(run.stdout) == {"ok": True, "events": [] if event is None else [event]} + assert run.stderr == b"" and CANARY.encode() not in run.stdout diff --git a/tests/security/test_report_resource_limits.py b/tests/security/test_report_resource_limits.py index 5ae8274..4a478f6 100644 --- a/tests/security/test_report_resource_limits.py +++ b/tests/security/test_report_resource_limits.py @@ -557,3 +557,446 @@ def test_complete_json_does_not_make_later_failed_markdown_a_delivered_pair(cloc public = diagnostics._report_abort(stopped.value) assert public.input_validation_state == 'accepted' and public.publication_state == 'not_published' assert not hasattr(public, 'report') and not hasattr(public, 'prefix') + + +# W07 controls below execute the internal whole invocation, including actual +# admission, analysis, selection, logical assembly and both bounded encoders. +# The earlier W05/W06 component controls remain unchanged above. +@pytest.fixture +def invocation_source(): + import importlib.util + spec = importlib.util.spec_from_file_location( + 'p4_w07_resource_pipeline_helpers', ROOT / 'tests/integration/test_public_audit.py') + helpers = importlib.util.module_from_spec(spec) + spec.loader.exec_module(helpers) + return helpers._minimal_value() + + +def _observe_invocation(monkeypatch): + from source_integrity_toolkit.runtime import boundary + created = [] + factory = boundary._new_analysis_budget + + def observed_factory(): + owner = factory() + created.append(owner) + assert owner.used == 1024 and not owner._emergency_taken + return owner + + monkeypatch.setattr(boundary, '_new_analysis_budget', observed_factory) + return boundary, created + + +def _actual_port(owner): + return owner._finalizer if owner._phase == 'finalization' else owner + + +def _assert_public_abort(stopped, input_state, reason='resource_limit_reached'): + assert type(stopped) is AuditAbort + assert (stopped.input_validation_state, stopped.reason_code, + stopped.publication_state) == (input_state, reason, 'not_published') + assert stopped.processing_state == ('failed' if reason == 'execution_failed' else 'interrupted') + assert stopped.args == ('Audit could not be completed.',) + for name in ('report', 'prefix', 'source', 'snapshot', 'budget', 'original_exception'): + assert not hasattr(stopped, name) + + +_INVOCATION_STAGES = ( + '_admit', '_plan_analysis', '_execute_job', '_assemble_analysis', + '_assemble_selected_report', '_encode_json_report', + '_encode_markdown_report', '_verify_json_report', '_verify_markdown_report', + '_deliver_report', +) + + +def test_whole_invocation_uses_one_factory_ledger_deadline_and_reserved_emergency( + monkeypatch, clock, invocation_source): + boundary, created = _observe_invocation(monkeypatch) + stages = [] + made = [] + initialize = resources._AnalysisBudget.__post_init__ + + def initialization(owner): + initialize(owner) + made.append(owner) + + monkeypatch.setattr(resources._AnalysisBudget, '__post_init__', initialization) + for name in _INVOCATION_STAGES: + original = getattr(boundary, name) + + def observed(*args, _name=name, _original=original, **kwargs): + assert len(created) == 1 and made == created + owner = created[0] + assert owner._start == 100 and owner.used >= 1024 + if _name == '_admit': + assert kwargs['budget'] is owner and owner.input_state == 'not_completed' + elif _name == '_plan_analysis': + assert args[1] is owner and owner.input_state == 'not_completed' + else: + assert args[-1]._owner is owner and owner.input_state == 'accepted' + before = owner.used + result = _original(*args, **kwargs) + assert owner.used > before + stages.append((_name, before, owner.used)) + return result + + monkeypatch.setattr(boundary, name, observed) + delivered = boundary._audit_value(invocation_source) + assert type(delivered) is report_contract.AuditReport + assert {row[0] for row in stages} == set(_INVOCATION_STAGES) + assert len(created) == len(made) == 1 + owner = created[0] + assert owner._start == 100 and not owner._emergency_taken + assert 1024 < owner.used < 10_000_000 + assert counters(owner) == (len(delivered.to_json_bytes()), len(delivered.to_markdown_bytes())) + before = owner.used + json_bytes, markdown_bytes = delivered.to_json_bytes(), delivered.to_markdown_bytes() + clock[0] = owner._start + 60_000_000_001 + for _ in range(3): + assert delivered.to_json_bytes() is json_bytes + assert delivered.to_markdown_bytes() is markdown_bytes + assert owner.used == before and not owner._emergency_taken + + +@pytest.mark.parametrize('stage', _INVOCATION_STAGES) +@pytest.mark.parametrize('limit', ('work', 'time')) +def test_each_invocation_stage_obeys_same_global_work_and_original_deadline( + monkeypatch, clock, invocation_source, stage, limit): + boundary, created = _observe_invocation(monkeypatch) + original = getattr(boundary, stage) + reached = [] + + def stopped_stage(*args, **kwargs): + assert len(created) == 1 + owner = created[0] + reached.append((owner.used, owner.input_state)) + port = _actual_port(owner) + if limit == 'work': + port.charge(owner.remaining + 1) + else: + clock[0] = owner._start + 60_000_000_001 + port.check() + return original(*args, **kwargs) + + monkeypatch.setattr(boundary, stage, stopped_stage) + with pytest.raises(AuditAbort) as stopped: + boundary._audit_value(invocation_source) + assert len(created) == len(reached) == 1 + owner = created[0] + expected = 'not_completed' if stage in ('_admit', '_plan_analysis') else 'accepted' + _assert_public_abort(stopped.value, expected) + assert reached[0][1] == expected and owner._start == 100 + assert owner._emergency_taken and owner.used == reached[0][0] + assert owner._cause.limit_id == ('WU9-L11' if limit == 'work' else 'WU9-L12') + with pytest.raises(RuntimeError, match='^emergency_delivery_already_used$'): + owner.take_emergency() + + +@pytest.mark.parametrize('stage', _INVOCATION_STAGES) +def test_cancellation_at_each_stage_has_actual_state_and_never_returns_report( + monkeypatch, clock, invocation_source, stage): + boundary, created = _observe_invocation(monkeypatch) + reached = [] + + def cancelled(*args, **kwargs): + reached.append(created[0].input_state) + raise KeyboardInterrupt('PRIVATE_W07_CANCEL_DETAILS') + + monkeypatch.setattr(boundary, stage, cancelled) + with pytest.raises(AuditCancelled) as stopped: + boundary._audit_value(invocation_source) + expected = 'not_completed' if stage in ('_admit', '_plan_analysis') else 'accepted' + assert reached == [expected] and len(created) == 1 + assert stopped.value.input_validation_state == expected + assert stopped.value.publication_state == 'not_published' + assert not hasattr(stopped.value, 'reason_code') and not hasattr(stopped.value, 'report') + assert 'PRIVATE_W07_CANCEL_DETAILS' not in str(stopped.value) + repr(stopped.value) + assert created[0]._emergency_taken + + +@pytest.mark.parametrize('stage', ('_admit', '_execute_job')) +def test_failure_before_finalization_can_deliver_only_safe_diagnostic_on_same_budget( + monkeypatch, clock, invocation_source, stage): + boundary, created = _observe_invocation(monkeypatch) + + def failed(*args, **kwargs): + raise RuntimeError('PRIVATE_W07_FAILURE_DETAILS') + + monkeypatch.setattr(boundary, stage, failed) + delivered = boundary._audit_value(invocation_source) + assert type(delivered) is report_contract.AuditReport and len(created) == 1 + document = json.loads(delivered.to_json_bytes()) + assert document['report_kind'] == 'processing_diagnostics' + assert document['run']['processing_state'] == 'failed' + assert document['input_validation']['state'] == ('not_completed' if stage == '_admit' else 'accepted') + assert document['run']['diagnostics'][0]['code'] == 'execution_failed' + for name in ('scopes', 'populations', 'basis_index', 'capabilities', 'checks', + 'observability_domains', 'results', 'findings'): + assert document[name] == [] + # Reporting 16.1 empties analytical arrays, retaining safe execution Reasons. + assert document['reasons'] and all(reason['code'] == 'execution_failed' and + reason['classification'] == 'execution' and reason['scope_ref'] is None and + reason['affected_result_refs'] == [] and reason['input_refs'] == [] + for reason in document['reasons']) + assert b'PRIVATE_W07_FAILURE_DETAILS' not in delivered.to_json_bytes() + assert b'PRIVATE_W07_FAILURE_DETAILS' not in delivered.to_markdown_bytes() + assert counters(created[0]) == (len(delivered.to_json_bytes()), len(delivered.to_markdown_bytes())) + assert created[0]._start == 100 and 1024 < created[0].used <= 10_000_000 + + +@pytest.mark.parametrize('stage', ('_assemble_analysis', '_assemble_selected_report', + '_encode_json_report', '_encode_markdown_report', + '_verify_json_report', '_verify_markdown_report', '_deliver_report')) +def test_failure_after_finalization_cannot_restart_or_deliver_a_partial_report( + monkeypatch, clock, invocation_source, stage): + boundary, created = _observe_invocation(monkeypatch) + + def failed(*args, **kwargs): + raise RuntimeError('PRIVATE_W07_FINALIZATION_FAILURE') + + monkeypatch.setattr(boundary, stage, failed) + with pytest.raises(AuditAbort) as stopped: + boundary._audit_value(invocation_source) + _assert_public_abort(stopped.value, 'accepted', 'execution_failed') + assert len(created) == 1 and created[0]._emergency_taken + assert 'PRIVATE_W07_FINALIZATION_FAILURE' not in str(stopped.value) + repr(stopped.value) + + +def test_complete_json_followed_by_real_markdown_cap_refuses_whole_invocation( + monkeypatch, clock, invocation_source): + boundary, created = _observe_invocation(monkeypatch) + original = boundary._encode_markdown_report + completed_json = [] + + def no_markdown_space(document, port): + owner = created[0] + assert port._owner is owner and owner._json_output_bytes > 0 + completed_json.append(owner._json_output_bytes) + port.charge_output('markdown', OUTPUT_LIMIT) + return original(document, port) + + monkeypatch.setattr(boundary, '_encode_markdown_report', no_markdown_space) + with pytest.raises(AuditAbort) as stopped: + boundary._audit_value(invocation_source) + _assert_public_abort(stopped.value, 'accepted') + assert len(created) == len(completed_json) == 1 + assert counters(created[0]) == (completed_json[0], OUTPUT_LIMIT) + assert created[0]._cause.limit_id == 'WU9-L14' + + +@pytest.mark.parametrize('after_commit', (False, True)) +def test_local_job_stop_retains_only_atomically_committed_results_in_complete_report( + monkeypatch, clock, invocation_source, after_commit): + from source_integrity_toolkit.runtime import boundary + control = json.loads(boundary._audit_value(invocation_source).to_json_bytes()) + boundary, created = _observe_invocation(monkeypatch) + execute = boundary._execute_job + calls = [] + + def local_stop(prepared, spec, ledger, port): + calls.append(spec.family) + if len(calls) == 2: + if after_commit: + execute(prepared, spec, ledger, port) + assert port._committed and port._committed[0] + port.charge(1_000_000 - port.used + 1) + return execute(prepared, spec, ledger, port) + + monkeypatch.setattr(boundary, '_execute_job', local_stop) + delivered = boundary._audit_value(invocation_source) + assert type(delivered) is report_contract.AuditReport and len(created) == 1 + document = json.loads(delivered.to_json_bytes()) + assert calls == ['SIT-M001', 'SIT-M002'] + assert document['run']['processing_state'] == 'interrupted' + assert document['input_validation']['state'] == 'accepted' + for family in calls[:2 if after_commit else 1]: + actual = [row for row in document['results'] if row['diagnostic_id'] == family] + expected = [row for row in control['results'] if row['diagnostic_id'] == family] + assert [(row['field_key'], row['execution_state'], row['result_state'], row['value']) for row in actual] == [ + (row['field_key'], row['execution_state'], row['result_state'], row['value']) for row in expected] + uncompleted = [row for row in document['results'] + if row['diagnostic_id'] not in calls[:2 if after_commit else 1]] + assert uncompleted and all(row['result_state'] == 'not_evaluated' and row['value'] is None for row in uncompleted) + assert all(row['execution_state'] == ('interrupted' if row['diagnostic_id'] == calls[1] + else 'not_performed') for row in uncompleted) + assert created[0]._cause.limit_id == 'WU9-L11' and created[0]._stop_kind == 'job' + assert counters(created[0]) == (len(delivered.to_json_bytes()), len(delivered.to_markdown_bytes())) + + +@pytest.mark.parametrize('later', ('output', 'failure')) +def test_first_witness_stop_survives_later_finalization_failure_in_actual_invocation( + monkeypatch, clock, invocation_source, later): + boundary, created = _observe_invocation(monkeypatch) + execute = boundary._execute_job + calls, first_causes = [], [] + + def witness_stop(prepared, spec, ledger, port): + calls.append(spec.family) + if len(calls) == 2: + try: + ledger.reserve(witnesses=20_001) + except _AnalysisAborted as stopped: + first_causes.append(stopped) + raise + return execute(prepared, spec, ledger, port) + + def later_failure(document, port): + assert first_causes and port._owner._cause is first_causes[0] + if later == 'output': + port.charge_output('markdown', OUTPUT_LIMIT + 1) + raise RuntimeError('PRIVATE_SECONDARY_FAILURE') + + monkeypatch.setattr(boundary, '_execute_job', witness_stop) + monkeypatch.setattr(boundary, '_encode_markdown_report', later_failure) + with pytest.raises(AuditAbort) as stopped: + boundary._audit_value(invocation_source) + _assert_public_abort(stopped.value, 'accepted') + assert len(created) == len(first_causes) == 1 and calls == ['SIT-M001', 'SIT-M002'] + assert created[0]._cause is first_causes[0] and first_causes[0].limit_id == 'WU9-L13' + assert created[0]._json_output_bytes > 0 and created[0]._markdown_output_bytes == 0 + + +@pytest.mark.parametrize('encoding', ('json', 'markdown')) +def test_same_length_semantic_encoding_corruption_blocks_whole_report_delivery( + monkeypatch, clock, invocation_source, encoding): + boundary, created = _observe_invocation(monkeypatch) + name = '_encode_' + encoding + '_report' + original = getattr(boundary, name) + corrupted = [] + + def changed(document, port): + valid = original(document, port) + assert b'not_recorded_by_SIT-RP-0.1' in valid + invalid = valid.replace(b'not_recorded_by_SIT-RP-0.1', b'NOT_recorded_by_SIT-RP-0.1', 1) + assert invalid != valid and len(invalid) == len(valid) + corrupted.append((valid, invalid)) + return invalid + + monkeypatch.setattr(boundary, name, changed) + with pytest.raises(AuditAbort) as stopped: + boundary._audit_value(invocation_source) + _assert_public_abort(stopped.value, 'accepted', 'execution_failed') + assert len(created) == len(corrupted) == 1 + assert all(count > 0 for count in counters(created[0])) + + +@pytest.mark.parametrize('counter,maximum', (('witnesses', 20_000), ('members', 100_000))) +@pytest.mark.parametrize('pending', (False, True)) +def test_formal_witness_additions_share_private_pending_and_retained_fixed_ceiling( + clock, counter, maximum, pending): + owner = resources._new_analysis_budget() + owner.record_input_acceptance() # Trusted component setup for actual quota arithmetic. + job = owner.start_job() + ledger = owner.witnesses + token = ledger.reserve(**{counter: maximum - 1}) + if not pending: + ledger.retain(token) + owner.finish_job(job) + finalizer = owner.begin_finalization() + port = owner.begin_report_encoding(finalizer) + before = (ledger._reserved_witnesses, ledger._reserved_members, + ledger._retained_witnesses, ledger._retained_members) + port.reserve_report_witness(0, 0) # Exact reuse has no additional retained occurrence. + assert owner._witness_ledger is ledger + assert (ledger._reserved_witnesses, ledger._reserved_members, + ledger._retained_witnesses, ledger._retained_members) == before + addition = (1, 0) if counter == 'witnesses' else (0, 1) + port.reserve_report_witness(*addition) + count = (ledger._reserved_witnesses + ledger._retained_witnesses if counter == 'witnesses' + else ledger._reserved_members + ledger._retained_members) + assert count == maximum + retained = (ledger._retained_witnesses, ledger._retained_members) + with pytest.raises(_AnalysisAborted) as stopped: + port.reserve_report_witness(*addition) + assert stopped.value.limit_id == 'WU9-L13' + assert (ledger._retained_witnesses, ledger._retained_members) == retained + assert owner._witness_ledger is ledger and owner._start == 100 + public = diagnostics._emergency_report_abort(owner) + _assert_public_abort(public, 'accepted') + + +def test_owned_mapping_order_cache_hit_is_charged_and_encoding_still_visits_values( + monkeypatch, clock): + owner, _, real = encoding_context() + value = report_contract._copy_report_value({'z': 'second', 'a': 'first'}, real) + assert type(value) is report_contract._ReportMapping + comparisons = [] + compare = escaping._compare_text + + def observed_compare(left, right, port): + comparisons.append((left, right)) + return compare(left, right, port) + + monkeypatch.setattr(escaping, '_compare_text', observed_compare) + wrapped = escaping._CachedEncodingPort(real) + assert wrapped._owner is owner + before = owner.used + first = escaping._sorted_report_pairs(value, wrapped) + assert first == (('a', 'first'), ('z', 'second')) + assert comparisons and owner.used > before + compared, before = len(comparisons), owner.used + second = escaping._sorted_report_pairs(value, wrapped) + assert second is first and owner.used > before + assert len(comparisons) == compared and counters(owner) == (0, 0) + expected = b'{"a":"first","z":"second"}' + first_bytes = escaping._encode_j(value, wrapped) + after_encoding = owner.used + second_bytes = escaping._encode_j(value, wrapped) + assert first_bytes == second_bytes == expected and owner.used > after_encoding + assert len(comparisons) == compared + assert counters(owner) == (2 * len(expected), 0) + + +def test_mapping_order_cache_is_local_to_wrapper_and_exact_owned_object(monkeypatch, clock): + owner, _, real = encoding_context() + left = report_contract._copy_report_value({'z': 'left-z', 'a': 'left-a'}, real) + right = report_contract._copy_report_value({'z': 'right-z', 'a': 'right-a'}, real) + assert type(left) is type(right) is report_contract._ReportMapping and left is not right + comparisons = [] + compare = escaping._compare_text + + def observed_compare(first, second, port): + comparisons.append((first, second)) + return compare(first, second, port) + + monkeypatch.setattr(escaping, '_compare_text', observed_compare) + first_wrapper = escaping._CachedEncodingPort(real) + left_pairs = escaping._sorted_report_pairs(left, first_wrapper) + compared, before = len(comparisons), owner.used + right_pairs = escaping._sorted_report_pairs(right, first_wrapper) + assert right_pairs == (('a', 'right-a'), ('z', 'right-z')) + assert right_pairs is not left_pairs and len(comparisons) > compared and owner.used > before + second_wrapper = escaping._CachedEncodingPort(real) + compared, before = len(comparisons), owner.used + second_pairs = escaping._sorted_report_pairs(left, second_wrapper) + assert second_pairs == left_pairs and second_pairs is not left_pairs + assert len(comparisons) > compared and owner.used > before + assert first_wrapper._owner is second_wrapper._owner is owner + assert escaping._sorted_report_pairs(left, first_wrapper) is left_pairs + + +def test_new_invocation_cannot_reuse_another_invocations_paid_mapping_order(monkeypatch, clock): + first_owner, _, first_port = encoding_context() + value = report_contract._copy_report_value({'z': 'second', 'a': 'first'}, first_port) + first_wrapper = escaping._CachedEncodingPort(first_port) + first_pairs = escaping._sorted_report_pairs(value, first_wrapper) + before_first = first_owner.used + second_owner, _, second_port = encoding_context() + assert second_owner is not first_owner + second_wrapper = escaping._CachedEncodingPort(second_port) + comparisons = [] + compare = escaping._compare_text + + def observed_compare(left, right, port): + comparisons.append((left, right)) + assert port._owner is second_owner + return compare(left, right, port) + + monkeypatch.setattr(escaping, '_compare_text', observed_compare) + before_second = second_owner.used + second_pairs = escaping._sorted_report_pairs(value, second_wrapper) + assert second_pairs == first_pairs and second_pairs is not first_pairs + assert comparisons and second_owner.used > before_second + assert first_owner.used == before_first + assert first_wrapper._owner is first_owner and second_wrapper._owner is second_owner + assert counters(first_owner) == counters(second_owner) == (0, 0) From c8b6df2fda2aa7c5fdd276b3c1ad277f9711a206 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 22:14:12 -0700 Subject: [PATCH 17/21] Preserve immutable-report checks across supported Python minors Accept the actual frozen-assignment exception variants while retaining the rejected write, source identity, cached encodings and no-runtime-reentry checks. Record both real Python 3.13 hosted failures and the scoped local closure. SIT-Phase-Unit: P4-W07 --- phase4/implementation_evidence.json | 258 ++++++++++++++++++++++++- tests/integration/test_public_audit.py | 7 +- 2 files changed, 262 insertions(+), 3 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 2ffa4ad..37699d2 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -2,7 +2,7 @@ "phase": "P4", "current_unit": "P4-W07", "activation_stage": 7, - "status": "W07 internal same-invocation composition implemented and locally verified by the recorded primary run and scoped constructor closure; published-head hosted verification remains pending", + "status": "W07 local implementation and scoped verification retained; hosted Python3.13 immutability-test mismatch diagnosed and repaired without product changes; corrected local Python3.12 affected control passes, corrected hosted Python3.13 remains pending.", "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", "previous_checkpoint": { "phase": "P4", @@ -6093,5 +6093,259 @@ "unchanged_boundaries": "No budget, deadline, reserve, output cap, workflow, pin, runtime dependency, analytical algorithm, vocabulary, frozen plan/schema/golden, API activation or module-inventory change.", "authority_notice": "Evidence records describe observed work; they do not grant scope, select tests or authorize execution.", "validated_at_utc": "2026-10-26T03:59:54.742093+00:00", - "publication_note": "Local W03 repair commit IDs and tested source bytes are retained here. Remote Git commit bindings and eventual W07 hosted results belong to external publication receipts; no self-referential success commit is claimed." + "publication_note": "Local W03 repair commit IDs and tested source bytes are retained here. Remote Git commit bindings and eventual W07 hosted results belong to external publication receipts; no self-referential success commit is claimed.", + "python313_immutability_repair": { + "owner": "P4-W07", + "activation_stage": 7, + "authorized_basis": "Approved PHASE_4_PLAN.md section9 permits normal original-owner implementation/test-wiring fixes without repeated approval; W08 continuation exposed the completed W07 hosted results.", + "previous_status": "W07 internal same-invocation composition implemented and locally verified by the recorded primary run and scoped constructor closure; published-head hosted verification remains pending", + "base_head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "changed_paths": [ + "tests/integration/test_public_audit.py", + "phase4/implementation_evidence.json" + ], + "root_cause": "N12 expects only TypeError when assigning report.results. On both CPython 3.13.16 profiles, the frozen slots dataclass correctly rejects this assignment with dataclasses.FrozenInstanceError, an AttributeError subclass. The product remains immutable; the test assumes a particular Python minor exception class not required by the plan.", + "hosted_failure": { + "status": "diagnosed", + "run_id": 40267314989, + "run_attempt": 1, + "head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "reviewed_at_utc": "2026-10-26T04:55:32.659710+00:00", + "profiles": [ + { + "profile": "w07-ubuntu-py313", + "artifact_id": 12627088940, + "zip_sha256": "5c3cf8e5070651369bf08d5bb95c5820b640c73f6807c3978f4618d1fafdaa5d", + "github_artifact_digest_matches": true, + "binding": { + "activation_stage": 7, + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "event": "pull_request", + "event_sha256": "bdfe5d47b0c5a493afa8c2480654eaf43ac4fed7b59938609105bb780a6b1ec7", + "head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "matrix_os": "ubuntu-24.04", + "matrix_python": "3.13", + "mode": "hosted", + "python": "3.13.16 (main, Oct 1 2026, 02:37:54) [GCC 13.3.0]", + "run_attempt": "1", + "run_id": "40267314989", + "unit": "P4-W07" + }, + "collected_count": 10069, + "junit_distinct_testcases": 10069, + "passed_cases": 10068, + "failed_cases": 1, + "successful_subtest_events": 533, + "junit_suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "10602", + "time": "1608.311", + "timestamp": "2026-10-26T04:07:29.873487+00:00", + "hostname": "runnervmtai0g" + } + ], + "identity_set_matches_collection": true, + "failures": [ + { + "class": "tests.integration.test_public_audit", + "name": "test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "message": "dataclasses.FrozenInstanceError: cannot assign to field 'results'" + } + ], + "exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "ValueError", + "message": "accumulated_suite_failed", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "installed_receipts_present": [ + "w08-installed-runtime.json", + "w14-installed-runtime.json" + ] + }, + { + "profile": "w07-windows-py313", + "artifact_id": 12628436653, + "zip_sha256": "eed3f4f432160d32378fce586cc10b5991013cd648d967d33088260fe45a539e", + "github_artifact_digest_matches": true, + "binding": { + "activation_stage": 7, + "base": "fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c", + "event": "pull_request", + "event_sha256": "e026cec0d80fba8b67e5cac5783865c8f08f92b3657bc26079faf318473a5e44", + "head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "matrix_os": "windows-2025", + "matrix_python": "3.13", + "mode": "hosted", + "python": "3.13.16 (tags/v3.13.16:cbc944f, Sep 30 2026, 19:17:50) [MSC v.1944 64 bit (AMD64)]", + "run_attempt": "1", + "run_id": "40267314989", + "unit": "P4-W07" + }, + "collected_count": 10069, + "junit_distinct_testcases": 10069, + "passed_cases": 10068, + "failed_cases": 1, + "successful_subtest_events": 533, + "junit_suite_attributes": [ + { + "name": "pytest", + "errors": "0", + "failures": "1", + "skipped": "0", + "tests": "10602", + "time": "2300.669", + "timestamp": "2026-10-26T04:08:27.594059+00:00", + "hostname": "runnervmdaln5" + } + ], + "identity_set_matches_collection": true, + "failures": [ + { + "class": "tests.integration.test_public_audit", + "name": "test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "message": "dataclasses.FrozenInstanceError: cannot assign to field 'results'" + } + ], + "exit": { + "exit_code": 1, + "incomplete": false, + "interrupted": false, + "timed_out": false, + "timeout_seconds": 2400 + }, + "test_failure": { + "error_type": "ValueError", + "message": "accumulated_suite_failed", + "stage": "test" + }, + "evidence_failure": { + "error_type": "ValueError", + "message": "earlier_stage_failed", + "stage": "evidence" + }, + "installed_receipts_present": [ + "w08-installed-runtime.json", + "w14-installed-runtime.json" + ] + } + ], + "other_profiles_scope": "Both Python 3.11 jobs succeeded according to jobs API. Their raw artifacts were not downloaded by this investigation.", + "root_cause": "N12 expects only TypeError when assigning report.results. On both CPython 3.13.16 profiles, the frozen slots dataclass correctly rejects this assignment with dataclasses.FrozenInstanceError, an AttributeError subclass. The product remains immutable; the test assumes a particular Python minor exception class not required by the plan.", + "candidate_fix": { + "owner": "P4-W07", + "paths": [ + "tests/integration/test_public_audit.py", + "phase4/implementation_evidence.json" + ], + "change": "Accept exactly TypeError and FrozenInstanceError for root property assignment, with explicit unchanged root identity, both output caches and ledger/time assertions. Retain nested item mutation and no-runtime-reentry controls.", + "product_change_needed": false, + "w08_impact": "Close the inherited test defect before claiming W08 hosted success; normal W08 activation can proceed under its approved scope.", + "verification": "Target the affected N12 function locally on existing CPython3.12.14. Retain actual failed3.13 artifacts and leave corrected3.13 hosted success pending." + }, + "timing_note": "Windows3.13 completed2300.669 JUnit seconds under unchanged2400-second suite timeout; no timeout occurred.", + "scope_limitations": [ + "No CI rerun triggered.", + "Diagnosis did not modify product code or relax behavior.", + "No final installed/public API or final-phase acceptance claimed.", + "Artifact ZIP digest, CRC, binding and exact collection/JUnit identity reconciliation checked; installed receipt files were not independently audited in this failure diagnosis." + ] + }, + "repair": "The report.results assignment must continue to fail. Its assertion accepts only TypeError and dataclasses.FrozenInstanceError, the actual supported interpreter outcomes. It additionally asserts the original results tuple identity, both encoding cache identities and owner work/time state remain unchanged. Existing nested mutation and no-runtime-reentry checks remain intact.", + "definition_preservation": { + "original_top_level_definitions": 18, + "changed_definition": "test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "other_17_definitions_AST_unchanged": true, + "original_case_identities_preserved": true + }, + "local_verification": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "-o", + "addopts=", + "tests/integration/test_public_audit.py::test_delivered_report_caches_and_frozen_graph_do_not_reenter_runtime", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-prior-ci/repair-focused.xml" + ], + "cwd": "/workspace/scratch/4e5267fe5990/source-integrity-toolkit-w08-prior-repair", + "exit_code": 0, + "duration_seconds": 6.4378322750017105, + "python": "Python 3.12.14", + "junit_suites": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1", + "time": "6.148", + "timestamp": "2026-10-26T15:55:51.658095+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "source_files": 232, + "source_hashes_unchanged": true, + "base_head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "scope": "One affected N12 immutable-report and cache/no-reentry test; no whole-suite or Python3.13 success claim." + }, + "raw_evidence": { + "diagnosis.json": { + "sha256": "164afdf8cddb340cba686565671a5ee0ea7d6a3b47804e4fa25f0500f453bf73", + "bytes": 6354 + }, + "repair-verification.json": { + "sha256": "ee24239e4c4f47bbc961f5ea6b532bd9424d770b50fb4f3c1f775fac0b1351d1", + "bytes": 1023 + }, + "repair-focused.xml": { + "sha256": "df21d1074e922c363bb6d469b7e7a8720c491c5fc5c7decb278125b65b746159", + "bytes": 397 + }, + "repair-focused.log": { + "sha256": "076473d7a6c81a72c2c66927e274e567046a1ae3975703aafadbf10e1151adf5", + "bytes": 98 + }, + "repair-source-before.json": { + "sha256": "cfbc32e2b5ff9169a03ba6991aa940a700bb0da9b601436d87f5ba0bf24e10ad", + "bytes": 25564 + }, + "repair-source-after.json": { + "sha256": "cfbc32e2b5ff9169a03ba6991aa940a700bb0da9b601436d87f5ba0bf24e10ad", + "bytes": 25564 + }, + "w07-ubuntu-py313.zip": { + "sha256": "5c3cf8e5070651369bf08d5bb95c5820b640c73f6807c3978f4618d1fafdaa5d", + "bytes": 367157 + }, + "w07-windows-py313.zip": { + "sha256": "eed3f4f432160d32378fce586cc10b5991013cd648d967d33088260fe45a539e", + "bytes": 375479 + } + }, + "unchanged": "All product bytes, schemas, goldens, limits, workflow, pins, plan, API activation and other tests remain unchanged by this repair.", + "scope_limitations": [ + "No local Python3.13 executable was available or installed; local evidence is Python3.12.14 only.", + "No old failed hosted run is reclassified as success.", + "The next current-candidate hosted matrix supplies corrected Python3.13 evidence; no rerun was triggered by this repair." + ], + "recorded_at_utc": "2026-10-26T04:56:38.928921+00:00" + } } diff --git a/tests/integration/test_public_audit.py b/tests/integration/test_public_audit.py index ad53759..d9067a2 100644 --- a/tests/integration/test_public_audit.py +++ b/tests/integration/test_public_audit.py @@ -9,6 +9,7 @@ original independent goldens and its real same-invocation budget outcome. """ import copy +from dataclasses import FrozenInstanceError import importlib.util import json from pathlib import Path @@ -259,13 +260,17 @@ def forbidden(*args, **kwargs): assert report.report_id == document['report_id'] assert (owner.used, owner._last) == (original_used, original_last) assert set(type(report).__slots__) == {'_document', '_json_bytes', '_markdown_bytes'} - with pytest.raises(TypeError): + original_results = report.results + with pytest.raises((TypeError, FrozenInstanceError)): report.results = () + assert report.results is original_results with pytest.raises(TypeError): report.results[0]['value'] = 99 with pytest.raises(TypeError): report.run['requested_diagnostic_ids'][0] = 'altered' assert report.to_json_bytes() is json_raw + assert report.to_markdown_bytes() is markdown_raw + assert (owner.used, owner._last) == (original_used, original_last) def test_source_mutation_after_delivery_cannot_change_report_or_encodings(): From aa0e0b16af29fa5bda3bd63cb0c697e1b7cb8942 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 22:14:14 -0700 Subject: [PATCH 18/21] Bind report boundary assertions to verified public activation Preserve the original W02 refusal and exact exports before W08. After verified activation, require actual safe public report delivery, fixed usage failure, cached encodings and the continuing file refusal. Preserve the original test identity and record this static preventive test-wiring repair. SIT-Phase-Unit: P4-W02 --- phase4/implementation_evidence.json | 30 ++++++++++++++++-- tests/contract/test_report_contract.py | 43 ++++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 37699d2..b84b8cb 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,8 +1,8 @@ { "phase": "P4", - "current_unit": "P4-W07", + "current_unit": "P4-W02", "activation_stage": 7, - "status": "W07 local implementation and scoped verification retained; hosted Python3.13 immutability-test mismatch diagnosed and repaired without product changes; corrected local Python3.12 affected control passes, corrected hosted Python3.13 remains pending.", + "status": "Preventive original-owner W02 boundary assertion repair prepared at verified activation stage7; clean-checkpoint targeted test and future stage8 path verification pending.", "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", "previous_checkpoint": { "phase": "P4", @@ -6347,5 +6347,31 @@ "The next current-candidate hosted matrix supplies corrected Python3.13 evidence; no rerun was triggered by this repair." ], "recorded_at_utc": "2026-10-26T04:56:38.928921+00:00" + }, + "w02_public_activation_assertion_repair": { + "owner": "P4-W02", + "activation_stage": 7, + "base_head": "d1b812315364576d0099518abd5ae152531c8fc8", + "previous_current_unit": "P4-W07", + "previous_status": "W07 local implementation and scoped verification retained; hosted Python3.13 immutability-test mismatch diagnosed and repaired without product changes; corrected local Python3.12 affected control passes, corrected hosted Python3.13 remains pending.", + "discovery": "Static inspection while implementing approved W08 found the W02 N01 assertion unconditionally required three exports and audit_bundle refusal. No test failure was executed or claimed for this discovery.", + "changed_paths": [ + "tests/contract/test_report_contract.py", + "phase4/implementation_evidence.json" + ], + "authority": "PHASE_4_PLAN.md sections4.1,6 W02/W08,7.2 and9: preserve original-owner scope and use verified activation state; normal test-wiring fixes require no additional approval.", + "repair": "Only the existing boundary test changes. It derives activation_stage from guard.current_local_state(ROOT), which verifies actual Git ancestry and checkout. Before stage8 the exact original exports/refusals remain. At stage8 onward it verifies seven exports, a real rejected dual-encoding report from audit_bundle({}), schema/runtime validation, immutable cached bytes, safe invalid-options refusal before hostile dossier access and continuing audit_file refusal.", + "definition_preservation": { + "original_top_level_definitions": 152, + "changed_definition": "test_w02_keeps_both_public_audit_functions_in_their_existing_refusal_state", + "other_151_definitions_AST_unchanged": true, + "case_identity_retained": true + }, + "verification": { + "status": "pending_clean_stage7_targeted_run", + "future_stage8_path": "W08 final candidate targeted integration is required; not yet run." + }, + "unchanged": "No product, N12, API, scope guard, schema, golden, vocabulary, limit, dependency or workflow change.", + "recorded_at_utc": "2026-10-26T05:00:53.289315+00:00" } } diff --git a/tests/contract/test_report_contract.py b/tests/contract/test_report_contract.py index 44489ef..5bb3074 100644 --- a/tests/contract/test_report_contract.py +++ b/tests/contract/test_report_contract.py @@ -520,9 +520,46 @@ class HostileInt(int): def test_w02_keeps_both_public_audit_functions_in_their_existing_refusal_state(): import source_integrity_toolkit as package - assert package.__all__ == ("audit_bundle", "audit_file", "__version__") - with pytest.raises(NotImplementedError): - package.audit_bundle({}) + from tools import check_scaffold_boundary as guard + + state = guard.current_local_state(ROOT) + if state["activation_stage"] < 8: + assert package.__all__ == ("audit_bundle", "audit_file", "__version__") + with pytest.raises(NotImplementedError): + package.audit_bundle({}) + else: + assert package.__all__ == ("audit_bundle", "audit_file", "__version__", + "AuditReport", "AuditAbort", "AuditCancelled", "AuditUsageError") + source = {} + report = package.audit_bundle(source) + assert type(report) is package.AuditReport and source == {} + assert report.report_kind == "validation_diagnostics" + assert report.input_validation["state"] == "rejected" + json_bytes, markdown_bytes = report.to_json_bytes(), report.to_markdown_bytes() + assert type(json_bytes) is bytes and type(markdown_bytes) is bytes + document = json.loads(json_bytes) + assert_both(document) + assert document["run"]["processing_state"] == "rejected" + assert document["input_validation"]["state"] == "rejected" + assert b'"state": "rejected"' in markdown_bytes + assert report.to_json_bytes() is json_bytes + assert report.to_markdown_bytes() is markdown_bytes + + calls = [] + + def touch(*args, **kwargs): + calls.append("dossier touched") + raise AssertionError("invalid options accessed the dossier") + + class Hostile: + __getattribute__ = __repr__ = __str__ = __iter__ = __len__ = touch + __bool__ = __getitem__ = __eq__ = __hash__ = touch + + with pytest.raises(package.AuditUsageError) as caught: + package.audit_bundle(Hostile(), options={"raw_file_digest": True}) + assert str(caught.value) == "Invalid audit invocation." + assert caught.value.code == "invalid_invocation" + assert calls == [] with pytest.raises(NotImplementedError): package.audit_file(object(), object()) From 5de0c24a217ec15b7ae3457752580d3d568a4041 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 22:14:15 -0700 Subject: [PATCH 19/21] Record clean W02 boundary assertion repair verification The original refusal control passes at verified activation stage7 on the clean repair checkpoint. Stage8 public behavior remains for the W08 candidate run. SIT-Phase-Unit: P4-W02 --- phase4/implementation_evidence.json | 68 +++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index b84b8cb..e2a6d83 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -2,7 +2,7 @@ "phase": "P4", "current_unit": "P4-W02", "activation_stage": 7, - "status": "Preventive original-owner W02 boundary assertion repair prepared at verified activation stage7; clean-checkpoint targeted test and future stage8 path verification pending.", + "status": "Preventive original-owner W02 boundary assertion repair verified at clean activation stage7; the original refusal path passed its exact targeted test, and the future stage8 delivery path awaits W08 candidate verification.", "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", "previous_checkpoint": { "phase": "P4", @@ -6368,10 +6368,70 @@ "case_identity_retained": true }, "verification": { - "status": "pending_clean_stage7_targeted_run", - "future_stage8_path": "W08 final candidate targeted integration is required; not yet run." + "status": "passed_clean_stage7_targeted_test", + "actual": { + "head": "9329aeeab6958895100e33ac997b8db6dbadd65d", + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "-o", + "addopts=", + "tests/contract/test_report_contract.py::test_w02_keeps_both_public_audit_functions_in_their_existing_refusal_state", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-prior-ci/w02-activation-repair/focused.xml" + ], + "python": "Python 3.12.14", + "duration_seconds": 10.495207797999683, + "exit_code": 0, + "junit": [ + { + "name": "pytest", + "errors": "0", + "failures": "0", + "skipped": "0", + "tests": "1", + "time": "10.194", + "timestamp": "2026-10-26T16:01:10.202781+11:00", + "hostname": "6b04d9b59a2f" + } + ], + "source_files": 232, + "source_hashes_unchanged": true, + "stage": 7, + "scope": "Exact original test at verified clean stage7; stage8 branch awaits W08 candidate execution." + }, + "future_stage8_path": "W08 final candidate targeted integration is required; not yet run.", + "source_delta_after_test": "Only D05 receives these observed results; every other tested source byte is unchanged." }, "unchanged": "No product, N12, API, scope guard, schema, golden, vocabulary, limit, dependency or workflow change.", - "recorded_at_utc": "2026-10-26T05:00:53.289315+00:00" + "recorded_at_utc": "2026-10-26T05:01:36.433531+00:00", + "raw_evidence": { + "pretest-checkpoint.json": { + "sha256": "210605a3953379e7df9cb9c9b0b2db59184f4e6c45738ff5c543e132f95171ef", + "bytes": 3553 + }, + "verification.json": { + "sha256": "08ec9fb3ff6cb0a73f2219b3a514c4b1155e965c64fd75488e6f365cb42013e7", + "bytes": 948 + }, + "focused.xml": { + "sha256": "513a18bcdb2c35af7e06efd8983d8fc476e4acd5bc8be46f75afc33a7b1480cb", + "bytes": 404 + }, + "focused.log": { + "sha256": "0f4c85b64d2d14c60ae507e39272fdec6b7e93163620e2172dba97cec975f820", + "bytes": 99 + }, + "source-before.json": { + "sha256": "227d88688c2fe6bf061928e3b211677d4679b5200372fc381e563d0b867e2d5f", + "bytes": 25564 + }, + "source-after.json": { + "sha256": "227d88688c2fe6bf061928e3b211677d4679b5200372fc381e563d0b867e2d5f", + "bytes": 25564 + } + } } } From b4d282598ee955ae93a8cdaf05e8f3a7698f78a7 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 22:14:17 -0700 Subject: [PATCH 20/21] Activate the public in-memory audit interface Expose the seven approved public names and validate fixed invocation options before touching the dossier. Reuse the existing single-budget audit path and preserve immutable report delivery and safe exception propagation. Migrate former bundle refusals to direct public behavior while retaining file, CLI, private-runtime and effect controls. Extend existing installed receipts with actual public reports from direct wheel, sdist and rebuilt wheel installs. Keep per-field public obligation closure and final platform acceptance pending. SIT-Phase-Unit: P4-W08 --- README.md | 47 +- phase4/implementation_evidence.json | 608 +++++++++++++++++- phase4/report_contract_coverage.json | 601 ++++++++++++++++- src/source_integrity_toolkit/__init__.py | 11 +- src/source_integrity_toolkit/api.py | 32 +- .../contracts/execution.py | 16 +- .../contract/test_analytical_observability.py | 19 +- tests/contract/test_phase2_transition.py | 19 +- tests/contract/test_public_api.py | 235 +++++++ .../test_analytical_installed_runtime.py | 34 +- .../test_preparation_capability_boundary.py | 17 +- tests/integration/test_public_audit.py | 14 +- .../test_public_installed_runtime.py | 288 +++++++++ tests/scaffold/test_api_stubs.py | 22 +- tests/scaffold/test_ci_contract.py | 147 ++++- tests/scaffold/test_packaging.py | 56 +- tests/security/test_public_api_boundary.py | 101 ++- tests/security/test_scaffold_inertness.py | 67 +- 18 files changed, 2226 insertions(+), 108 deletions(-) create mode 100644 tests/contract/test_public_api.py create mode 100644 tests/integration/test_public_installed_runtime.py diff --git a/README.md b/README.md index cdd3b16..a1038e5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,42 @@ A local, supplied-evidence toolkit for examining source lineage, evidence independence, external presence and corrective capacity in AI-native information systems. -**Status: Phase 3 private analysis and verification consolidation are accepted; [PR #35](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/pull/35) is merged. [Phase 4](PHASE_4_PLAN.md) is approved, and P4-W01 is the current verification bootstrap. Public auditing remains unavailable.** The package remains installable as `0.1.0.dev0`. This work unit changes verification and planning records while preserving all 48 product modules at the accepted merge. Both public audit calls still raise `NotImplementedError`; CLI auditing still refuses with exit 1 without reading dossiers or producing reports. +**Status: public in-memory auditing is available on the Phase 4 development branch through P4-W08.** `audit_bundle` accepts a caller-prepared dossier and returns an immutable report with complete JSON and Markdown bytes when the existing resource limits permit delivery. The package remains `0.1.0.dev0`; [PR #36](https://github.com/DavidWallstructurallaw/source-integrity-toolkit/pull/36) is a draft. Field-by-field public obligation closure and final four-environment acceptance remain for W09 and W10. `audit_file` still immediately raises `NotImplementedError`; CLI auditing still refuses with exit 1 without reading dossiers or producing reports. + +## In-memory use + +Prepare `dossier` as an exact built-in `dict` following the [bundle contract](schemas/bundle/sit-bundle-0.1.schema.json). Input capture and validation occur inside the audit call; callers must not mutate their containers concurrently. + +```python +from source_integrity_toolkit import ( + audit_bundle, AuditAbort, AuditCancelled, AuditUsageError, +) + +try: + report = audit_bundle(dossier) +except AuditUsageError: + # Correct the invocation options before trying again. + raise +except AuditCancelled: + # Cancellation has no partial report to consume. + raise +except AuditAbort as error: + # Only fixed safe state and reason fields are exposed. + print(error.input_validation_state, error.reason_code) +else: + print(report.report_kind, report.run["processing_state"]) + print(report.input_validation["state"]) + json_bytes = report.to_json_bytes() + markdown_bytes = report.to_markdown_bytes() +``` + +Check the report states before interpreting results. A delivered report may describe rejected input, an interrupted audit or a processing failure. Completed analysis may legitimately contain unavailable results. A safe `AuditAbort` means a complete conforming report could not be delivered. `AuditCancelled` preserves cancellation separately. + +The 16 report roots are read-only named attributes, nested objects are immutable mappings, and arrays are tuples. Both byte methods return the encodings completed during that same call; reading them performs no new analysis, encoding or I/O. The toolkit does not write or publish those bytes. Report fields can remain identifying, so successful delivery provides no anonymization or permission-to-publish guarantee. + +`options=None`, `options={}` and `options={"raw_file_digest": False}` are equivalent. No other option is supported for in-memory input. `True`, unknown keys, custom mappings, non-boolean values and caller callbacks raise `AuditUsageError` before the dossier is accessed. Input records cannot configure budgets, clocks or execution policy. + +The package exports `audit_bundle`, `audit_file`, `AuditReport`, `AuditAbort`, `AuditCancelled`, `AuditUsageError` and `__version__`. File capture, native adapters, CLI auditing and formal release remain later work. ## Intended purpose @@ -23,9 +58,9 @@ The private analysis accepts exact built-in values or supplied UTF-8 bytes and e All 228 field obligations have accepted owner-local core evidence. W14 added source-clause and counterexample checks. W15 identified and repaired the missing `dimension_not_selected` distinction for empty dimension selection, with exact paired value/UTF-8 tests and separate absent-subject/incomplete-role controls. The 228 historical rows remain unchanged and do not close public-envelope, rendering or release clauses. See [phase3/obligation_coverage.json](phase3/obligation_coverage.json) for the per-obligation evidence and remaining duties. -The accepted Phase 4 entry is `fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c`, tree `f6fbb8965520f33a09ca38cf413e11ca561110dd`. It is the normal merge of PR #35 and preserves the directly tested VC candidate's exact tree. The owner approved the exact [PHASE_4_PLAN.md](PHASE_4_PLAN.md) bytes and authorized P4-W01 only. The plan's authoring-time draft header is historical; the later approval and current execution are recorded separately in [phase4/implementation_evidence.json](phase4/implementation_evidence.json). +The accepted Phase 4 entry is `fdad8c3449d2d223420c5d52bb9b4c1e863a9e3c`, tree `f6fbb8965520f33a09ca38cf413e11ca561110dd`. It is the normal merge of PR #35 and preserves the directly tested VC candidate's exact tree. The owner approved the exact [PHASE_4_PLAN.md](PHASE_4_PLAN.md) bytes and subsequently authorized W01 through W08. The plan's authoring-time draft header is historical; later approvals and current execution are recorded separately in [phase4/implementation_evidence.json](phase4/implementation_evidence.json). -P4-W01 establishes the ten work units' closed path and activation policy, current event/history checks, retained direct test controls and a [pending report coverage map](phase4/report_contract_coverage.json). It implements no report schema, renderer, public audit or native adapter. Later units will introduce the frozen report contract, privacy projection, JSON/Markdown and finally `audit_bundle` under their approved scopes when the owner authorizes their execution. The report coverage map starts with all 228 public-envelope/rendering obligations pending; inherited private-core evidence does not close them. File auditing, CLI auditing and release remain later work. +W01 established the ten work units' closed path and activation policy. W02 through W07 added the report contract, explicit projection and disclosure, exact JSON/Markdown encodings and same-invocation budget integration. W08 activates the public memory API and migrates the former refusal checks to actual public behavior. The [report coverage map](phase4/report_contract_coverage.json) keeps all 228 field obligations distinct from this interface checkpoint; their public-envelope/rendering closure is W09 work. W10 retains final installation/platform acceptance and handoff. File auditing, CLI auditing and release require their later approved stages. ## Developer installation and checks @@ -38,9 +73,9 @@ python -B tests/scaffold/test_ci_contract.py --local --evidence-dir ../sit-p4-lo Choose a new evidence directory for each attempt. The entry verifies the actual tool versions, current module/workflow boundaries and frozen Phase 0 baseline, explicitly collects all five directories (scaffold, security, contract, unit and integration), runs the complete suite with third-party pytest plugin autoload disabled, and reconciles exact collected identities with JUnit. Successful subtest events are counted separately. It checks tracked bytes before/after and retains raw logs, failure records, distribution inventories and available installed-runtime evidence. Missing directories, an empty collection, failure/error/skip outcomes or incomplete evidence fail the command. The complete-suite process budget is 2,400 seconds. -This local command requires no `SIT_PHASE_UNIT` or fabricated GitHub event. It checks the local working tree and records its source hashes. It cannot attest hosted context, authorize a checkout or replace the four required hosted profiles. The retained preparation installation test asserts its complete witness locally, but its persistent W08 receipt is emitted only on an actual Actions run; local evidence states that limit. Use the resulting `summary.json` and raw logs to inspect the attempt, including a failed or timed-out attempt. +This local command requires no `SIT_PHASE_UNIT` or fabricated GitHub event. It checks the local working tree and records its source hashes. It cannot attest hosted context, authorize a checkout or replace the four required hosted profiles. Installed-runtime receipts record the actual tested distribution, module hashes, inputs, independent expectations and execution scope. Use the resulting `summary.json` and raw logs to inspect the attempt, including a failed or timed-out attempt. -Dependency installation is a developer operation and may access the package index. The installed product has zero third-party runtime dependencies. Package construction, clean offline installation, all 48 installed module hashes, private preparation and analytical witnesses, and public refusals remain tested. The product never imports developer guards, catalogs or tests. Six former historical wrappers now contain their current assertions directly; normal test collection does not fetch or execute historical Git blobs. Some developer boundary tests intentionally use real temporary Git repositories. Building and using the installed package does not require that history. +Dependency installation is a developer operation and may access the package index. The installed product has zero third-party runtime dependencies. Package construction, clean offline installation, all 48 installed module hashes, private preparation and analytical witnesses, actual public memory reports, and the remaining file/CLI refusals are tested. The product never imports developer guards, catalogs or tests. Six former historical wrappers now contain their current assertions directly; normal test collection does not fetch or execute historical Git blobs. Some developer boundary tests intentionally use real temporary Git repositories. Building and using the installed package does not require that history. Bare `pytest` retains its older scaffold-only configuration. Use the current entry above for complete local verification. Existing targeted pytest invocations are useful diagnostics and must be reported with their actual selected scope. @@ -60,7 +95,7 @@ Phase 4 records each current candidate's actual collection and result. Its final Current Phase 4 work and actual validation status are in [phase4/implementation_evidence.json](phase4/implementation_evidence.json); the scoped verification and toolchain review is in [phase4/ci_review.md](phase4/ci_review.md). [VERIFICATION_CONSOLIDATION_COMPLETION.md](VERIFICATION_CONSOLIDATION_COMPLETION.md) and the one-time [consolidation map](verification/consolidation_map.json) preserve their original checkpoint wording; later PR acceptance and merge records establish VC completion. These maps are review artifacts, never product input or an approval switch for current verification. Historical stage evidence remains in [PHASE_3_COMPLETION.md](PHASE_3_COMPLETION.md), [phase3/implementation_evidence.json](phase3/implementation_evidence.json) and their immutable Git history. The complete pre-retirement test implementation is available at `3ac5128e4744e2d3708400e3cb1875a9cd4ed0e1`; inspect any historical replay in an isolated checkout with its original tooling and label it as historical investigation. Earlier failed attempts and missing W01-W07 raw ZIPs and some W08 profile artifacts remain disclosed. Existing CI artifacts contain JSON/XML/log records, not the wheel/sdist archive bytes or original GitHub event payloads. W08 temporary-archive member corroboration and W14 exact archive records have different evidence scope; no whole-archive reproducibility claim is made. The different VC event digests between runner groups have no established byte-level explanation. -Windows Server component tests do not certify a future Windows 11/NTFS native adapter. Public audit/report output, CLI auditing, native file adapters and release remain unfinished. The product's 60-second cooperative deadline and existing work quotas are unchanged; a safe resource interruption is not certification of unperformed analysis. +Windows Server component tests do not certify a future Windows 11/NTFS native adapter. Public in-memory report delivery is implemented; per-field public acceptance, final platform acceptance, CLI auditing, native file adapters and release remain unfinished. The product's 60-second cooperative deadline and existing work quotas are unchanged; a safe resource interruption is not certification of unperformed analysis. ## Specifications, security and rights diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index e2a6d83..8d53558 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -1,9 +1,9 @@ { "phase": "P4", - "current_unit": "P4-W02", - "activation_stage": 7, - "status": "Preventive original-owner W02 boundary assertion repair verified at clean activation stage7; the original refusal path passed its exact targeted test, and the future stage8 delivery path awaits W08 candidate verification.", - "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "current_unit": "P4-W08", + "activation_stage": 8, + "status": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", + "owner_authorization": "Approved PHASE_4_PLAN.md and explicit user instruction W08 继续.", "previous_checkpoint": { "phase": "P4", "current_unit": "P4-W03", @@ -6433,5 +6433,603 @@ "bytes": 25564 } } - } + }, + "w08_checkpoint": { + "owner": "P4-W08", + "activation_stage": 8, + "inherited_checkpoint": "f2e4b2a8b8b6eb7aed4c6215e8504cc7ee1daaa2", + "authorization": "Approved PHASE_4_PLAN.md and explicit user instruction W08 继续.", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "changed_scope": [ + "README.md", + "phase4/implementation_evidence.json", + "phase4/report_contract_coverage.json", + "src/source_integrity_toolkit/__init__.py", + "src/source_integrity_toolkit/api.py", + "src/source_integrity_toolkit/contracts/execution.py", + "tests/contract/test_analytical_observability.py", + "tests/contract/test_phase2_transition.py", + "tests/contract/test_public_api.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/integration/test_preparation_capability_boundary.py", + "tests/integration/test_public_audit.py", + "tests/integration/test_public_installed_runtime.py", + "tests/scaffold/test_api_stubs.py", + "tests/scaffold/test_ci_contract.py", + "tests/scaffold/test_packaging.py", + "tests/security/test_public_api_boundary.py", + "tests/security/test_scaffold_inertness.py" + ], + "implementation": [ + "Public audit_bundle checks exact trusted invocation options before dossier access and calls the existing same-invocation runtime.", + "Seven public names, exact signatures, immutable sixteen-root report and cached JSON/Markdown access are exposed at development version 0.1.0.dev0.", + "None, empty exact dict and raw_file_digest=False select the same behavior; true, unknown keys and hostile types fail with fixed AuditUsageError.", + "AuditUsageError permits normal traceback propagation while retaining fixed payload-free message/code and immutable public fields.", + "Legacy refusal assertions migrate to direct public behavior; original file/CLI refusals and effect observers remain.", + "Existing installed preparation/analysis witnesses retain their scopes and add public delivery in direct-wheel, sdist and rebuilt-wheel clean installations." + ], + "remaining": [ + "All 228 field obligation rows and public-envelope/rendering verified counts retain their prior values; W09 closes those obligations using their actual evidence.", + "Original full-reference/hero completion is limited by unchanged budgets; finite successful witnesses do not replace original hero outcomes.", + "Final four-profile candidate acceptance and raw-evidence review remain W10 work.", + "File/native/CLI audit execution, merge, release, tags and version promotion remain outside W08." + ], + "previous_state": { + "current_unit": "P4-W02", + "activation_stage": 7, + "status": "Preventive original-owner W02 boundary assertion repair verified at clean activation stage7; the original refusal path passed its exact targeted test, and the future stage8 delivery path awaits W08 candidate verification.", + "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "scoped_runs": [ + { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "-k", + "exports or signatures or invalid_options or safe_failures or direct_report or hostile_options or usage_and_file_refusals", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-public-fast-001.xml" + ], + "exit_code": 1, + "elapsed_seconds": 0.8179823909995321, + "source_files": [ + "src/source_integrity_toolkit/api.py", + "src/source_integrity_toolkit/__init__.py", + "src/source_integrity_toolkit/contracts/execution.py", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py" + ], + "source_unchanged": true, + "scope": "Only cheap public export/signature/usage/transport and hostile-options controls; no complete audit invocation selected." + }, + "distinct_case_count": 36, + "case_counts": { + "passed": 35, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_suite_tests_including_any_subtests": 36, + "junit_seconds": 0.459, + "identities_sha256": "9514697ee3c2ad30adb423ee55711afcccb9c3f171da6e7cf5dde23f3f829a50", + "raw": [ + { + "file": "p4w08-public-fast-001-exit.json", + "sha256": "6a211afa813a909cfca725d2cd3f28d9bb4bccb5437f1f6b631cf81819e45613", + "bytes": 918 + }, + { + "file": "p4w08-public-fast-001.xml", + "sha256": "e20dc44140c8ae44fa7fc58a6525b12c0ea983df194bf293152515e2388fba90", + "bytes": 6421 + }, + { + "file": "p4w08-public-fast-001.log", + "sha256": "74c4387a37553964afc632c499e3b47e0692f33161909c25ab7e56fc4f4da350", + "bytes": 954 + }, + { + "file": "p4w08-public-fast-001-source-before.json", + "sha256": "42545bd31040ee31517501ff063a07248c75b617d39b3c61b53c5758dbc7eba7", + "bytes": 574 + }, + { + "file": "p4w08-public-fast-001-source-after.json", + "sha256": "42545bd31040ee31517501ff063a07248c75b617d39b3c61b53c5758dbc7eba7", + "bytes": 574 + } + ], + "source_files": 5, + "source_hashes_unchanged": true, + "passed_in_recorded_scope": false + }, + { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "-k", + "exports or signatures or invalid_options or safe_failures or direct_report or hostile_options or usage_and_file_refusals", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-public-fast-002.xml" + ], + "exit_code": 0, + "elapsed_seconds": 0.6166829379999399, + "source_files": [ + "src/source_integrity_toolkit/api.py", + "src/source_integrity_toolkit/__init__.py", + "src/source_integrity_toolkit/contracts/execution.py", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py" + ], + "source_unchanged": true, + "scope": "Only cheap public export/signature/usage/transport and hostile-options controls; no complete audit invocation selected." + }, + "distinct_case_count": 36, + "case_counts": { + "passed": 36, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_suite_tests_including_any_subtests": 36, + "junit_seconds": 0.328, + "identities_sha256": "9514697ee3c2ad30adb423ee55711afcccb9c3f171da6e7cf5dde23f3f829a50", + "raw": [ + { + "file": "p4w08-public-fast-002-exit.json", + "sha256": "4db84b655497a72b35680e45b005ecbc6186bd5bfe687504ae7182cd7e106c17", + "bytes": 918 + }, + { + "file": "p4w08-public-fast-002.xml", + "sha256": "90ff21521e49fed9edb011b300bccb756339ba4a7321fe73cf5a89d47d49e443", + "bytes": 5769 + }, + { + "file": "p4w08-public-fast-002.log", + "sha256": "317297473832c20c7b2f9e5e33e0738e61b1c9c858737546753656c5d0dae996", + "bytes": 114 + }, + { + "file": "p4w08-public-fast-002-source-before.json", + "sha256": "51576f20875c5f90b49f56f146634b69748ec0415519fdea4aaeb2e692fd90e5", + "bytes": 574 + }, + { + "file": "p4w08-public-fast-002-source-after.json", + "sha256": "51576f20875c5f90b49f56f146634b69748ec0415519fdea4aaeb2e692fd90e5", + "bytes": 574 + } + ], + "source_files": 5, + "source_hashes_unchanged": true, + "passed_in_recorded_scope": true + } + ], + "installed_receipts": [], + "supporting_receipts": { + "public_test_migration": [ + { + "raw": { + "file": "p4w08-public-tests-migration.json", + "sha256": "dc2663da8863d6f6f04afc3e5b710156d6534ba457984b4b88487c55bc25c69f", + "bytes": 3582 + }, + "record": { + "owner": "P4-W08", + "base": "d1b812315364576d0099518abd5ae152531c8fc8", + "paths": [ + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py" + ], + "source_hashes": { + "tests/contract/test_public_api.py": "7ca5422483ee15d0b9b98b8435bf672ea1bc60be3478559aafe3454f9830248a", + "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", + "tests/integration/test_public_audit.py": "74d905212c0366794b21f6d9823f2b39187be3c8d20c77f84d612d3f79bab5ac" + }, + "base_hashes": { + "tests/security/test_public_api_boundary.py": "5d588685427287a425fdf6fb2c29297209c933e6b1c8705b5d4c31e56da45cc9", + "tests/integration/test_public_audit.py": "af149a79c3de6843b407aa2134ab2d2c7db712256f3f173146666f53da2e564d" + }, + "N06": { + "new_cases": 31, + "purpose": "Exact public export order/signatures, three real legal options with shared reports, all 16 read-only roots and byte caches, 21 invalid option cases rejected before runtime, public safe exception/contextmanager identity, constructor refusal." + }, + "N11": { + "old_cases": 20, + "new_cases": 28, + "renamed_tests": { + "test_internal_invocation_rejects_hostile_input_without_executing_protocols": "test_public_invocation_rejects_hostile_input_without_executing_protocols", + "test_internal_native_fault_surface_does_not_format_or_retain_source_exception": "test_public_native_fault_surface_does_not_format_or_retain_source_exception", + "test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes": "test_public_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "test_w07_public_entry_points_still_refuse_without_touching_arguments": "test_public_usage_and_file_refusals_leave_hostile_arguments_untouched", + "test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect": "test_public_complete_invocation_has_no_observed_file_network_native_or_process_effect" + }, + "retained": "All original input/fault/cache/effect assertions and all six observer negative controls; actual invocation now through public api.audit_bundle. audit_file hostile refusal unchanged.", + "added": "Eight hostile options controls prove no dossier/runtime/custom repr/hash/equality protocol use." + }, + "N12": { + "cases": 14, + "retained_test_names_and_order": true, + "private_entry_regression_ast_unchanged": true, + "inherited_w07_python313_repair_test_ast_unchanged": true, + "change": "Five original complete/rejection/stop invocation call sites now use package audit_bundle; independently authored finite inputs, semantic assertions, exact-format oracles, same-ledger observations, original private regression and full-reference real budget outcome unchanged." + }, + "validation": { + "quick_run": "p4w08-public-fast-002", + "result": "36 passed, 23 deselected; cheap surface and option controls only", + "source_scope": "5 relevant files before/after hashes unchanged", + "first_attempt": "p4w08-public-fast-001 retained: 35 passed, 1 failed because new N06 constructor-message regex omitted existing final period; corrected expected literal without product change.", + "full_public_execution": "Await root final frozen-source verification.", + "subsequent_N11_strengthening": "The collision-key custom hash now records calls; caller dictionary construction is excluded by clearing only setup calls before the public invocation. Root final frozen run covers the added observer." + } + } + } + ], + "legacy_refusal_migration": [ + { + "raw": { + "file": "p4w08-refusal-migration.json", + "sha256": "ec8c451cc9b3220578ec0fc0f23d5b48fd0d7da2fd0105d96b4b2172e741609e", + "bytes": 7646 + }, + "record": { + "base_head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "owner": "P4-W08", + "scope": [ + "T01", + "T02", + "T03", + "T05", + "T06" + ], + "files": { + "tests/scaffold/test_api_stubs.py": { + "before_sha256": "0441d0bbb735e70225331099c5c01688b24af1877eb63ef12796de00bab9974a", + "after_sha256": "cbac5ab7257f94d215a856b5125786115df3f215bebc358dac1a223ab3de05b1", + "original_test_function_count": 5, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_first_executable_statement_is_refusal", + "test_hostile_arguments_and_options_remain_untouched", + "test_plain_bundle_remains_unchanged" + ], + "unchanged_function_count": 3, + "migration": [ + "The audit_file immediate-raise AST case is unchanged. The obsolete audit_bundle immediate-raise AST parameter is removed because W08 activates execution; its pre-input safety moves to the existing hostile arguments/options case and dedicated N06 options-first tests.", + "Both hostile argument identities remain. Bundle now requires exact AuditUsageError/fixed message without invoking the hostile object; file keeps NotImplementedError and its original message.", + "The original opaque mutable source remains the same object with identical nested content after a real validation_diagnostics rejection; both JSON and Markdown independently expose rejected state.", + "Original file bytes/output-directory checks and both exact keyword-only signatures are unchanged." + ] + }, + "tests/scaffold/test_packaging.py": { + "before_sha256": "cfc891098830d9adf1f2ee3a0c3bcc06e884fb00f356aa5a8e1822feb1aa5d93", + "after_sha256": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", + "original_test_function_count": 9, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_wheel_installs_without_developer_tools" + ], + "unchanged_function_count": 11, + "migration": [ + "Only the explicitly approved clean-wheel test body changes. Exact version, zero developer/runtime dependencies, clean offline venv installation, sit version/help/audit exit and no output-directory creation remain.", + "Bundle invalid options now produce fixed safe usage failure; audit_file remains immediately refused.", + "One independently authored finite dossier executes through the installed public API, asserting accepted/completed audit_report, 15 capabilities/five domains, immutable bytes and independently stated bundle/status fields in both formats. Input bytes remain unchanged.", + "All other build/inventory/canary/rebuild/platform metadata functions and tests remain AST-identical." + ] + }, + "tests/security/test_scaffold_inertness.py": { + "before_sha256": "7179bb00e004e833d7448172cae2068f912e25adb3860c7d5fba9d46396619ba", + "after_sha256": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee", + "original_test_function_count": 8, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "ScaffoldInertnessTests.test_imports_api_and_cli_are_inert" + ], + "unchanged_function_count": 8, + "migration": [ + "PROBE retains all application-stack filesystem/network/process/native/environment observers, loader exceptions, hostile protocol traps, input/output/package-byte checks and existing direct negative mutations.", + "Two file refusals retain their exact message. The two old bundle calls now require safe usage failures before input access.", + "A hostile nested object with valid options must produce a safe complete rejected report without executing caller protocols.", + "One independently authored finite source completes through the public API under the same observer, with expected accepted/completed state, 15 capabilities/five domains and JSON/Markdown bundle/status checks. No source mutation is allowed.", + "Counts now record two file refusals, two usage failures and two actual reports separately. CLI version/help/audit refusal behavior remains exact.", + "All negative tests remain identical. Import-time negatives terminate before the complete audit; the hostile bundle mutation still triggers the same observer before the finite-success path." + ] + }, + "tests/integration/test_preparation_capability_boundary.py": { + "before_sha256": "aaa25f2a0fd256d116599e135d975ba7a77ffb6a6ae468495342ba4e358e74f6", + "after_sha256": "c757f20cc1cc3d6abfdb160fa6a766242f07fd0046ee9e67be15280542260300", + "original_test_function_count": 10, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_capture_admission_and_navigation_are_distinct_private_components" + ], + "unchanged_function_count": 9, + "migration": [ + "All original capture/admission/navigation type and rejection assertions remain. Existing frozen hero, fault, quota and effects controls remain AST-identical.", + "The tail public boundary now checks the exact seven exports and a real accepted/completed report from the original sparse case, its 15 capabilities/five domains, both encoded bundle/status fields and unchanged source." + ] + }, + "tests/contract/test_analytical_observability.py": { + "before_sha256": "8c9f4ebeb9764a2e5c4ba98c38dfd98e1e8d9b57c26f37624c7cf8dd52631312", + "after_sha256": "ed307fd5243ea47e1561bd7ae797691ff710ed97f5b2009f012332da03de83c6", + "original_test_function_count": 18, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_private_outcome_is_immutable_and_has_no_public_report_or_options" + ], + "unchanged_function_count": 21, + "migration": [ + "All private frozen outcome, no public-field/method, no source/port retention, hidden private exports and exact private signatures remain.", + "Only the tail public boundary changes to exact seven exports and a real accepted/completed minimal report, 15 capabilities/five domains, both encoded bundle/status fields and unchanged source.", + "The original audit_file immediate-refusal assertion remains. Every other test/helper is AST-identical." + ] + } + }, + "parameterized_case_change": { + "removed_obsolete_case": "tests/scaffold/test_api_stubs.py::test_first_executable_statement_is_refusal[audit_bundle]", + "preserved_case": "tests/scaffold/test_api_stubs.py::test_first_executable_statement_is_refusal[audit_file]", + "reason": "W08 authorizes real in-memory execution. options-before-input safety is directly exercised by the existing hostile-options case and the new N06 boundary suite." + }, + "validation": { + "syntax": "All five files and their changed embedded subprocess scripts parse successfully.", + "execution": "No owner test execution. Root will run the actual combined W08 checkpoint with the pinned environment; no new test result is claimed.", + "additional_complete_invocations": { + "T02": 1, + "T03_positive_probe": 1, + "T05_changed_node": 1, + "T06_changed_node": 1 + }, + "recommended_scope": [ + "tests/scaffold/test_api_stubs.py", + "tests/scaffold/test_packaging.py", + "tests/security/test_scaffold_inertness.py", + "tests/integration/test_preparation_capability_boundary.py::test_capture_admission_and_navigation_are_distinct_private_components", + "tests/contract/test_analytical_observability.py::test_private_outcome_is_immutable_and_has_no_public_report_or_options" + ] + } + } + } + ], + "installed_migration": [ + { + "raw": { + "file": "p4w08-installed-migration.json", + "sha256": "e8181b9f6b1be5ae022b6912d2f4d19859be2e7ea837faaeaf7689649fa335fe", + "bytes": 4358 + }, + "record": { + "files": { + "tests/scaffold/test_ci_contract.py": { + "old_top_level_defs": 37, + "preserved_top_level_defs": [ + "require", + "unique", + "read_workflow", + "CiContractTests", + "junit_counts", + "JunitAccountingTests", + "save", + "run", + "tracked_bytes", + "tool_python", + "prepare_tools", + "policy", + "configure_context", + "current_binding", + "bound_record", + "ci_paths", + "entry_and_scope", + "guard_command", + "initialize_evidence", + "preflight", + "selected_profile", + "validate_documentation", + "prepare", + "suite_paths", + "collection_check", + "reconcile_suite", + "suite_environment", + "execute_suite", + "run_suite", + "archive_inventories", + "emit_summary", + "reconcile_preparation_commands", + "evidence_report", + "stage_failure", + "local_verify" + ], + "changed_top_level_defs": [ + "installed_receipts", + "DriverEvidenceTests" + ], + "removed_top_level_defs": [], + "before_sha256": "6070b92b44855cb0b4568ec4854bd3d5e06604cdca84d9951c0d8ce155b4a605", + "after_sha256": "d6e91cc44ad2967d4feaca45d3f9bb696e439c8ed2caa0a5e777de4deaf895ce" + }, + "tests/contract/test_phase2_transition.py": { + "old_top_level_defs": 2, + "preserved_top_level_defs": [ + "Phase2TransitionTests" + ], + "changed_top_level_defs": [ + "W08R01Tests" + ], + "removed_top_level_defs": [], + "before_sha256": "d476a8ba0ddba20a07d5b1670125d99824b1a5354ba20391fdc9982164671819", + "after_sha256": "4d2e6ff10d19820b33185d7fad76fa52fcf609a7d37f9cd32b439bf5d7455b22" + }, + "tests/integration/test_analytical_installed_runtime.py": { + "old_top_level_defs": 4, + "preserved_top_level_defs": [ + "_load", + "_inventory" + ], + "changed_top_level_defs": [ + "installed_runtime", + "test_clean_installed_analysis_original_heroes_and_completed_finite_case" + ], + "removed_top_level_defs": [], + "before_sha256": "434cb51f159da5ec71025e35130befe9ecbff95d5a8d613d1eaf897142ccafcb", + "after_sha256": "64f83d86e57b8ca52c85775cd89c50e448acebaa2fad291ef88c5d4495ff43c6" + }, + "tests/integration/test_public_installed_runtime.py": { + "old_top_level_defs": 0, + "preserved_top_level_defs": [], + "changed_top_level_defs": [], + "removed_top_level_defs": [], + "before_sha256": null, + "after_sha256": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01" + } + }, + "status": "frozen_for_root_scoped_verification", + "preserved": "No previous top-level definition or installed witness identity removed. Core preparation, original hero, finite private arithmetic, invalid inputs, effect observers, module hashes and three archive inventories remain. Only public refusal and corresponding receipt semantics are migrated.", + "actual_public_paths": [ + "direct_wheel", + "sdist_via_external_pinned_build_host_to_clean_target_purelib", + "sdist_rebuilt_wheel" + ], + "runtime_limit": "One public invocation for each existing preparation/analysis installed witness and one for each of two added install paths. No extra hero run or independent build matrix.", + "witness_scope": "Literal finite inventory, basis identities, unavailable fractions and families; complete JSON/Markdown bytes independently encoded from all sixteen public attributes. This is not all 228 obligation closure.", + "early_collection_attempt": { + "node": "CurrentVerificationTests::test_installed_receipts_bind_current_unit_activation_and_both_refusals", + "exit_code": 4, + "result": "No tests ran; wrong test class in scratch command. Correct class DriverEvidenceTests used next." + }, + "receipt_control_001": { + "passed": 1, + "successful_subtests": 40, + "junit": "p4w08-installed-receipt-control-001.xml" + }, + "receipt_control_002": { + "passed": 1, + "successful_subtests": 44, + "junit": "p4w08-installed-receipt-control-002.xml" + }, + "public_helper_smoke": "p4w08-installed-public-smoke-001.json", + "full_installed_verification": "not_yet_run; root will execute committed current scope", + "hosted_windows": "not_run_locally; no claim made" + } + } + ], + "product_smoke": [ + { + "raw": { + "file": "p4w08-product-smoke.json", + "sha256": "ce00618b52024f60745fb855ce55c991965928f5e4a9e50220b40d169b50bd8a", + "bytes": 2508 + }, + "record": { + "scope": "Small product smoke only, not full W08 acceptance", + "head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "exports": [ + "audit_bundle", + "audit_file", + "__version__", + "AuditReport", + "AuditAbort", + "AuditCancelled", + "AuditUsageError" + ], + "signature": "(bundle: object, *, options: object = None) -> source_integrity_toolkit.contracts.report.AuditReport", + "invalid_options_before_runtime": 5, + "valid_option_forms": 3, + "usage_contextmanager_preserves_identity": true, + "usage_fields_immutable": true, + "real_rejected_report": "validation_diagnostics", + "json_bytes": 2207, + "markdown_bytes": 2906, + "audit_file_bytes_unchanged": true, + "modules": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 8, + "promoted_modules": [ + "__init__.py", + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "api.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "reporting/markdown_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 12, + "entry_byte_protected_modules": 36, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "source_hashes": { + "src/source_integrity_toolkit/api.py": "1ce3a72b8cc064718133b75e4991e14ac4d56072cdf6f2017af292e449789f7f", + "src/source_integrity_toolkit/__init__.py": "79cb024eb81bcef26a8dc94100b995e27f6207e7b2aac343eab7c57e488532d0", + "src/source_integrity_toolkit/contracts/execution.py": "d11944bc016528f8642701f5ba6df49bb98697911edb2dd537fdd19dcae5a390" + } + } + } + ] + }, + "notes": [], + "status": "pending", + "status_meaning": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", + "recorded_at_utc": "2026-10-26T05:02:10.535014+00:00", + "evidence_scope": "Only explicitly recorded runs, source scopes and installed receipts are claimed. No new full-suite or four-profile success follows from this record.", + "reviewed_source_hashes": { + "README.md": "6710253de63e02fe8b4214a43cca208e197b564252a819468efaaebbc330e5f2", + "src/source_integrity_toolkit/__init__.py": "79cb024eb81bcef26a8dc94100b995e27f6207e7b2aac343eab7c57e488532d0", + "src/source_integrity_toolkit/api.py": "1ce3a72b8cc064718133b75e4991e14ac4d56072cdf6f2017af292e449789f7f", + "src/source_integrity_toolkit/contracts/execution.py": "d11944bc016528f8642701f5ba6df49bb98697911edb2dd537fdd19dcae5a390", + "tests/contract/test_analytical_observability.py": "ed307fd5243ea47e1561bd7ae797691ff710ed97f5b2009f012332da03de83c6", + "tests/contract/test_phase2_transition.py": "4d2e6ff10d19820b33185d7fad76fa52fcf609a7d37f9cd32b439bf5d7455b22", + "tests/contract/test_public_api.py": "7ca5422483ee15d0b9b98b8435bf672ea1bc60be3478559aafe3454f9830248a", + "tests/integration/test_analytical_installed_runtime.py": "64f83d86e57b8ca52c85775cd89c50e448acebaa2fad291ef88c5d4495ff43c6", + "tests/integration/test_preparation_capability_boundary.py": "c757f20cc1cc3d6abfdb160fa6a766242f07fd0046ee9e67be15280542260300", + "tests/integration/test_public_audit.py": "74d905212c0366794b21f6d9823f2b39187be3c8d20c77f84d612d3f79bab5ac", + "tests/integration/test_public_installed_runtime.py": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01", + "tests/scaffold/test_api_stubs.py": "cbac5ab7257f94d215a856b5125786115df3f215bebc358dac1a223ab3de05b1", + "tests/scaffold/test_ci_contract.py": "d6e91cc44ad2967d4feaca45d3f9bb696e439c8ed2caa0a5e777de4deaf895ce", + "tests/scaffold/test_packaging.py": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", + "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", + "tests/security/test_scaffold_inertness.py": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee" + } + }, + "historical_top_level_scope": "All pre-existing checkpoint changes, validation, package_boundary, failures, remaining, unchanged_boundaries, timestamps, publication note and original-owner repair fields retain their original historical scope. Current W08 facts are in w08_checkpoint; no previous record is recursively copied or erased." } diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index 2776c45..eb814ac 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,7 +1,7 @@ { "format": "sit-phase4-report-coverage/0.1", - "unit": "P4-W07", - "status": "W07 internal whole-invocation report composition and safe stopping verified; public API activation and all 228 public field obligations remain pending", + "unit": "P4-W08", + "status": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", @@ -17425,5 +17425,602 @@ "bytes": 9586 } } + }, + "w08_verification": { + "owner": "P4-W08", + "activation_stage": 8, + "inherited_checkpoint": "f2e4b2a8b8b6eb7aed4c6215e8504cc7ee1daaa2", + "authorization": "Approved PHASE_4_PLAN.md and explicit user instruction W08 继续.", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "changed_scope": [ + "README.md", + "phase4/implementation_evidence.json", + "phase4/report_contract_coverage.json", + "src/source_integrity_toolkit/__init__.py", + "src/source_integrity_toolkit/api.py", + "src/source_integrity_toolkit/contracts/execution.py", + "tests/contract/test_analytical_observability.py", + "tests/contract/test_phase2_transition.py", + "tests/contract/test_public_api.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/integration/test_preparation_capability_boundary.py", + "tests/integration/test_public_audit.py", + "tests/integration/test_public_installed_runtime.py", + "tests/scaffold/test_api_stubs.py", + "tests/scaffold/test_ci_contract.py", + "tests/scaffold/test_packaging.py", + "tests/security/test_public_api_boundary.py", + "tests/security/test_scaffold_inertness.py" + ], + "implementation": [ + "Public audit_bundle checks exact trusted invocation options before dossier access and calls the existing same-invocation runtime.", + "Seven public names, exact signatures, immutable sixteen-root report and cached JSON/Markdown access are exposed at development version 0.1.0.dev0.", + "None, empty exact dict and raw_file_digest=False select the same behavior; true, unknown keys and hostile types fail with fixed AuditUsageError.", + "AuditUsageError permits normal traceback propagation while retaining fixed payload-free message/code and immutable public fields.", + "Legacy refusal assertions migrate to direct public behavior; original file/CLI refusals and effect observers remain.", + "Existing installed preparation/analysis witnesses retain their scopes and add public delivery in direct-wheel, sdist and rebuilt-wheel clean installations." + ], + "remaining": [ + "All 228 field obligation rows and public-envelope/rendering verified counts retain their prior values; W09 closes those obligations using their actual evidence.", + "Original full-reference/hero completion is limited by unchanged budgets; finite successful witnesses do not replace original hero outcomes.", + "Final four-profile candidate acceptance and raw-evidence review remain W10 work.", + "File/native/CLI audit execution, merge, release, tags and version promotion remain outside W08." + ], + "previous_state": { + "current_unit": "P4-W02", + "activation_stage": 7, + "status": "Preventive original-owner W02 boundary assertion repair verified at clean activation stage7; the original refusal path passed its exact targeted test, and the future stage8 delivery path awaits W08 candidate verification.", + "owner_authorization": "Approved PHASE_4_PLAN.md, explicit user instruction to continue W07, and original-owner repair authorization in plan section 9; plan hash 5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "scoped_runs": [ + { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "-k", + "exports or signatures or invalid_options or safe_failures or direct_report or hostile_options or usage_and_file_refusals", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-public-fast-001.xml" + ], + "exit_code": 1, + "elapsed_seconds": 0.8179823909995321, + "source_files": [ + "src/source_integrity_toolkit/api.py", + "src/source_integrity_toolkit/__init__.py", + "src/source_integrity_toolkit/contracts/execution.py", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py" + ], + "source_unchanged": true, + "scope": "Only cheap public export/signature/usage/transport and hostile-options controls; no complete audit invocation selected." + }, + "distinct_case_count": 36, + "case_counts": { + "passed": 35, + "failure": 1, + "error": 0, + "skipped": 0 + }, + "junit_suite_tests_including_any_subtests": 36, + "junit_seconds": 0.459, + "identities_sha256": "9514697ee3c2ad30adb423ee55711afcccb9c3f171da6e7cf5dde23f3f829a50", + "raw": [ + { + "file": "p4w08-public-fast-001-exit.json", + "sha256": "6a211afa813a909cfca725d2cd3f28d9bb4bccb5437f1f6b631cf81819e45613", + "bytes": 918 + }, + { + "file": "p4w08-public-fast-001.xml", + "sha256": "e20dc44140c8ae44fa7fc58a6525b12c0ea983df194bf293152515e2388fba90", + "bytes": 6421 + }, + { + "file": "p4w08-public-fast-001.log", + "sha256": "74c4387a37553964afc632c499e3b47e0692f33161909c25ab7e56fc4f4da350", + "bytes": 954 + }, + { + "file": "p4w08-public-fast-001-source-before.json", + "sha256": "42545bd31040ee31517501ff063a07248c75b617d39b3c61b53c5758dbc7eba7", + "bytes": 574 + }, + { + "file": "p4w08-public-fast-001-source-after.json", + "sha256": "42545bd31040ee31517501ff063a07248c75b617d39b3c61b53c5758dbc7eba7", + "bytes": 574 + } + ], + "source_files": 5, + "source_hashes_unchanged": true, + "passed_in_recorded_scope": false + }, + { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "-k", + "exports or signatures or invalid_options or safe_failures or direct_report or hostile_options or usage_and_file_refusals", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-public-fast-002.xml" + ], + "exit_code": 0, + "elapsed_seconds": 0.6166829379999399, + "source_files": [ + "src/source_integrity_toolkit/api.py", + "src/source_integrity_toolkit/__init__.py", + "src/source_integrity_toolkit/contracts/execution.py", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py" + ], + "source_unchanged": true, + "scope": "Only cheap public export/signature/usage/transport and hostile-options controls; no complete audit invocation selected." + }, + "distinct_case_count": 36, + "case_counts": { + "passed": 36, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_suite_tests_including_any_subtests": 36, + "junit_seconds": 0.328, + "identities_sha256": "9514697ee3c2ad30adb423ee55711afcccb9c3f171da6e7cf5dde23f3f829a50", + "raw": [ + { + "file": "p4w08-public-fast-002-exit.json", + "sha256": "4db84b655497a72b35680e45b005ecbc6186bd5bfe687504ae7182cd7e106c17", + "bytes": 918 + }, + { + "file": "p4w08-public-fast-002.xml", + "sha256": "90ff21521e49fed9edb011b300bccb756339ba4a7321fe73cf5a89d47d49e443", + "bytes": 5769 + }, + { + "file": "p4w08-public-fast-002.log", + "sha256": "317297473832c20c7b2f9e5e33e0738e61b1c9c858737546753656c5d0dae996", + "bytes": 114 + }, + { + "file": "p4w08-public-fast-002-source-before.json", + "sha256": "51576f20875c5f90b49f56f146634b69748ec0415519fdea4aaeb2e692fd90e5", + "bytes": 574 + }, + { + "file": "p4w08-public-fast-002-source-after.json", + "sha256": "51576f20875c5f90b49f56f146634b69748ec0415519fdea4aaeb2e692fd90e5", + "bytes": 574 + } + ], + "source_files": 5, + "source_hashes_unchanged": true, + "passed_in_recorded_scope": true + } + ], + "installed_receipts": [], + "supporting_receipts": { + "public_test_migration": [ + { + "raw": { + "file": "p4w08-public-tests-migration.json", + "sha256": "dc2663da8863d6f6f04afc3e5b710156d6534ba457984b4b88487c55bc25c69f", + "bytes": 3582 + }, + "record": { + "owner": "P4-W08", + "base": "d1b812315364576d0099518abd5ae152531c8fc8", + "paths": [ + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py" + ], + "source_hashes": { + "tests/contract/test_public_api.py": "7ca5422483ee15d0b9b98b8435bf672ea1bc60be3478559aafe3454f9830248a", + "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", + "tests/integration/test_public_audit.py": "74d905212c0366794b21f6d9823f2b39187be3c8d20c77f84d612d3f79bab5ac" + }, + "base_hashes": { + "tests/security/test_public_api_boundary.py": "5d588685427287a425fdf6fb2c29297209c933e6b1c8705b5d4c31e56da45cc9", + "tests/integration/test_public_audit.py": "af149a79c3de6843b407aa2134ab2d2c7db712256f3f173146666f53da2e564d" + }, + "N06": { + "new_cases": 31, + "purpose": "Exact public export order/signatures, three real legal options with shared reports, all 16 read-only roots and byte caches, 21 invalid option cases rejected before runtime, public safe exception/contextmanager identity, constructor refusal." + }, + "N11": { + "old_cases": 20, + "new_cases": 28, + "renamed_tests": { + "test_internal_invocation_rejects_hostile_input_without_executing_protocols": "test_public_invocation_rejects_hostile_input_without_executing_protocols", + "test_internal_native_fault_surface_does_not_format_or_retain_source_exception": "test_public_native_fault_surface_does_not_format_or_retain_source_exception", + "test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes": "test_public_report_contains_only_frozen_disclosure_and_two_cached_bytes", + "test_w07_public_entry_points_still_refuse_without_touching_arguments": "test_public_usage_and_file_refusals_leave_hostile_arguments_untouched", + "test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect": "test_public_complete_invocation_has_no_observed_file_network_native_or_process_effect" + }, + "retained": "All original input/fault/cache/effect assertions and all six observer negative controls; actual invocation now through public api.audit_bundle. audit_file hostile refusal unchanged.", + "added": "Eight hostile options controls prove no dossier/runtime/custom repr/hash/equality protocol use." + }, + "N12": { + "cases": 14, + "retained_test_names_and_order": true, + "private_entry_regression_ast_unchanged": true, + "inherited_w07_python313_repair_test_ast_unchanged": true, + "change": "Five original complete/rejection/stop invocation call sites now use package audit_bundle; independently authored finite inputs, semantic assertions, exact-format oracles, same-ledger observations, original private regression and full-reference real budget outcome unchanged." + }, + "validation": { + "quick_run": "p4w08-public-fast-002", + "result": "36 passed, 23 deselected; cheap surface and option controls only", + "source_scope": "5 relevant files before/after hashes unchanged", + "first_attempt": "p4w08-public-fast-001 retained: 35 passed, 1 failed because new N06 constructor-message regex omitted existing final period; corrected expected literal without product change.", + "full_public_execution": "Await root final frozen-source verification.", + "subsequent_N11_strengthening": "The collision-key custom hash now records calls; caller dictionary construction is excluded by clearing only setup calls before the public invocation. Root final frozen run covers the added observer." + } + } + } + ], + "legacy_refusal_migration": [ + { + "raw": { + "file": "p4w08-refusal-migration.json", + "sha256": "ec8c451cc9b3220578ec0fc0f23d5b48fd0d7da2fd0105d96b4b2172e741609e", + "bytes": 7646 + }, + "record": { + "base_head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "owner": "P4-W08", + "scope": [ + "T01", + "T02", + "T03", + "T05", + "T06" + ], + "files": { + "tests/scaffold/test_api_stubs.py": { + "before_sha256": "0441d0bbb735e70225331099c5c01688b24af1877eb63ef12796de00bab9974a", + "after_sha256": "cbac5ab7257f94d215a856b5125786115df3f215bebc358dac1a223ab3de05b1", + "original_test_function_count": 5, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_first_executable_statement_is_refusal", + "test_hostile_arguments_and_options_remain_untouched", + "test_plain_bundle_remains_unchanged" + ], + "unchanged_function_count": 3, + "migration": [ + "The audit_file immediate-raise AST case is unchanged. The obsolete audit_bundle immediate-raise AST parameter is removed because W08 activates execution; its pre-input safety moves to the existing hostile arguments/options case and dedicated N06 options-first tests.", + "Both hostile argument identities remain. Bundle now requires exact AuditUsageError/fixed message without invoking the hostile object; file keeps NotImplementedError and its original message.", + "The original opaque mutable source remains the same object with identical nested content after a real validation_diagnostics rejection; both JSON and Markdown independently expose rejected state.", + "Original file bytes/output-directory checks and both exact keyword-only signatures are unchanged." + ] + }, + "tests/scaffold/test_packaging.py": { + "before_sha256": "cfc891098830d9adf1f2ee3a0c3bcc06e884fb00f356aa5a8e1822feb1aa5d93", + "after_sha256": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", + "original_test_function_count": 9, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_wheel_installs_without_developer_tools" + ], + "unchanged_function_count": 11, + "migration": [ + "Only the explicitly approved clean-wheel test body changes. Exact version, zero developer/runtime dependencies, clean offline venv installation, sit version/help/audit exit and no output-directory creation remain.", + "Bundle invalid options now produce fixed safe usage failure; audit_file remains immediately refused.", + "One independently authored finite dossier executes through the installed public API, asserting accepted/completed audit_report, 15 capabilities/five domains, immutable bytes and independently stated bundle/status fields in both formats. Input bytes remain unchanged.", + "All other build/inventory/canary/rebuild/platform metadata functions and tests remain AST-identical." + ] + }, + "tests/security/test_scaffold_inertness.py": { + "before_sha256": "7179bb00e004e833d7448172cae2068f912e25adb3860c7d5fba9d46396619ba", + "after_sha256": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee", + "original_test_function_count": 8, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "ScaffoldInertnessTests.test_imports_api_and_cli_are_inert" + ], + "unchanged_function_count": 8, + "migration": [ + "PROBE retains all application-stack filesystem/network/process/native/environment observers, loader exceptions, hostile protocol traps, input/output/package-byte checks and existing direct negative mutations.", + "Two file refusals retain their exact message. The two old bundle calls now require safe usage failures before input access.", + "A hostile nested object with valid options must produce a safe complete rejected report without executing caller protocols.", + "One independently authored finite source completes through the public API under the same observer, with expected accepted/completed state, 15 capabilities/five domains and JSON/Markdown bundle/status checks. No source mutation is allowed.", + "Counts now record two file refusals, two usage failures and two actual reports separately. CLI version/help/audit refusal behavior remains exact.", + "All negative tests remain identical. Import-time negatives terminate before the complete audit; the hostile bundle mutation still triggers the same observer before the finite-success path." + ] + }, + "tests/integration/test_preparation_capability_boundary.py": { + "before_sha256": "aaa25f2a0fd256d116599e135d975ba7a77ffb6a6ae468495342ba4e358e74f6", + "after_sha256": "c757f20cc1cc3d6abfdb160fa6a766242f07fd0046ee9e67be15280542260300", + "original_test_function_count": 10, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_capture_admission_and_navigation_are_distinct_private_components" + ], + "unchanged_function_count": 9, + "migration": [ + "All original capture/admission/navigation type and rejection assertions remain. Existing frozen hero, fault, quota and effects controls remain AST-identical.", + "The tail public boundary now checks the exact seven exports and a real accepted/completed report from the original sparse case, its 15 capabilities/five domains, both encoded bundle/status fields and unchanged source." + ] + }, + "tests/contract/test_analytical_observability.py": { + "before_sha256": "8c9f4ebeb9764a2e5c4ba98c38dfd98e1e8d9b57c26f37624c7cf8dd52631312", + "after_sha256": "ed307fd5243ea47e1561bd7ae797691ff710ed97f5b2009f012332da03de83c6", + "original_test_function_count": 18, + "original_ordered_test_function_names_preserved": true, + "changed_functions": [ + "test_private_outcome_is_immutable_and_has_no_public_report_or_options" + ], + "unchanged_function_count": 21, + "migration": [ + "All private frozen outcome, no public-field/method, no source/port retention, hidden private exports and exact private signatures remain.", + "Only the tail public boundary changes to exact seven exports and a real accepted/completed minimal report, 15 capabilities/five domains, both encoded bundle/status fields and unchanged source.", + "The original audit_file immediate-refusal assertion remains. Every other test/helper is AST-identical." + ] + } + }, + "parameterized_case_change": { + "removed_obsolete_case": "tests/scaffold/test_api_stubs.py::test_first_executable_statement_is_refusal[audit_bundle]", + "preserved_case": "tests/scaffold/test_api_stubs.py::test_first_executable_statement_is_refusal[audit_file]", + "reason": "W08 authorizes real in-memory execution. options-before-input safety is directly exercised by the existing hostile-options case and the new N06 boundary suite." + }, + "validation": { + "syntax": "All five files and their changed embedded subprocess scripts parse successfully.", + "execution": "No owner test execution. Root will run the actual combined W08 checkpoint with the pinned environment; no new test result is claimed.", + "additional_complete_invocations": { + "T02": 1, + "T03_positive_probe": 1, + "T05_changed_node": 1, + "T06_changed_node": 1 + }, + "recommended_scope": [ + "tests/scaffold/test_api_stubs.py", + "tests/scaffold/test_packaging.py", + "tests/security/test_scaffold_inertness.py", + "tests/integration/test_preparation_capability_boundary.py::test_capture_admission_and_navigation_are_distinct_private_components", + "tests/contract/test_analytical_observability.py::test_private_outcome_is_immutable_and_has_no_public_report_or_options" + ] + } + } + } + ], + "installed_migration": [ + { + "raw": { + "file": "p4w08-installed-migration.json", + "sha256": "e8181b9f6b1be5ae022b6912d2f4d19859be2e7ea837faaeaf7689649fa335fe", + "bytes": 4358 + }, + "record": { + "files": { + "tests/scaffold/test_ci_contract.py": { + "old_top_level_defs": 37, + "preserved_top_level_defs": [ + "require", + "unique", + "read_workflow", + "CiContractTests", + "junit_counts", + "JunitAccountingTests", + "save", + "run", + "tracked_bytes", + "tool_python", + "prepare_tools", + "policy", + "configure_context", + "current_binding", + "bound_record", + "ci_paths", + "entry_and_scope", + "guard_command", + "initialize_evidence", + "preflight", + "selected_profile", + "validate_documentation", + "prepare", + "suite_paths", + "collection_check", + "reconcile_suite", + "suite_environment", + "execute_suite", + "run_suite", + "archive_inventories", + "emit_summary", + "reconcile_preparation_commands", + "evidence_report", + "stage_failure", + "local_verify" + ], + "changed_top_level_defs": [ + "installed_receipts", + "DriverEvidenceTests" + ], + "removed_top_level_defs": [], + "before_sha256": "6070b92b44855cb0b4568ec4854bd3d5e06604cdca84d9951c0d8ce155b4a605", + "after_sha256": "d6e91cc44ad2967d4feaca45d3f9bb696e439c8ed2caa0a5e777de4deaf895ce" + }, + "tests/contract/test_phase2_transition.py": { + "old_top_level_defs": 2, + "preserved_top_level_defs": [ + "Phase2TransitionTests" + ], + "changed_top_level_defs": [ + "W08R01Tests" + ], + "removed_top_level_defs": [], + "before_sha256": "d476a8ba0ddba20a07d5b1670125d99824b1a5354ba20391fdc9982164671819", + "after_sha256": "4d2e6ff10d19820b33185d7fad76fa52fcf609a7d37f9cd32b439bf5d7455b22" + }, + "tests/integration/test_analytical_installed_runtime.py": { + "old_top_level_defs": 4, + "preserved_top_level_defs": [ + "_load", + "_inventory" + ], + "changed_top_level_defs": [ + "installed_runtime", + "test_clean_installed_analysis_original_heroes_and_completed_finite_case" + ], + "removed_top_level_defs": [], + "before_sha256": "434cb51f159da5ec71025e35130befe9ecbff95d5a8d613d1eaf897142ccafcb", + "after_sha256": "64f83d86e57b8ca52c85775cd89c50e448acebaa2fad291ef88c5d4495ff43c6" + }, + "tests/integration/test_public_installed_runtime.py": { + "old_top_level_defs": 0, + "preserved_top_level_defs": [], + "changed_top_level_defs": [], + "removed_top_level_defs": [], + "before_sha256": null, + "after_sha256": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01" + } + }, + "status": "frozen_for_root_scoped_verification", + "preserved": "No previous top-level definition or installed witness identity removed. Core preparation, original hero, finite private arithmetic, invalid inputs, effect observers, module hashes and three archive inventories remain. Only public refusal and corresponding receipt semantics are migrated.", + "actual_public_paths": [ + "direct_wheel", + "sdist_via_external_pinned_build_host_to_clean_target_purelib", + "sdist_rebuilt_wheel" + ], + "runtime_limit": "One public invocation for each existing preparation/analysis installed witness and one for each of two added install paths. No extra hero run or independent build matrix.", + "witness_scope": "Literal finite inventory, basis identities, unavailable fractions and families; complete JSON/Markdown bytes independently encoded from all sixteen public attributes. This is not all 228 obligation closure.", + "early_collection_attempt": { + "node": "CurrentVerificationTests::test_installed_receipts_bind_current_unit_activation_and_both_refusals", + "exit_code": 4, + "result": "No tests ran; wrong test class in scratch command. Correct class DriverEvidenceTests used next." + }, + "receipt_control_001": { + "passed": 1, + "successful_subtests": 40, + "junit": "p4w08-installed-receipt-control-001.xml" + }, + "receipt_control_002": { + "passed": 1, + "successful_subtests": 44, + "junit": "p4w08-installed-receipt-control-002.xml" + }, + "public_helper_smoke": "p4w08-installed-public-smoke-001.json", + "full_installed_verification": "not_yet_run; root will execute committed current scope", + "hosted_windows": "not_run_locally; no claim made" + } + } + ], + "product_smoke": [ + { + "raw": { + "file": "p4w08-product-smoke.json", + "sha256": "ce00618b52024f60745fb855ce55c991965928f5e4a9e50220b40d169b50bd8a", + "bytes": 2508 + }, + "record": { + "scope": "Small product smoke only, not full W08 acceptance", + "head": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "exports": [ + "audit_bundle", + "audit_file", + "__version__", + "AuditReport", + "AuditAbort", + "AuditCancelled", + "AuditUsageError" + ], + "signature": "(bundle: object, *, options: object = None) -> source_integrity_toolkit.contracts.report.AuditReport", + "invalid_options_before_runtime": 5, + "valid_option_forms": 3, + "usage_contextmanager_preserves_identity": true, + "usage_fields_immutable": true, + "real_rejected_report": "validation_diagnostics", + "json_bytes": 2207, + "markdown_bytes": 2906, + "audit_file_bytes_unchanged": true, + "modules": { + "ok": true, + "checked_modules": 48, + "issues": [], + "activation_stage": 8, + "promoted_modules": [ + "__init__.py", + "analysis/context.py", + "analysis/contribution_profile.py", + "analysis/correction_outcomes.py", + "analysis/correction_routes.py", + "analysis/evaluator_lineage.py", + "analysis/findings.py", + "analysis/human_review.py", + "analysis/inventory.py", + "analysis/origins.py", + "analysis/presence.py", + "analysis/process_comparison.py", + "api.py", + "contracts/bundle.py", + "contracts/constants.py", + "contracts/evidence.py", + "contracts/execution.py", + "contracts/report.py", + "contracts/results.py", + "graph/cycles.py", + "graph/projections.py", + "graph/traversal.py", + "graph/witnesses.py", + "io/input_file.py", + "reporting/assemble.py", + "reporting/escaping.py", + "reporting/json_report.py", + "reporting/markdown_report.py", + "runtime/boundary.py", + "runtime/diagnostics.py", + "runtime/disclosure.py", + "runtime/resources.py", + "validation/limits.py", + "validation/references.py", + "validation/semantics.py", + "validation/structure.py" + ], + "protected_modules": 12, + "entry_byte_protected_modules": 36, + "scope": "current package inspection only; no checkout authorization or analytical conformance claim" + }, + "source_hashes": { + "src/source_integrity_toolkit/api.py": "1ce3a72b8cc064718133b75e4991e14ac4d56072cdf6f2017af292e449789f7f", + "src/source_integrity_toolkit/__init__.py": "79cb024eb81bcef26a8dc94100b995e27f6207e7b2aac343eab7c57e488532d0", + "src/source_integrity_toolkit/contracts/execution.py": "d11944bc016528f8642701f5ba6df49bb98697911edb2dd537fdd19dcae5a390" + } + } + } + ] + }, + "notes": [], + "status": "pending", + "status_meaning": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", + "recorded_at_utc": "2026-10-26T05:02:10.535014+00:00", + "evidence_scope": "Only explicitly recorded runs, source scopes and installed receipts are claimed. No new full-suite or four-profile success follows from this record.", + "reviewed_source_hashes": { + "README.md": "6710253de63e02fe8b4214a43cca208e197b564252a819468efaaebbc330e5f2", + "src/source_integrity_toolkit/__init__.py": "79cb024eb81bcef26a8dc94100b995e27f6207e7b2aac343eab7c57e488532d0", + "src/source_integrity_toolkit/api.py": "1ce3a72b8cc064718133b75e4991e14ac4d56072cdf6f2017af292e449789f7f", + "src/source_integrity_toolkit/contracts/execution.py": "d11944bc016528f8642701f5ba6df49bb98697911edb2dd537fdd19dcae5a390", + "tests/contract/test_analytical_observability.py": "ed307fd5243ea47e1561bd7ae797691ff710ed97f5b2009f012332da03de83c6", + "tests/contract/test_phase2_transition.py": "4d2e6ff10d19820b33185d7fad76fa52fcf609a7d37f9cd32b439bf5d7455b22", + "tests/contract/test_public_api.py": "7ca5422483ee15d0b9b98b8435bf672ea1bc60be3478559aafe3454f9830248a", + "tests/integration/test_analytical_installed_runtime.py": "64f83d86e57b8ca52c85775cd89c50e448acebaa2fad291ef88c5d4495ff43c6", + "tests/integration/test_preparation_capability_boundary.py": "c757f20cc1cc3d6abfdb160fa6a766242f07fd0046ee9e67be15280542260300", + "tests/integration/test_public_audit.py": "74d905212c0366794b21f6d9823f2b39187be3c8d20c77f84d612d3f79bab5ac", + "tests/integration/test_public_installed_runtime.py": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01", + "tests/scaffold/test_api_stubs.py": "cbac5ab7257f94d215a856b5125786115df3f215bebc358dac1a223ab3de05b1", + "tests/scaffold/test_ci_contract.py": "d6e91cc44ad2967d4feaca45d3f9bb696e439c8ed2caa0a5e777de4deaf895ce", + "tests/scaffold/test_packaging.py": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", + "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", + "tests/security/test_scaffold_inertness.py": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee" + } } } diff --git a/src/source_integrity_toolkit/__init__.py b/src/source_integrity_toolkit/__init__.py index 7bea94e..f3d1e61 100644 --- a/src/source_integrity_toolkit/__init__.py +++ b/src/source_integrity_toolkit/__init__.py @@ -1,12 +1,15 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Source Integrity Toolkit: unreleased, non-operational Phase 1 scaffold. +"""Source Integrity Toolkit: development in-memory auditing and reports. -Public names are reserved by PHASE_1_PLAN.md section 4.1. -Neither importing the package nor calling its audit stubs audits evidence. +audit_bundle delivers an immutable report with completed JSON and Markdown +encodings. File auditing and CLI audit execution remain unavailable. +Importing this package does not start an audit. """ from .api import audit_bundle, audit_file from .contracts.constants import SCAFFOLD_VERSION as __version__ +from .contracts.execution import AuditAbort, AuditCancelled, AuditUsageError +from .contracts.report import AuditReport -__all__ = ("audit_bundle", "audit_file", "__version__") +__all__ = ("audit_bundle", "audit_file", "__version__", "AuditReport", "AuditAbort", "AuditCancelled", "AuditUsageError") diff --git a/src/source_integrity_toolkit/api.py b/src/source_integrity_toolkit/api.py index 0603b4d..0cfb53d 100644 --- a/src/source_integrity_toolkit/api.py +++ b/src/source_integrity_toolkit/api.py @@ -1,19 +1,35 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Public-operation reservations; PHASE_1_PLAN.md sections 4.1 and 6. +"""Public in-memory audit composition; PHASE_4_PLAN.md section 4.1. -Owner: RUNTIME_BOUNDARY, public composition surface. Behavior unimplemented. -All arguments, including options, remain entirely untouched by these stubs. +Owner: RUNTIME_BOUNDARY. Trusted invocation options are checked before the +dossier reaches the existing bounded runtime. File auditing remains reserved. """ from typing import NoReturn +from .contracts.execution import AuditUsageError +from .contracts.report import AuditReport +from .runtime.boundary import _audit_value -def audit_bundle(bundle: object, *, options: object = None) -> NoReturn: - """Refuse immediately; never inspect or normalize a supplied dossier.""" - raise NotImplementedError( - "Source Integrity Toolkit audit is not implemented in the Phase 1 scaffold." - ) + +def audit_bundle(bundle: object, *, options: object = None) -> AuditReport: + """Audit an in-memory dossier and return its complete immutable report. + + Options are limited to an exact dict containing raw_file_digest=False. + None and an empty dict select the same fixed in-process behavior. Invalid + options fail before input access and cannot supply a budget or callback. + """ + if options is not None: + if type(options) is not dict or len(options) > 1: + raise AuditUsageError() from None + # Native iteration over at most one pair avoids dictionary lookup: + # an untrusted key must never participate in a hash or equality call. + for key, value in options.items(): + if (type(key) is not str or key != "raw_file_digest" or + type(value) is not bool or value): + raise AuditUsageError() from None + return _audit_value(bundle) def audit_file( diff --git a/src/source_integrity_toolkit/contracts/execution.py b/src/source_integrity_toolkit/contracts/execution.py index 78b2725..c6ac1a2 100644 --- a/src/source_integrity_toolkit/contracts/execution.py +++ b/src/source_integrity_toolkit/contracts/execution.py @@ -274,7 +274,7 @@ def __delattr__(self, name): @dataclass(frozen=True, slots=True, repr=False, eq=False) -class AuditUsageError(ValueError): +class _AuditUsageErrorFields(ValueError): """A fixed, payload-free trusted-invocation failure, before input access.""" @property def code(self) -> str: @@ -295,6 +295,20 @@ def __repr__(self) -> str: return "AuditUsageError()" +class AuditUsageError(_AuditUsageErrorFields): + """Immutable safe usage failure with normal traceback propagation.""" + __slots__ = () + + def __setattr__(self, name, value): + if type(name) is str and name == "__traceback__": + Exception.with_traceback(self, value) + return + raise AttributeError("AuditUsageError fields are immutable.") + + def __delattr__(self, name): + raise AttributeError("AuditUsageError fields are immutable.") + + class _ReportEncodingPort(_FinalizationPort, Protocol): """Restricted byte accounting on the existing finalization ledger. diff --git a/tests/contract/test_analytical_observability.py b/tests/contract/test_analytical_observability.py index 89dc1c8..2d82c2a 100644 --- a/tests/contract/test_analytical_observability.py +++ b/tests/contract/test_analytical_observability.py @@ -431,13 +431,26 @@ def test_private_outcome_is_immutable_and_has_no_public_report_or_options(full_o for name in ('report_kind', 'report_contract', 'report_id', 'schema_version', 'run', 'input_validation', 'overall_level', 'max_level', 'to_json'): assert not hasattr(out, name) - assert public.__all__ == ('audit_bundle', 'audit_file', '__version__') + assert public.__all__ == ('audit_bundle', 'audit_file', '__version__', 'AuditReport', + 'AuditAbort', 'AuditCancelled', 'AuditUsageError') for finding in out.findings: assert not hasattr(finding.witness, 'job_port') and not hasattr(finding.witness, 'prepared') assert not hasattr(public, '_analyze_value') and not hasattr(public, '_analyze_utf8') assert tuple(inspect.signature(boundary._analyze_value).parameters) == ('value',) assert tuple(inspect.signature(boundary._analyze_utf8).parameters) == ('raw',) - with pytest.raises(NotImplementedError): - public.audit_bundle(cases._minimal_value()) + source = cases._minimal_value() + before = copy.deepcopy(source) + delivered = public.audit_bundle(source) + assert type(delivered) is public.AuditReport + assert delivered.report_kind == 'audit_report' + assert delivered.run['processing_state'] == 'completed' + assert delivered.input_validation['state'] == 'accepted' + document = json.loads(delivered.to_json_bytes()) + assert document['input_identity']['bundle_id'] == 'bundle' + assert len(document['capabilities']) == 15 + assert len(document['observability_domains']) == 5 + assert b'"processing_state": "completed"' in delivered.to_markdown_bytes() + assert b'"bundle_id": "bundle"' in delivered.to_markdown_bytes() + assert source == before with pytest.raises(NotImplementedError): public.audit_file(object(), object()) diff --git a/tests/contract/test_phase2_transition.py b/tests/contract/test_phase2_transition.py index 1ecc9a4..6910c2e 100644 --- a/tests/contract/test_phase2_transition.py +++ b/tests/contract/test_phase2_transition.py @@ -77,7 +77,9 @@ def mktemp(self, name): self.assertEqual(len(modules), 48) fixtures = [json.loads((ROOT / "tests/fixtures/hero" / (name + ".bundle.json")).read_bytes()) for name in ("H7-01", "H7-V01", "H7-V02", "H7-V03")] - script = r''' + public_spec = importlib.util.spec_from_file_location("sit_public_installed_witness", ROOT / "tests/integration/test_public_installed_runtime.py") + public = importlib.util.module_from_spec(public_spec); public_spec.loader.exec_module(public) + script = public.public_script() + r''' import sys,json,hashlib,importlib,importlib.metadata,dataclasses,socket,ctypes import encodings.idna from pathlib import Path @@ -108,19 +110,19 @@ def audit(event,args): assert not hasattr(result,'results') and not hasattr(result,'max_level') assert _prepare_evidence_value({}).input_state=='rejected' assert _prepare_evidence_utf8(b'{}').input_state=='rejected' -for call,args in ((package.audit_bundle,(object(),)),(package.audit_file,(object(),object()))): - try:call(*args,options=object()) - except NotImplementedError:pass - else:raise AssertionError('public_audit_activated') +public=_public_witness(payload['public']['source'],payload['public']['expected']) +try:package.audit_file(object(),object(),options=object()) +except NotImplementedError:pass +else:raise AssertionError('file_audit_activated') assert events==[] for probe in (lambda:open('FICTIONAL_MUST_NOT_OPEN','rb'),lambda:socket.getaddrinfo('fictional.invalid',443),lambda:ctypes.CDLL('FICTIONAL_MUST_NOT_LOAD')): try:probe() except RuntimeError:pass assert events==['open','socket.getaddrinfo','ctypes.dlopen'] -print(json.dumps({'modules':loaded,'admitted_fixture_modes':8,'rejected_empty_modes':2,'public_refusals':2,'normal_effects':[],'negative_events':events,'runtime_distributions':['source-integrity-toolkit']})) +print(json.dumps({'modules':loaded,'admitted_fixture_modes':8,'rejected_empty_modes':2,'public_refusals':1,'public_audit':public,'normal_effects':[],'negative_events':events,'runtime_distributions':['source-integrity-toolkit']})) ''' run = subprocess.run([str(python), "-I", "-B", "-c", script], cwd=runtime_work, - input=json.dumps({"modules": modules, "fixtures": fixtures}).encode(), capture_output=True, timeout=90) + input=json.dumps({"modules": modules, "fixtures": fixtures, "public": public.public_payload()}).encode(), capture_output=True, timeout=90) self.assertEqual(run.returncode, 0, run.stderr.decode(errors="replace")) self.assertEqual(run.stderr, b"") result = json.loads(run.stdout) @@ -143,7 +145,8 @@ def audit(event,args): self.assertEqual(inventory[1]["members"], inventory[2]["members"]) state = guard.current_local_state(ROOT) record = {**state, - "scope": "W08 clean installed preparation; no public audit or native-file certification", + "scope": "Clean installed preparation and P4-W08 public report; no native-file certification", + "public_test_sources": {"tests/integration/test_public_installed_runtime.py": hashlib.sha256((ROOT / "tests/integration/test_public_installed_runtime.py").read_bytes()).hexdigest()}, "ok": True, "runtime": result, "distributions": inventory} # Fixed developer evidence destination; no source payload or binary upload. destination = (Path(os.environ["RUNNER_TEMP"]) / "sit-p3/evidence" if os.environ.get("GITHUB_ACTIONS") == "true" else work) diff --git a/tests/contract/test_public_api.py b/tests/contract/test_public_api.py new file mode 100644 index 0000000..8ec7949 --- /dev/null +++ b/tests/contract/test_public_api.py @@ -0,0 +1,235 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""W08's public memory surface, with real calls and independent expectations. + +The finite dossier is the existing independently authored W07 case. These +checks cover the public interface; field-by-field closure remains W09 work. +""" +from collections.abc import Mapping +from contextlib import contextmanager +import copy +import importlib.util +import inspect +import json +from pathlib import Path +import traceback + +import pytest + +import source_integrity_toolkit as package +from source_integrity_toolkit import api +from source_integrity_toolkit.contracts import execution, report as contract +from source_integrity_toolkit.runtime import boundary, resources + + +ROOT = Path(__file__).resolve().parents[2] +EXPORTS = ("audit_bundle", "audit_file", "__version__", "AuditReport", + "AuditAbort", "AuditCancelled", "AuditUsageError") +ROOT_MEMBERS = ( + "contract_version", "report_kind", "report_id", "run", "input_identity", + "input_validation", "scopes", "populations", "basis_index", "capabilities", + "checks", "observability_domains", "results", "findings", "reasons", + "release_limits", +) + + +def _case_module(): + spec = importlib.util.spec_from_file_location( + "sit_w08_api_finite_case", ROOT / "tests/integration/test_public_audit.py") + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +def _plain(value): + if isinstance(value, Mapping): + assert all(type(key) is str for key in value) + return {key: _plain(item) for key, item in value.items()} + if type(value) is tuple: + return [_plain(item) for item in value] + assert value is None or type(value) in (str, bool, int) + return value + + +@pytest.fixture(scope="module") +def option_reports(): + case = _case_module() + source = case._minimal_value() + before = copy.deepcopy(source) + results = [] + for options in (None, {}, {"raw_file_digest": False}): + options_before = copy.deepcopy(options) + result = package.audit_bundle(source, options=options) + assert type(result) is package.AuditReport + assert result.report_kind == "audit_report" + assert result.run["processing_state"] == "completed" + assert result.input_validation["state"] == "accepted" + assert source == before and options == options_before + # Independent JSON spelling, Markdown parser, and the report schema + # check the actual result rather than a product-generated snapshot. + case._assert_complete_formats(result) + results.append(result) + return tuple(results) + + +def test_public_exports_have_exact_order_identity_and_unchanged_development_version(): + assert package.__all__ == EXPORTS + assert package.audit_bundle is api.audit_bundle + assert package.audit_file is api.audit_file + assert package.AuditReport is contract.AuditReport + for name in ("AuditAbort", "AuditCancelled", "AuditUsageError"): + assert getattr(package, name) is getattr(execution, name) + assert package.__version__ == "0.1.0.dev0" + names = {} + exec("from source_integrity_toolkit import *", names) + assert set(names) - {"__builtins__"} == set(EXPORTS) + assert all(names[name] is getattr(package, name) for name in EXPORTS) + + +def test_public_signatures_and_cached_methods_have_no_runtime_controls(): + signature = inspect.signature(package.audit_bundle) + assert tuple(signature.parameters) == ("bundle", "options") + assert signature.parameters["bundle"].kind is inspect.Parameter.POSITIONAL_OR_KEYWORD + assert signature.parameters["bundle"].default is inspect.Parameter.empty + assert signature.parameters["options"].kind is inspect.Parameter.KEYWORD_ONLY + assert signature.parameters["options"].default is None + assert signature.return_annotation is package.AuditReport + file_signature = inspect.signature(package.audit_file) + assert tuple(file_signature.parameters) == ("input_path", "output_directory", "options") + assert file_signature.parameters["options"].kind is inspect.Parameter.KEYWORD_ONLY + assert file_signature.parameters["options"].default is None + for name in ("to_json_bytes", "to_markdown_bytes"): + assert tuple(inspect.signature(getattr(package.AuditReport, name)).parameters) == ("self",) + + +def test_none_empty_and_false_options_deliver_identical_complete_public_bytes(option_reports): + first = option_reports[0] + for report in option_reports: + assert report.to_json_bytes() == first.to_json_bytes() + assert report.to_markdown_bytes() == first.to_markdown_bytes() + assert report.input_identity["source_mode"] == "in_process" + assert report.input_identity["raw_file_digest"] is None + assert report.input_identity["qualifications"] + + +def test_public_report_exposes_exact_logical_roots_and_private_cache_is_not_schema(option_reports): + report = option_reports[0] + document = json.loads(report.to_json_bytes()) + assert set(document) == set(ROOT_MEMBERS) + assert document == {name: _plain(getattr(report, name)) for name in ROOT_MEMBERS} + assert document["report_id"] == "SIT-RPT-000001" + assert document["contract_version"] == "sit-report/0.1" + assert len(report.capabilities) == 15 and len(report.observability_domains) == 5 + assert not hasattr(report, "__dict__") + assert set(package.AuditReport.__slots__) == {"_document", "_json_bytes", "_markdown_bytes"} + with pytest.raises(TypeError): + json.dumps(report) + + +def test_public_roots_nested_mappings_and_arrays_are_read_only(option_reports): + report = option_reports[0] + before_json, before_markdown = report.to_json_bytes(), report.to_markdown_bytes() + for name in ROOT_MEMBERS: + with pytest.raises((AttributeError, TypeError)): + setattr(report, name, None) + with pytest.raises((AttributeError, TypeError)): + delattr(report, name) + with pytest.raises(TypeError): + report.run["processing_state"] = "failed" + with pytest.raises(TypeError): + report.results[0]["value"] = "PRIVATE-MUTATION" + with pytest.raises(TypeError): + report.run["requested_diagnostic_ids"][0] = "PRIVATE-MUTATION" + with pytest.raises((AttributeError, TypeError)): + report.results += () + assert report.to_json_bytes() is before_json + assert report.to_markdown_bytes() is before_markdown + + +def test_public_cached_methods_never_restart_runtime_renderers_or_clocks(option_reports, monkeypatch): + report = option_reports[0] + json_raw, markdown_raw = report.to_json_bytes(), report.to_markdown_bytes() + from source_integrity_toolkit.reporting import json_report, markdown_report + + def forbidden(*args, **kwargs): + raise AssertionError("cached public method started new work") + + monkeypatch.setattr(api, "_audit_value", forbidden) + monkeypatch.setattr(boundary, "_audit_value", forbidden) + monkeypatch.setattr(boundary, "_new_analysis_budget", forbidden) + monkeypatch.setattr(resources, "monotonic_ns", forbidden) + monkeypatch.setattr(json_report, "_encode_json_report", forbidden) + monkeypatch.setattr(markdown_report, "_encode_markdown_report", forbidden) + for unused in range(3): + assert type(report.to_json_bytes()) is bytes + assert type(report.to_markdown_bytes()) is bytes + assert report.to_json_bytes() is json_raw + assert report.to_markdown_bytes() is markdown_raw + + +@pytest.mark.parametrize("options", ( + True, False, 0, 1, "", "raw_file_digest", [], (), + {"raw_file_digest": True}, {"raw_file_digest": 0}, {"raw_file_digest": 1}, + {"raw_file_digest": None}, {"raw_file_digest": "false"}, + {"raw_file_digest": []}, {"unknown": False}, {0: False}, + {"clock": None}, {"budget": 10_000_000}, {"profile": "default"}, + {"diagnostic_ids": []}, {"raw_file_digest": False, "extra": None}, +)) +def test_invalid_options_are_safe_usage_errors_before_an_invocation(options, monkeypatch, capsys): + entered = [] + + def forbidden(*args, **kwargs): + entered.append(True) + raise AssertionError("invalid options entered runtime") + + monkeypatch.setattr(api, "_audit_value", forbidden) + monkeypatch.setattr(boundary, "_new_analysis_budget", forbidden) + with pytest.raises(package.AuditUsageError) as captured: + package.audit_bundle(object(), options=options) + error = captured.value + assert type(error) is package.AuditUsageError and isinstance(error, ValueError) + assert error.code == "invalid_invocation" + assert str(error) == error.safe_message == "Invalid audit invocation." + assert repr(error) == "AuditUsageError()" + assert error.args == ("Invalid audit invocation.",) + assert error.__cause__ is None and error.__suppress_context__ + assert entered == [] and capsys.readouterr() == ("", "") + + +@pytest.mark.parametrize("kind", ("usage", "abort", "cancel")) +def test_exported_safe_failures_preserve_identity_through_python_context_managers(kind): + if kind == "usage": + error = package.AuditUsageError() + message, representation = "Invalid audit invocation.", "AuditUsageError()" + elif kind == "abort": + error = package.AuditAbort("failed", "not_completed", "execution_failed") + message, representation = "Audit could not be completed.", "AuditAbort()" + else: + error = package.AuditCancelled("accepted") + message, representation = "Audit cancelled.", "AuditCancelled()" + + @contextmanager + def passthrough(): + yield + + with pytest.raises(type(error)) as captured: + with passthrough(): + raise error + assert captured.value is error + assert str(error) == error.safe_message == message + assert error.args == (message,) and repr(error) == representation + assert message in "".join(traceback.format_exception(error)) + for name in ("args", "safe_message", "code", "arbitrary_payload"): + with pytest.raises(AttributeError): + setattr(error, name, "PRIVATE-PAYLOAD") + with pytest.raises(AttributeError): + delattr(error, name) + if kind != "usage": + assert error.publication_state == "not_published" + if kind == "cancel": + assert not hasattr(error, "reason_code") + + +def test_public_direct_report_construction_cannot_fabricate_an_audit(): + with pytest.raises(TypeError, match=r"^AuditReport is delivered only by audit_bundle\.$"): + package.AuditReport() diff --git a/tests/integration/test_analytical_installed_runtime.py b/tests/integration/test_analytical_installed_runtime.py index 90e4f7d..3341705 100644 --- a/tests/integration/test_analytical_installed_runtime.py +++ b/tests/integration/test_analytical_installed_runtime.py @@ -53,7 +53,7 @@ def installed_runtime(tmp_path_factory): packaging.test_source_distribution_inventory(distributions) packaging.test_wheel_inventory_and_metadata(distributions) work = tmp_path_factory.mktemp('w14-installed') - # Reuse the existing offline clean-runtime and public-refusal checks. + # Reuse the existing offline clean-runtime, public API and file refusal checks. packaging.test_wheel_installs_without_developer_tools(distributions, work) rebuild = tmp_path_factory.mktemp('w14-rebuild') packaging.test_source_distribution_rebuilds_same_package(distributions, rebuild) @@ -61,7 +61,7 @@ def installed_runtime(tmp_path_factory): inventory = [_inventory(path) for path in (distributions[1], distributions[2], rebuilt)] assert inventory[1]['members'] == inventory[2]['members'] python = work / 'runtime' / ('Scripts/python.exe' if os.name == 'nt' else 'bin/python') - return work, python, inventory + return work, python, inventory, (distributions[1], distributions[2], rebuilt) _CHILD = r''' @@ -82,7 +82,7 @@ def installed_runtime(tmp_path_factory): from source_integrity_toolkit.contracts.report import _AnalyticalOutcome import source_integrity_toolkit as package assert package.__version__=='0.1.0.dev0' -assert set(package.__all__)=={'audit_bundle','audit_file','__version__'} +assert set(package.__all__)=={'audit_bundle','audit_file','__version__','AuditReport','AuditAbort','AuditCancelled','AuditUsageError'} assert resources._WORK_LIMIT==10_000_000 and resources._JOB_WORK_LIMIT==1_000_000 assert resources._DEADLINE_NS==60_000_000_000 events=[] @@ -128,10 +128,10 @@ def audit(event,args): for fn in (boundary._analyze_value,boundary._analyze_utf8): bad=fn({} if fn is boundary._analyze_value else b'{}') assert bad.input_state=='rejected' and not hasattr(bad,'results') -for call,args in ((package.audit_bundle,(object(),)),(package.audit_file,(object(),object()))): - try:call(*args,options=object()) - except NotImplementedError:pass - else:raise AssertionError('public_audit_activated') +public=_public_witness(payload['public']['source'],payload['public']['expected']) +try:package.audit_file(object(),object(),options=object()) +except NotImplementedError:pass +else:raise AssertionError('file_audit_activated') assert events==[] for probe in (lambda:open('FICTIONAL_MUST_NOT_OPEN','rb'), lambda:socket.getaddrinfo('fictional.invalid',443), @@ -140,13 +140,14 @@ def audit(event,args): except RuntimeError:pass assert events==['open','socket.getaddrinfo','ctypes.dlopen'] print(json.dumps({'modules':loaded,'hero_modes':heroes,'completed_finite_modes':completed, - 'normal_effects':[],'negative_events':events,'public_refusals':2,'invalid_modes':2, + 'normal_effects':[],'negative_events':events,'public_refusals':1,'public_audit':public,'invalid_modes':2, 'runtime_distributions':['source-integrity-toolkit']})) ''' def test_clean_installed_analysis_original_heroes_and_completed_finite_case(installed_runtime): - work, python, inventories = installed_runtime + work, python, inventories, distribution_paths = installed_runtime + public = _load('sit_w08_public_installed_witness', 'tests/integration/test_public_installed_runtime.py') hero = _load('sit_w14_hero_assertions', 'tests/integration/test_analytical_hero_inputs.py') finite = _load('sit_w14_independent_finite_source', 'tests/integration/test_analytical_pipeline.py') modules = {} @@ -164,9 +165,9 @@ def test_clean_installed_analysis_original_heroes_and_completed_finite_case(inst 'reached_origin_record_count': 1, 'documentary_origin_boundary_record_count': 1}, 'memberships': {'e': ['origin'], 'e2': ['origin']}, 'hhi': [4, 4]} payload = {'modules': modules, 'heroes': heroes, 'finite_source': finite._documented_value(), - 'finite_expectations': expectations} + 'finite_expectations': expectations, 'public': public.public_payload()} # The helper is developer assertion code, sent to -c; it is not installed. - script = inspect.getsource(hero._hero_analysis) + '\n' + _CHILD + script = public.public_script() + inspect.getsource(hero._hero_analysis) + '\n' + _CHILD run = subprocess.run([str(python), '-I', '-B', '-c', script], cwd=work, input=json.dumps(payload).encode('utf-8'), capture_output=True, timeout=600) assert run.returncode == 0, run.stderr.decode(errors='replace') @@ -175,6 +176,13 @@ def test_clean_installed_analysis_original_heroes_and_completed_finite_case(inst assert actual['modules'] == modules and len(actual['hero_modes']) == 8 assert len(actual['completed_finite_modes']) == 2 assert actual['normal_effects'] == [] + public_installs = [{'mode': 'direct_wheel', 'source_archive': distribution_paths[1].name, + 'source_archive_sha256': inventories[1]['sha256'], + 'runtime': {name: actual[name] for name in ('modules', 'runtime_distributions', + 'normal_effects', 'negative_events', 'public_refusals', 'public_audit')}}] + public_installs.extend(public.additional_installed_public_witnesses(work, distribution_paths, modules)) + assert [row['mode'] for row in public_installs] == ['direct_wheel', 'sdist', 'rebuilt_wheel'] + assert all(row['runtime']['public_audit'] == actual['public_audit'] for row in public_installs) paths = [Path(__file__), ROOT / 'tests/integration/test_analytical_hero_inputs.py', ROOT / 'tests/integration/test_analytical_pipeline.py'] fixture_paths = [ROOT / 'tests' / kind / (case + suffix) for case in hero.HEROES @@ -182,7 +190,9 @@ def test_clean_installed_analysis_original_heroes_and_completed_finite_case(inst guard = _load('sit_current_installed_context', 'tools/check_scaffold_boundary.py') state = guard.current_local_state(ROOT) record = {**state, - 'scope': 'W14 installed private analysis; original hero stops are not completed golden certification', + 'scope': 'Installed private analysis and three P4-W08 public install paths; original hero stops are not completed golden certification', + 'public_test_sources': {'tests/integration/test_public_installed_runtime.py': hashlib.sha256((ROOT / 'tests/integration/test_public_installed_runtime.py').read_bytes()).hexdigest()}, + 'public_installations': public_installs, 'ok': True, 'runtime': actual, 'distributions': inventories, 'test_sources': {path.relative_to(ROOT).as_posix(): hashlib.sha256(path.read_bytes()).hexdigest() for path in paths}, diff --git a/tests/integration/test_preparation_capability_boundary.py b/tests/integration/test_preparation_capability_boundary.py index 5f122be..70dc150 100644 --- a/tests/integration/test_preparation_capability_boundary.py +++ b/tests/integration/test_preparation_capability_boundary.py @@ -53,8 +53,21 @@ def test_capture_admission_and_navigation_are_distinct_private_components(): out = _prepare_evidence_value(source) assert type(out) is _ObservabilityPreparation and type(out.prepared) is _PreparedBundle import source_integrity_toolkit as toolkit - assert set(toolkit.__all__) == {"audit_bundle", "audit_file", "__version__"} - with pytest.raises(NotImplementedError): toolkit.audit_bundle(source) + assert toolkit.__all__ == ("audit_bundle", "audit_file", "__version__", "AuditReport", + "AuditAbort", "AuditCancelled", "AuditUsageError") + original = copy.deepcopy(source) + public = toolkit.audit_bundle(source) + assert type(public) is toolkit.AuditReport + assert public.report_kind == "audit_report" + assert public.run["processing_state"] == "completed" + assert public.input_validation["state"] == "accepted" + document = json.loads(public.to_json_bytes()) + assert document["input_identity"]["bundle_id"] == "bundle" + assert len(document["capabilities"]) == 15 + assert len(document["observability_domains"]) == 5 + assert b'"processing_state": "completed"' in public.to_markdown_bytes() + assert b'"bundle_id": "bundle"' in public.to_markdown_bytes() + assert source == original @pytest.mark.parametrize("mode", ["value", "bytes"]) diff --git a/tests/integration/test_public_audit.py b/tests/integration/test_public_audit.py index d9067a2..67380f9 100644 --- a/tests/integration/test_public_audit.py +++ b/tests/integration/test_public_audit.py @@ -1,6 +1,6 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""W07 real internal memory composition, before W08 public API activation. +"""W08 real public memory composition, retaining W07 private regression. The finite dossier below is independently authored from the bundle contract. Its empty seed/dimension populations have literal expectations, not snapshots @@ -18,7 +18,7 @@ import pytest from source_integrity_toolkit.contracts import report as contract -from source_integrity_toolkit.contracts.execution import AuditAbort +from source_integrity_toolkit import AuditAbort, audit_bundle from source_integrity_toolkit.runtime import boundary, resources @@ -140,7 +140,7 @@ def observe(): patch = pytest.MonkeyPatch() try: patch.setattr(boundary, '_new_analysis_budget', observe) - report = boundary._audit_value(source) + report = audit_bundle(source) finally: patch.undo() assert source == before @@ -213,7 +213,7 @@ def test_explicit_dimension_empty_seed_ratios_complete_as_unavailable(): source = _minimal_value() source['inquiries'][0]['dependency_dimensions'] = ['acquisition'] before = copy.deepcopy(source) - report = boundary._audit_value(source) + report = audit_bundle(source) document = _assert_complete_formats(report) assert source == before assert document['run']['processing_state'] == 'completed' @@ -276,7 +276,7 @@ def forbidden(*args, **kwargs): def test_source_mutation_after_delivery_cannot_change_report_or_encodings(): source = _minimal_value() before = copy.deepcopy(source) - report = boundary._audit_value(source) + report = audit_bundle(source) assert source == before json_raw, markdown_raw = report.to_json_bytes(), report.to_markdown_bytes() source['inquiries'][0]['target_claim_refs'].clear() @@ -321,7 +321,7 @@ def test_structural_rejection_delivers_complete_safe_diagnostic_formats(mutation else: source['inquiries'][0]['target_claim_refs'] = ['PRIVATE-MISSING-CLAIM'] before = copy.deepcopy(source) - report = boundary._audit_value(source) + report = audit_bundle(source) document = _assert_complete_formats(report) assert source == before assert document['report_kind'] == 'validation_diagnostics' @@ -355,7 +355,7 @@ def observe(): monkeypatch.setattr(boundary, '_new_analysis_budget', observe) try: - report = boundary._audit_value(source) + report = audit_bundle(source) except AuditAbort as stopped: assert stopped.processing_state == 'interrupted' assert stopped.input_validation_state == 'accepted' diff --git a/tests/integration/test_public_installed_runtime.py b/tests/integration/test_public_installed_runtime.py new file mode 100644 index 0000000..26fd305 --- /dev/null +++ b/tests/integration/test_public_installed_runtime.py @@ -0,0 +1,288 @@ +# Copyright 2026 Xiangyu Guo +# SPDX-License-Identifier: Apache-2.0 +"""Public installed witnesses reused by the existing preparation/analysis tests. + +The helpers below execute in the clean installed interpreters, including direct +sdist and rebuilt-wheel installs from the existing W14 build. They are not +installed with the product. Literal finite semantic expectations come from the +bundle/report contracts; independent standard-library encoders compare both +complete byte representations of the sixteen exposed public roots. +""" +import copy +import hashlib +import inspect +import json +import os +from pathlib import Path +import subprocess + + +PUBLIC_ROOTS = ( + 'contract_version', 'report_kind', 'report_id', 'run', 'input_identity', + 'input_validation', 'scopes', 'populations', 'basis_index', 'capabilities', + 'checks', 'observability_domains', 'results', 'findings', 'reasons', + 'release_limits', +) + + +def public_payload(): + """Independent explicit-acquisition case, with no selected seed members.""" + unknown = {'state': 'unknown', 'value': None, 'precision': None, + 'reason': 'Fictional time not supplied.'} + provenance = {'attributed_to_ref': 'A', 'basis_kind': 'declaration', + 'evidence_ref_ids': [], 'method': 'Fictional declaration.', + 'qualifications': []} + source = { + 'contract_version': 'sit-bundle/0.1', 'bundle_id': 'P4-W08-INSTALLED', + 'snapshot_id': 'S', 'recorded_at': copy.deepcopy(unknown), 'predecessor': None, + 'inquiries': [{'id': 'I', 'target_claim_refs': ['C'], 'target_object_refs': [], + 'seed_artifact_refs': [], 'seed_evidence_refs': [], + 'boundary': {'description': 'Fictional finite scope.', + 'criterion': 'Only supplied records.', 'system_refs': []}, + 'time_window': {'start': copy.deepcopy(unknown), 'end': copy.deepcopy(unknown)}, + 'as_of': copy.deepcopy(unknown), 'dependency_dimensions': ['acquisition'], + 'coverage_assertion_refs': [], 'provenance': copy.deepcopy(provenance)}], + 'records': [ + {'id': 'A', 'kind': 'actor', 'data': {'actor_kind': 'human', + 'identity_disclosure': 'pseudonymous', + 'display_name': 'P4-W08-INSTALLED-PRIVATE-DISPLAY'}, + 'provenance': copy.deepcopy(provenance)}, + {'id': 'C', 'kind': 'claim', 'data': {'claim_key': 'K', 'version_label': 'v1', + 'text': 'Fictional claim.', 'context': 'Fictional supplied context.'}, + 'provenance': copy.deepcopy(provenance)}], + 'assertions': [], 'evidence_references': [], + } + expected = { + 'bundle_id': 'P4-W08-INSTALLED', 'snapshot_id': 'S', + 'family_ids': ['SIT-M' + str(n).zfill(3) for n in range(1, 16)], + 'counts': {'nominal_seed_artifact_record_count': 0, + 'seed_evidence_item_count': 0, 'claim_artifact_record_count': 0, + 'unresolved_seed_artifact_reference_count': 0}, + 'basis_total': 3, + 'basis_members': [['inquiries', 'I'], ['records', 'A'], ['records', 'C']], + 'unavailable_fractions': ['single_origin_contribution_hhi', + 'documentary_origin_resolution_fraction', 'inherited_only_seed_fraction'], + 'unavailable_reason': 'zero_denominator', + 'excluded_canary': 'P4-W08-INSTALLED-PRIVATE-DISPLAY', + } + return {'source': source, 'expected': expected} + + +def _public_plain(value): + if isinstance(value, Mapping): + return {key: _public_plain(item) for key, item in value.items()} + if type(value) is tuple: + return [_public_plain(item) for item in value] + assert value is None or type(value) in (str, int, bool) + return value + + +def _public_json(value, pretty=False): + text = json.dumps(value, ensure_ascii=False, sort_keys=True, allow_nan=False, + indent=2 if pretty else None, + separators=(',', ': ') if pretty else (',', ':')) + short = {'\\b': '\\u0008', '\\f': '\\u000c', '\\n': '\\u000a', + '\\r': '\\u000d', '\\t': '\\u0009'} + def replace(match): + token = match.group() + if token.startswith('\\'): + return short.get(token, token) + return '\\u' + format(ord(token), '04x') + return re.sub(r'\\.|[\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]', + replace, text) + + +def _public_markdown(document): + text = ('# Source Integrity Audit\n\nReport kind: ' + document['report_kind'] + + '\nProcessing state: ' + document['run']['processing_state'] + + '\nInput state: ' + document['input_validation']['state'] + '\n\n') + def block(value): + body = _public_json(value, pretty=True) + longest = max((len(match.group()) for match in re.finditer(r'`+', body)), default=0) + fence = '`' * max(3, longest + 1) + return fence + 'json\n' + body + '\n' + fence + '\n' + for index, name in enumerate(PUBLIC_ROOTS): + text += '## ' + name + '\n\n' + if name != 'results' or not document['results']: + text += block(document[name]) + if index != len(PUBLIC_ROOTS) - 1: + text += '\n' + continue + for row in document['results']: + text += '### ' + row['id'] + ': ' + row['field_key'] + '\n\n' + text += block(row) + '\n' + if row['result_state'] == 'available' and row['value_kind'] == 'fraction': + n, d = row['value']['numerator'], row['value']['denominator'] + with localcontext() as context: + context.prec = 80 + decimal = (Decimal(n) / Decimal(d)).quantize( + Decimal('0.000001'), rounding=ROUND_HALF_UP) + text += 'Decimal display: ' + str(n) + '/' + str(d) + ' = ' + format(decimal, '.6f') + '\n\n' + text += 'Reason details\n\n' + text += block([reason for reason in document['reasons'] + if reason['id'] in row['reason_refs']]) + '\n' + return text.encode('utf-8') + + +def _public_witness(source, expected): + before = copy.deepcopy(source) + input_bytes = json.dumps(source, sort_keys=True, separators=(',', ':')).encode('utf-8') + expected_bytes = json.dumps(expected, sort_keys=True, separators=(',', ':')).encode('utf-8') + report = package.audit_bundle(source, options={'raw_file_digest': False}) + assert type(report) is package.AuditReport + assert source == before + document = {name: _public_plain(getattr(report, name)) for name in PUBLIC_ROOTS} + assert document['contract_version'] == 'sit-report/0.1' + assert document['report_id'] == 'SIT-RPT-000001' and document['report_kind'] == 'audit_report' + assert document['run']['processing_state'] == 'completed' + assert document['input_validation'] == {'state': 'accepted', 'diagnostics': []} + assert document['run']['tool_version'] == '0.1.0.dev0' + assert document['run']['requested_diagnostic_ids'] == expected['family_ids'] + assert document['run']['completed_diagnostic_ids'] == expected['family_ids'] + assert document['run']['diagnostics'] == [] + assert len(document['capabilities']) == 15 + assert sorted(row['diagnostic_id'] for row in document['capabilities']) == expected['family_ids'] + assert [row['level_index'] for row in document['observability_domains']] == list(range(5)) + assert document['input_identity']['bundle_id'] == expected['bundle_id'] + assert document['input_identity']['snapshot_id'] == expected['snapshot_id'] + assert document['input_identity']['source_mode'] == 'in_process' + assert document['input_identity']['raw_file_digest'] is None + assert document['input_identity']['qualifications'] and document['release_limits'] + for name in ('started_at', 'finished_at'): + assert document['run'][name] == {'state': 'unknown', 'value': None, + 'precision': None, 'reason': 'not_recorded_by_SIT-RP-0.1'} + assert all(row['execution_state'] == 'completed' for row in document['results']) + by_field = {} + for row in document['results']: + by_field.setdefault(row['field_key'], []).append(row) + for field, value in expected['counts'].items(): + rows = by_field[field] + assert len(rows) == 1 and rows[0]['result_state'] == 'available' + assert type(rows[0]['value']) is int and rows[0]['value'] == value + inventory, = by_field['declared_basis_inventory'] + assert inventory['result_state'] == 'available' + assert inventory['value']['total'] == expected['basis_total'] + declaration, = [row for row in inventory['value']['categories'] if row['label'] == 'declaration'] + assert declaration['count'] == expected['basis_total'] + assert sorted([ref['collection'], ref['identifier']] for ref in declaration['member_refs']) == expected['basis_members'] + reasons = {row['id']: row for row in document['reasons']} + for field in expected['unavailable_fractions']: + row, = by_field[field] + assert row['result_state'] == 'unavailable' and row['value'] is None + assert expected['unavailable_reason'] in {reasons[ref]['code'] for ref in row['reason_refs']} + json_raw, markdown_raw = report.to_json_bytes(), report.to_markdown_bytes() + json_expected = (_public_json(document) + '\n').encode('utf-8') + markdown_expected = _public_markdown(document) + assert type(json_raw) is type(markdown_raw) is bytes + assert json_raw == json_expected and markdown_raw == markdown_expected + assert json.loads(json_raw) == document + assert expected['excluded_canary'].encode() not in json_raw + markdown_raw + for unused in range(3): + assert report.to_json_bytes() is json_raw and report.to_markdown_bytes() is markdown_raw + source.clear() + assert report.input_identity['bundle_id'] == expected['bundle_id'] + try: + report.results = () + except (AttributeError, TypeError): + pass + else: + raise AssertionError('mutable_public_report') + try: + report.input_identity['bundle_id'] = 'changed' + except TypeError: + pass + else: + raise AssertionError('mutable_nested_public_report') + assert report.to_json_bytes() is json_raw and report.to_markdown_bytes() is markdown_raw + return {'case_id': expected['bundle_id'], 'input_sha256': hashlib.sha256(input_bytes).hexdigest(), + 'expectations_sha256': hashlib.sha256(expected_bytes).hexdigest(), + 'report_kind': report.report_kind, 'processing_state': report.run['processing_state'], + 'input_state': report.input_validation['state'], 'root_members': list(PUBLIC_ROOTS), + 'family_ids': expected['family_ids'], 'counts': expected['counts'], + 'unavailable_fractions': expected['unavailable_fractions'], + 'basis_total': expected['basis_total'], 'basis_members': expected['basis_members'], + 'source_unchanged': before == json.loads(input_bytes), 'detached_after_source_clear': True, + 'immutable_roots_and_nested': True, 'cached_identity_reads': 3, + 'json': {'bytes': len(json_raw), 'sha256': hashlib.sha256(json_raw).hexdigest(), + 'independent_sha256': hashlib.sha256(json_expected).hexdigest()}, + 'markdown': {'bytes': len(markdown_raw), 'sha256': hashlib.sha256(markdown_raw).hexdigest(), + 'independent_sha256': hashlib.sha256(markdown_expected).hexdigest()}} + + +def public_script(): + imports = ('import copy,hashlib,json,re\nfrom collections.abc import Mapping\n' + 'from decimal import Decimal,localcontext,ROUND_HALF_UP\n') + functions = (_public_plain, _public_json, _public_markdown, _public_witness) + return imports + 'PUBLIC_ROOTS = ' + repr(PUBLIC_ROOTS) + '\n' + '\n'.join( + inspect.getsource(function) for function in functions) + '\n' + + +def additional_installed_public_witnesses(work, distributions, modules): + """Use the existing sdist/rebuilt wheel; every target contains only product.""" + results = [] + for mode, archive in (('sdist', distributions[0]), ('rebuilt_wheel', distributions[2])): + directory = work / ('public-' + mode) + directory.mkdir() + target = directory / 'runtime' + commands = [] + def run(args, *, data=None, timeout=120): + proc = subprocess.run(args, cwd=directory, input=data, capture_output=True, timeout=timeout) + commands.append({'command': [str(arg) for arg in args], 'exit_code': proc.returncode}) + (directory / ('command-' + str(len(commands)) + '.log')).write_bytes(proc.stdout + proc.stderr) + assert proc.returncode == 0, proc.stderr.decode(errors='replace') + return proc + import sys + run([sys.executable, '-m', 'venv', '--without-pip', str(target)]) + python = target / ('Scripts/python.exe' if os.name == 'nt' else 'bin/python') + if mode == 'sdist': + # Build with the already selected external toolchain; install only + # the resulting product into the isolated target's actual purelib. + purelib = run([str(python), '-I', '-B', '-c', + 'import sysconfig; print(sysconfig.get_path("purelib"))']).stdout.decode().strip() + run([sys.executable, '-m', 'pip', '--isolated', 'install', '--no-index', + '--no-deps', '--no-cache-dir', '--no-build-isolation', + '--target', purelib, str(archive)]) + else: + run([sys.executable, '-m', 'pip', '--python', str(python), '--isolated', 'install', + '--no-index', '--no-deps', '--no-cache-dir', str(archive)]) + payload = {'modules': modules, 'public': public_payload()} + child = public_script() + r''' +import sys,importlib,importlib.metadata,socket,ctypes +import encodings.idna +from pathlib import Path +payload=json.loads(sys.stdin.buffer.read()) +assert {d.metadata['Name'] for d in importlib.metadata.distributions()}=={'source-integrity-toolkit'} +loaded={} +for name,expected in payload['modules'].items(): + module=importlib.import_module(name); path=Path(module.__file__).resolve() + assert path.is_relative_to(Path(sys.prefix).resolve()) + assert hashlib.sha256(path.read_bytes()).hexdigest()==expected + loaded[name]=expected +import source_integrity_toolkit as package +assert set(package.__all__)=={'audit_bundle','audit_file','__version__','AuditReport','AuditAbort','AuditCancelled','AuditUsageError'} +events=[] +def audit(event,args): + if event=='open' or event.startswith('socket.') or event=='ctypes.dlopen': + events.append(event);raise RuntimeError('blocked_installed_effect') +sys.addaudithook(audit) +public=_public_witness(payload['public']['source'],payload['public']['expected']) +try:package.audit_file(object(),object(),options=object()) +except NotImplementedError:pass +else:raise AssertionError('file_audit_activated') +assert events==[] +for probe in (lambda:open('FICTIONAL_MUST_NOT_OPEN','rb'),lambda:socket.getaddrinfo('fictional.invalid',443),lambda:ctypes.CDLL('FICTIONAL_MUST_NOT_LOAD')): + try:probe() + except RuntimeError:pass +assert events==['open','socket.getaddrinfo','ctypes.dlopen'] +print(json.dumps({'modules':loaded,'runtime_distributions':['source-integrity-toolkit'], + 'normal_effects':[],'negative_events':events,'public_refusals':1,'public_audit':public})) +''' + proc = run([str(python), '-I', '-B', '-c', child], + data=json.dumps(payload).encode('utf-8'), timeout=120) + assert proc.stderr == b'' + runtime = json.loads(proc.stdout) + assert runtime['modules'] == modules + results.append({'mode': mode, 'source_archive': archive.name, + 'source_archive_sha256': hashlib.sha256(archive.read_bytes()).hexdigest(), + 'runtime': runtime, 'commands': commands}) + return results diff --git a/tests/scaffold/test_api_stubs.py b/tests/scaffold/test_api_stubs.py index 1139225..3bb17ce 100644 --- a/tests/scaffold/test_api_stubs.py +++ b/tests/scaffold/test_api_stubs.py @@ -1,16 +1,17 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""Immediate refusal tests; none validate or analyze a dossier.""" +"""Public in-memory activation and the retained immediate file refusal.""" import ast import builtins import inspect +import json import os from pathlib import Path import pytest -from source_integrity_toolkit import audit_bundle, audit_file +from source_integrity_toolkit import AuditReport, AuditUsageError, audit_bundle, audit_file MESSAGE = "Source Integrity Toolkit audit is not implemented in the Phase 1 scaffold." @@ -24,7 +25,7 @@ def touched(self, *args, **kwargs): keys = items = values = read = write = touched -@pytest.mark.parametrize("function", [audit_bundle, audit_file]) +@pytest.mark.parametrize("function", [audit_file]) def test_first_executable_statement_is_refusal(function): tree = ast.parse(inspect.getsource(function)) body = tree.body[0].body @@ -40,16 +41,23 @@ def test_hostile_arguments_and_options_remain_untouched(function, monkeypatch): with monkeypatch.context() as patch: patch.setattr(builtins, "open", obj.touched) patch.setattr(os, "open", obj.touched) - with pytest.raises(NotImplementedError) as caught: + failure = AuditUsageError if function is audit_bundle else NotImplementedError + with pytest.raises(failure) as caught: function(*args, options=obj) - assert str(caught.value) == MESSAGE + assert str(caught.value) == ("Invalid audit invocation." if function is audit_bundle else MESSAGE) def test_plain_bundle_remains_unchanged(): bundle = {"opaque": [1, None, {"text": "fictional"}]} nested = bundle["opaque"] - with pytest.raises(NotImplementedError, match="not implemented"): - audit_bundle(bundle) + report = audit_bundle(bundle) + assert type(report) is AuditReport + assert report.report_kind == "validation_diagnostics" + assert report.input_validation["state"] == "rejected" + document = json.loads(report.to_json_bytes()) + assert document["report_kind"] == "validation_diagnostics" + assert document["input_validation"]["state"] == "rejected" + assert b'"state": "rejected"' in report.to_markdown_bytes() assert bundle == {"opaque": [1, None, {"text": "fictional"}]} assert bundle["opaque"] is nested diff --git a/tests/scaffold/test_ci_contract.py b/tests/scaffold/test_ci_contract.py index 804c07d..b470c4a 100644 --- a/tests/scaffold/test_ci_contract.py +++ b/tests/scaffold/test_ci_contract.py @@ -16,6 +16,7 @@ import argparse from email.parser import BytesParser import hashlib +import importlib.util import json import os from pathlib import Path @@ -529,12 +530,61 @@ def archive_inventories(base): return archives +def installed_public_expectations(): + """Read the developer witness's literal input, never product audit output.""" + path = ROOT / "tests/integration/test_public_installed_runtime.py" + spec = importlib.util.spec_from_file_location("sit_public_receipt_expectations", path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + payload = module.public_payload() + return payload, list(module.PUBLIC_ROOTS) + + +def validate_installed_public(runtime, modules, payload, roots): + require(runtime["modules"] == modules and + runtime["runtime_distributions"] == ["source-integrity-toolkit"] and + runtime["normal_effects"] == [] and + runtime["negative_events"] == ["open", "socket.getaddrinfo", "ctypes.dlopen"] and + type(runtime["public_refusals"]) is int and + runtime["public_refusals"] == 1, "installed_runtime_boundary_incomplete") + public = runtime.get("public_audit", {}) + expected = payload["expected"] + digest = lambda value: hashlib.sha256(json.dumps( + value, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + require(public.get("case_id") == expected["bundle_id"] and + public.get("input_sha256") == digest(payload["source"]) and + public.get("expectations_sha256") == digest(expected) and + public.get("report_kind") == "audit_report" and + public.get("processing_state") == "completed" and + public.get("input_state") == "accepted" and public.get("root_members") == roots and + public.get("family_ids") == expected["family_ids"] and + public.get("counts") == expected["counts"] and + all(type(value) is int for value in public["counts"].values()) and + public.get("unavailable_fractions") == expected["unavailable_fractions"] and + type(public.get("basis_total")) is int and + public["basis_total"] == expected["basis_total"] and + public.get("basis_members") == expected["basis_members"] and + public.get("source_unchanged") is True and + public.get("detached_after_source_clear") is True and + public.get("immutable_roots_and_nested") is True and + type(public.get("cached_identity_reads")) is int and + public["cached_identity_reads"] == 3, "installed_public_semantics_missing") + for encoding in ("json", "markdown"): + value = public.get(encoding, {}) + require(type(value.get("bytes")) is int and 0 < value["bytes"] <= 67_108_864 and + type(value.get("sha256")) is str and + re.fullmatch(r"[0-9a-f]{64}", value["sha256"]) is not None and + value["sha256"] == value.get("independent_sha256"), + "installed_public_encoding_missing") + + def installed_receipts(base, evidence, binding, archives, *, local=False): modules = {} for path in sorted((ROOT / "src/source_integrity_toolkit").rglob("*.py")): name = path.relative_to(ROOT / "src").as_posix().removesuffix(".py").replace("/", ".").removesuffix(".__init__") modules[name] = hashlib.sha256(path.read_bytes()).hexdigest() require(len(modules) == 48, "installed_module_set_changed") + payload, roots = installed_public_expectations() results = {} for label in ("w08", "w14"): name = label + "-installed-runtime.json" @@ -554,9 +604,11 @@ def installed_receipts(base, evidence, binding, archives, *, local=False): receipt.get("activation_stage") == binding["activation_stage"], "installed_receipt_current_context_mismatch") runtime = receipt["runtime"] - require(runtime["modules"] == modules and runtime["runtime_distributions"] == ["source-integrity-toolkit"] and - runtime["normal_effects"] == [] and runtime["negative_events"] == ["open", "socket.getaddrinfo", "ctypes.dlopen"] and - runtime["public_refusals"] == 2, "installed_runtime_boundary_incomplete") + validate_installed_public(runtime, modules, payload, roots) + public_source = "tests/integration/test_public_installed_runtime.py" + require(receipt.get("public_test_sources") == { + public_source: hashlib.sha256((ROOT / public_source).read_bytes()).hexdigest()}, + "installed_public_source_changed") if label == "w08": require(runtime["admitted_fixture_modes"] == 8 and runtime["rejected_empty_modes"] == 2, "installed_preparation_modes_missing") @@ -580,6 +632,18 @@ def installed_receipts(base, evidence, binding, archives, *, local=False): distributions[1]["members"] == distributions[2]["members"], "installed_rebuild_inventory_mismatch") require(all(any(r["name"] == a["name"] and r["members"] == a["members"] for a in archives) for r in distributions), "installed_inventory_not_in_current_builds") + if label == "w14": + installations = receipt.get("public_installations", []) + require([row.get("mode") for row in installations] == + ["direct_wheel", "sdist", "rebuilt_wheel"], "installed_public_distribution_modes_missing") + for row, archive_index in zip(installations, (1, 0, 2)): + archive = distributions[archive_index] + require(row.get("source_archive") == archive["name"] and + row.get("source_archive_sha256") == archive["sha256"], + "installed_public_archive_mismatch") + validate_installed_public(row["runtime"], modules, payload, roots) + require(row["runtime"]["public_audit"] == runtime["public_audit"], + "installed_public_distribution_results_differ") results[label] = {"receipt_persisted": True, "sha256": hashlib.sha256(path.read_bytes()).hexdigest(), "modules": len(modules), "distributions": len(distributions)} return results @@ -776,23 +840,45 @@ def test_hosted_guard_unit_comes_from_verified_context(self): self.assertEqual(command[command.index("--unit") + 1], "P4-W01") def test_installed_receipts_bind_current_unit_activation_and_both_refusals(self): + # Retained identity: W08 replaces only bundle refusal with actual public + # semantic/encoding receipts; the file refusal and all old bindings stay. evidence = self.workspace() - binding = {"head": "a" * 40, "unit": "P4-W01", "activation_stage": 1} + binding = {"head": "a" * 40, "unit": "P4-W08", "activation_stage": 8} modules = {} for path in sorted((ROOT / "src/source_integrity_toolkit").rglob("*.py")): name = path.relative_to(ROOT / "src").as_posix().removesuffix(".py").replace("/", ".").removesuffix(".__init__") modules[name] = hashlib.sha256(path.read_bytes()).hexdigest() self.assertEqual(len(modules), 48) - distributions = [{"name": "synthetic.tar.gz", "members": {"source": "synthetic"}}, - {"name": "synthetic.whl", "members": {"module": "synthetic"}}, - {"name": "synthetic.whl", "members": {"module": "synthetic"}}] + distributions = [{"name": "synthetic.tar.gz", "members": {"source": "synthetic"}, "sha256": "a" * 64}, + {"name": "synthetic.whl", "members": {"module": "synthetic"}, "sha256": "b" * 64}, + {"name": "synthetic.whl", "members": {"module": "synthetic"}, "sha256": "b" * 64}] + payload, roots = installed_public_expectations() + expected = payload["expected"] + digest = lambda value: hashlib.sha256(json.dumps(value, + sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + public = {"case_id": expected["bundle_id"], "input_sha256": digest(payload["source"]), + "expectations_sha256": digest(expected), "report_kind": "audit_report", + "processing_state": "completed", "input_state": "accepted", "root_members": roots, + "family_ids": expected["family_ids"], "counts": expected["counts"], + "unavailable_fractions": expected["unavailable_fractions"], + "basis_total": expected["basis_total"], "basis_members": expected["basis_members"], + "source_unchanged": True, "detached_after_source_clear": True, + "immutable_roots_and_nested": True, "cached_identity_reads": 3, + "json": {"bytes": 123, "sha256": "c" * 64, "independent_sha256": "c" * 64}, + "markdown": {"bytes": 456, "sha256": "d" * 64, "independent_sha256": "d" * 64}} runtime = {"modules": modules, "runtime_distributions": ["source-integrity-toolkit"], "normal_effects": [], "negative_events": ["open", "socket.getaddrinfo", "ctypes.dlopen"], - "public_refusals": 2} - w08 = {**binding, "ok": True, "distributions": distributions, "runtime": { - **runtime, "admitted_fixture_modes": 8, "rejected_empty_modes": 2}} - w14 = {**binding, "ok": True, "distributions": distributions, "runtime": { - **runtime, "hero_modes": list(range(8)), "completed_finite_modes": list(range(2)), "invalid_modes": 2}} + "public_refusals": 1, "public_audit": public} + source = "tests/integration/test_public_installed_runtime.py" + shared = {**binding, "ok": True, "distributions": distributions, + "public_test_sources": {source: hashlib.sha256((ROOT / source).read_bytes()).hexdigest()}} + w08 = {**shared, "runtime": {**runtime, "admitted_fixture_modes": 8, "rejected_empty_modes": 2}} + w14 = {**shared, "runtime": {**runtime, "hero_modes": list(range(8)), + "completed_finite_modes": list(range(2)), "invalid_modes": 2}} + w14["public_installations"] = [ + {"mode": mode, "source_archive": distributions[index]["name"], + "source_archive_sha256": distributions[index]["sha256"], "runtime": copy.deepcopy(runtime)} + for mode, index in (("direct_wheel", 1), ("sdist", 0), ("rebuilt_wheel", 2))] for field, paths in { "test_sources": ["tests/integration/test_analytical_installed_runtime.py", "tests/integration/test_analytical_hero_inputs.py", "tests/integration/test_analytical_pipeline.py"], @@ -809,10 +895,12 @@ def test_installed_receipts_bind_current_unit_activation_and_both_refusals(self) for field, value, reason in ( ("unit", "VC", "installed_receipt_current_context_mismatch"), ("unit", "P3-W14", "installed_receipt_current_context_mismatch"), - ("activation_stage", 8, "installed_receipt_current_context_mismatch"), + ("activation_stage", 7, "installed_receipt_current_context_mismatch"), ("activation_stage", True, "installed_receipt_current_context_mismatch"), ("head", "b" * 40, "installed_receipt_head_or_result"), - ("public_refusals", 1, "installed_runtime_boundary_incomplete")): + ("public_refusals", 2, "installed_runtime_boundary_incomplete"), + ("public_refusals", True, "installed_runtime_boundary_incomplete"), + ("public_test_sources", {}, "installed_public_source_changed")): with self.subTest(label=label, field=field, value=value): changed = copy.deepcopy(records[label]) (changed["runtime"] if field == "public_refusals" else changed)[field] = value @@ -820,6 +908,37 @@ def test_installed_receipts_bind_current_unit_activation_and_both_refusals(self) with self.assertRaisesRegex(ValueError, "^" + reason + "$"): installed_receipts(evidence, evidence, binding, distributions) save(evidence / (label + "-installed-runtime.json"), records[label]) + for field, value in (("processing_state", "interrupted"), ("input_state", "rejected"), + ("input_sha256", "0" * 64), ("expectations_sha256", "0" * 64), + ("counts", {}), ("counts", {key: False for key in expected["counts"]}), + ("family_ids", []), ("root_members", []), + ("unavailable_fractions", []), ("basis_members", []), + ("source_unchanged", False), ("cached_identity_reads", True)): + with self.subTest(label=label, public_field=field): + changed = copy.deepcopy(records[label]) + changed["runtime"]["public_audit"][field] = value + save(evidence / (label + "-installed-runtime.json"), changed) + with self.assertRaisesRegex(ValueError, "^installed_public_semantics_missing$"): + installed_receipts(evidence, evidence, binding, distributions) + save(evidence / (label + "-installed-runtime.json"), records[label]) + for encoding in ("json", "markdown"): + with self.subTest(label=label, encoding=encoding): + changed = copy.deepcopy(records[label]) + changed["runtime"]["public_audit"][encoding]["independent_sha256"] = "0" * 64 + save(evidence / (label + "-installed-runtime.json"), changed) + with self.assertRaisesRegex(ValueError, "^installed_public_encoding_missing$"): + installed_receipts(evidence, evidence, binding, distributions) + save(evidence / (label + "-installed-runtime.json"), records[label]) + for mutation, reason in ( + (lambda row: row["public_installations"].pop(), "installed_public_distribution_modes_missing"), + (lambda row: row["public_installations"][1].update(source_archive_sha256="0" * 64), "installed_public_archive_mismatch"), + (lambda row: row["public_installations"][2]["runtime"]["public_audit"].update(processing_state="failed"), "installed_public_semantics_missing")): + changed = copy.deepcopy(w14) + mutation(changed) + save(evidence / "w14-installed-runtime.json", changed) + with self.assertRaisesRegex(ValueError, "^" + reason + "$"): + installed_receipts(evidence, evidence, binding, distributions) + save(evidence / "w14-installed-runtime.json", w14) self.assertEqual(set(installed_receipts(evidence, evidence, binding, distributions)), {"w08", "w14"}) def test_timeout_preserves_partial_stdout_stderr_and_status(self): diff --git a/tests/scaffold/test_packaging.py b/tests/scaffold/test_packaging.py index c872c40..d2bf816 100644 --- a/tests/scaffold/test_packaging.py +++ b/tests/scaffold/test_packaging.py @@ -171,16 +171,58 @@ def test_wheel_installs_without_developer_tools(distributions, tmp_path): command([sys.executable, "-m", "pip", "--python", str(python), "--isolated", "install", "--no-index", "--no-deps", "--no-cache-dir", str(wheel)], cwd=tmp_path) script = """import importlib.metadata as m +import json import source_integrity_toolkit as s assert s.__version__ == '0.1.0.dev0' assert {d.metadata['Name'] for d in m.distributions()} == {'source-integrity-toolkit'} -for call, args in ((s.audit_bundle, (object(),)), (s.audit_file, (object(), object()))): - try: - call(*args, options=object()) - except NotImplementedError: - pass - else: - raise AssertionError('Stub returned a value') +assert s.__all__ == ('audit_bundle', 'audit_file', '__version__', 'AuditReport', + 'AuditAbort', 'AuditCancelled', 'AuditUsageError') +try: + s.audit_bundle(object(), options=object()) +except s.AuditUsageError as error: + assert str(error) == 'Invalid audit invocation.' and error.code == 'invalid_invocation' +else: + raise AssertionError('Invalid invocation returned a value') +try: + s.audit_file(object(), object(), options=object()) +except NotImplementedError: + pass +else: + raise AssertionError('File stub returned a value') +# Independent finite source is supplied by this harness; the installed product +# does not read developer fixtures or schema files. +unknown = {'state': 'unknown', 'value': None, 'precision': None, + 'reason': 'Fictional timing not supplied.'} +provenance = {'attributed_to_ref': 'A', 'basis_kind': 'declaration', + 'evidence_ref_ids': [], 'method': 'Finite fictional public boundary.', + 'qualifications': []} +source = {'contract_version': 'sit-bundle/0.1', 'bundle_id': 'W08-INSTALLED', + 'snapshot_id': 'S1', 'recorded_at': unknown, 'predecessor': None, + 'inquiries': [{'id': 'I', 'target_claim_refs': ['C'], 'target_object_refs': [], + 'seed_artifact_refs': [], 'seed_evidence_refs': [], + 'boundary': {'description': 'Fictional boundary.', + 'criterion': 'Submitted records only.', 'system_refs': []}, + 'time_window': {'start': unknown, 'end': unknown}, 'as_of': unknown, + 'dependency_dimensions': [], 'coverage_assertion_refs': [], 'provenance': provenance}], + 'records': [{'id': 'A', 'kind': 'actor', 'provenance': provenance, + 'data': {'actor_kind': 'human', 'identity_disclosure': 'pseudonymous', + 'display_name': 'Fictional actor.'}}, + {'id': 'C', 'kind': 'claim', 'provenance': provenance, + 'data': {'claim_key': 'claim', 'version_label': 'v1', 'text': 'Fictional claim.', + 'context': 'Finite public boundary.'}}], + 'assertions': [], 'evidence_references': []} +before = json.dumps(source, sort_keys=True) +report = s.audit_bundle(source) +assert type(report) is s.AuditReport and report.report_kind == 'audit_report' +assert report.run['processing_state'] == 'completed' +assert report.input_validation['state'] == 'accepted' +assert type(report.to_json_bytes()) is type(report.to_markdown_bytes()) is bytes +document = json.loads(report.to_json_bytes()) +assert document['input_identity']['bundle_id'] == 'W08-INSTALLED' +assert len(document['capabilities']) == 15 and len(document['observability_domains']) == 5 +assert b'"processing_state": "completed"' in report.to_markdown_bytes() +assert b'"bundle_id": "W08-INSTALLED"' in report.to_markdown_bytes() +assert json.dumps(source, sort_keys=True) == before print('CLEAN_RUNTIME_OK') """ result = command([str(python), "-I", "-B", "-c", script], cwd=tmp_path) diff --git a/tests/security/test_public_api_boundary.py b/tests/security/test_public_api_boundary.py index 5c8cf35..63eecb2 100644 --- a/tests/security/test_public_api_boundary.py +++ b/tests/security/test_public_api_boundary.py @@ -1,6 +1,6 @@ # Copyright 2026 Xiangyu Guo # SPDX-License-Identifier: Apache-2.0 -"""P4-W07 internal invocation safety before the public API is activated. +"""P4-W08 public invocation safety and retained W07 effect controls. Observers cover exercised Python effects in a warmed process. They do not claim hostile same-process isolation, native file validation or future CLI behavior. @@ -16,8 +16,8 @@ import pytest from source_integrity_toolkit import api -from source_integrity_toolkit.contracts.execution import AuditAbort, AuditCancelled -from source_integrity_toolkit.contracts.report import AuditReport +from source_integrity_toolkit import AuditAbort, AuditCancelled, AuditUsageError +from source_integrity_toolkit import AuditReport from source_integrity_toolkit.runtime import boundary, resources @@ -59,7 +59,7 @@ def finite_input(): "root", "dict_subclass", "key_subclass", "string_subclass", "list_subclass", "nested_object", "generator", "cycle", )) -def test_internal_invocation_rejects_hostile_input_without_executing_protocols(kind, capsys): +def test_public_invocation_rejects_hostile_input_without_executing_protocols(kind, capsys): calls = [] def touched(*args, **kwargs): @@ -102,7 +102,7 @@ def generator(): source["extensions"] = {"fictional:private": generator()} else: source["extensions"] = {"fictional:cycle": source} - result = boundary._audit_value(source) + result = api.audit_bundle(source) assert type(result) is AuditReport assert result.report_kind == "validation_diagnostics" assert result.input_validation["state"] == "rejected" @@ -114,7 +114,7 @@ def generator(): @pytest.mark.parametrize("fault", ("opaque", "memory", "cancel")) -def test_internal_native_fault_surface_does_not_format_or_retain_source_exception(fault, monkeypatch, capsys): +def test_public_native_fault_surface_does_not_format_or_retain_source_exception(fault, monkeypatch, capsys): calls = [] class Opaque(Exception): @@ -137,7 +137,7 @@ def fail(*args, **kwargs): source = finite_input() before = copy.deepcopy(source) try: - result = boundary._audit_value(source) + result = api.audit_bundle(source) except (AuditAbort, AuditCancelled) as error: if fault == "cancel": assert type(error) is AuditCancelled @@ -159,11 +159,11 @@ def fail(*args, **kwargs): assert capsys.readouterr() == ("", "") -def test_internal_report_contains_only_frozen_disclosure_and_two_cached_bytes(monkeypatch): +def test_public_report_contains_only_frozen_disclosure_and_two_cached_bytes(monkeypatch): source = finite_input() source["extensions"] = {"fictional:private": {"secret": CANARY}} before = copy.deepcopy(source) - report = boundary._audit_value(source) + report = api.audit_bundle(source) assert type(report) is AuditReport assert report.run["processing_state"] == "completed" assert report.input_validation["state"] == "accepted" @@ -208,7 +208,7 @@ def forbidden(*args, **kwargs): assert type(value) in (str, bool, int, type(None)) -def test_w07_public_entry_points_still_refuse_without_touching_arguments(): +def test_public_usage_and_file_refusals_leave_hostile_arguments_untouched(): calls = [] class Hostile: @@ -218,7 +218,7 @@ def touched(self, *args, **kwargs): __repr__ = __str__ = __iter__ = __len__ = __fspath__ = touched hostile = Hostile() - with pytest.raises(NotImplementedError): + with pytest.raises(AuditUsageError, match="^Invalid audit invocation\\.$"): api.audit_bundle(hostile, options=hostile) with pytest.raises(NotImplementedError): api.audit_file(hostile, hostile, options=hostile) @@ -229,13 +229,13 @@ def touched(self, *args, **kwargs): import sys,json,ctypes,socket,subprocess,os,builtins,io import encodings.idna sys.path.insert(0,sys.argv[1]) -from source_integrity_toolkit.runtime.boundary import _audit_value -from source_integrity_toolkit.contracts.report import AuditReport +from source_integrity_toolkit import audit_bundle +from source_integrity_toolkit import AuditReport source=json.loads(sys.stdin.buffer.read());mode=sys.argv[2];events=[] # Warm trusted imports before observing the entire subsequent invocation. # Negative controls exercise each observer directly and need no audit replay. if mode=='success': - warm=_audit_value(source) + warm=audit_bundle(source) assert type(warm) is AuditReport and warm.run['processing_state']=='completed' before=json.dumps(source,sort_keys=True) def audit(event,args): @@ -253,11 +253,11 @@ def metadata_trap(*args,**kwargs): elif mode=='negative-native': ctypes.CDLL('FICTIONAL_MUST_NOT_LOAD') elif mode=='negative-process': subprocess.Popen([sys.executable,'-c','pass']) else: - report=_audit_value(source) + report=audit_bundle(source) assert type(report) is AuditReport and report.run['processing_state']=='completed' assert report.to_json_bytes()==warm.to_json_bytes() assert report.to_markdown_bytes()==warm.to_markdown_bytes() - rejected=_audit_value({'fictional:source':source}) + rejected=audit_bundle({'fictional:source':source}) assert type(rejected) is AuditReport and rejected.input_validation['state']=='rejected' assert json.dumps(source,sort_keys=True)==before except RuntimeError: @@ -272,7 +272,7 @@ def metadata_trap(*args,**kwargs): ("negative-network", "socket.getaddrinfo"), ("negative-native", "ctypes.dlopen"), ("negative-process", "subprocess.Popen"), )) -def test_internal_complete_invocation_has_no_observed_file_network_native_or_process_effect(mode, event): +def test_public_complete_invocation_has_no_observed_file_network_native_or_process_effect(mode, event): source = finite_input() source["extensions"] = {"fictional:untrusted": { "path": "../" + CANARY, "$ref": "https://fictional.invalid/schema", @@ -284,3 +284,70 @@ def test_internal_complete_invocation_has_no_observed_file_network_native_or_pro assert run.returncode == 0, run.stderr.decode(errors="replace") assert json.loads(run.stdout) == {"ok": True, "events": [] if event is None else [event]} assert run.stderr == b"" and CANARY.encode() not in run.stdout + + +@pytest.mark.parametrize("kind", ( + "opaque_options", "dict_subclass", "text_key_subclass", "collision_key", + "hostile_value", "unknown_key", "too_many_keys", "list_options", +)) +def test_hostile_options_are_rejected_before_dossier_or_runtime_access(kind, monkeypatch, capsys): + calls = [] + + def touched(*args, **kwargs): + calls.append("caller_protocol") + raise AssertionError("options executed a caller protocol") + + class Hostile: + __str__ = __repr__ = __iter__ = __bool__ = __eq__ = touched + __len__ = __getitem__ = __int__ = __float__ = __index__ = touched + __fspath__ = __copy__ = __deepcopy__ = touched + + class HostileDict(dict): + __str__ = __repr__ = __iter__ = __len__ = items = keys = values = touched + __getitem__ = __contains__ = touched + + class HostileText(str): + __str__ = __repr__ = __iter__ = __len__ = __eq__ = touched + __hash__ = str.__hash__ + + class CollisionKey(Hostile): + def __hash__(self): + # Building the caller-owned dict is outside the observed operation. + # A lookup for this literal during validation would invoke __eq__. + calls.append("caller_hash") + return hash("raw_file_digest") + + if kind == "opaque_options": + options = Hostile() + elif kind == "dict_subclass": + options = HostileDict(raw_file_digest=False) + elif kind == "text_key_subclass": + options = {HostileText("raw_file_digest"): False} + elif kind == "collision_key": + options = {CollisionKey(): False} + elif kind == "hostile_value": + options = {"raw_file_digest": Hostile()} + elif kind == "unknown_key": + options = {CANARY: Hostile()} + elif kind == "too_many_keys": + options = {"raw_file_digest": False, CANARY: Hostile()} + else: + options = [Hostile()] + calls.clear() + dossier = HostileDict() + + def runtime_forbidden(*args, **kwargs): + calls.append("runtime") + raise AssertionError("invalid options reached the invocation") + + monkeypatch.setattr(api, "_audit_value", runtime_forbidden) + monkeypatch.setattr(boundary, "_new_analysis_budget", runtime_forbidden) + with pytest.raises(AuditUsageError) as captured: + api.audit_bundle(dossier, options=options) + error = captured.value + assert type(error) is AuditUsageError + assert error.code == "invalid_invocation" + assert str(error) == error.safe_message == "Invalid audit invocation." + assert error.args == ("Invalid audit invocation.",) + assert CANARY not in repr(error) + str(error.args) + "".join(traceback.format_exception(error)) + assert calls == [] and capsys.readouterr() == ("", "") diff --git a/tests/security/test_scaffold_inertness.py b/tests/security/test_scaffold_inertness.py index 5e1c7c6..7ebbebe 100644 --- a/tests/security/test_scaffold_inertness.py +++ b/tests/security/test_scaffold_inertness.py @@ -117,7 +117,8 @@ def __getattribute__(self, name): refuse("argument_attribute") out, err = io.StringIO(), io.StringIO() -result = {"ok": False, "imports": 0, "api_refusals": 0, "violations": violations} +result = {"ok": False, "imports": 0, "api_refusals": 0, + "bundle_usage_failures": 0, "bundle_reports": 0, "violations": violations} try: with contextlib.redirect_stdout(out), contextlib.redirect_stderr(err): names = [] @@ -135,10 +136,8 @@ def __getattribute__(self, name): from source_integrity_toolkit import cli expected = "Source Integrity Toolkit audit is not implemented in the Phase 1 scaffold." for operation in ( - lambda: sit.audit_bundle(Bomb(), options=Bomb()), lambda: sit.audit_file(Bomb(), Bomb(), options=Bomb()), - lambda: sit.audit_file(request["input"], request["output"]), - lambda: sit.audit_bundle({"CANARY": [Bomb()]}, options={"raw_file_digest": True})): + lambda: sit.audit_file(request["input"], request["output"])): try: operation() except NotImplementedError as exc: @@ -147,6 +146,62 @@ def __getattribute__(self, name): result["api_refusals"] += 1 else: raise ProbeViolation("audit_did_not_refuse") + for operation in ( + lambda: sit.audit_bundle(Bomb(), options=Bomb()), + lambda: sit.audit_bundle({"CANARY": [Bomb()]}, options={"raw_file_digest": True})): + try: + operation() + except sit.AuditUsageError as exc: + if str(exc) != "Invalid audit invocation." or exc.code != "invalid_invocation": + raise ProbeViolation("unsafe_usage_failure") + result["bundle_usage_failures"] += 1 + else: + raise ProbeViolation("invalid_options_accepted") + rejected = sit.audit_bundle({"CANARY": [Bomb()]}) + if (type(rejected) is not sit.AuditReport or + rejected.report_kind != "validation_diagnostics" or + rejected.input_validation["state"] != "rejected"): + raise ProbeViolation("hostile_input_accepted") + if (json.loads(rejected.to_json_bytes())["input_validation"]["state"] != "rejected" or + b'"state": "rejected"' not in rejected.to_markdown_bytes()): + raise ProbeViolation("rejected_formats_missing") + result["bundle_reports"] += 1 + # Independent, finite dossier: one claim inquiry, no seeds or dimensions. + unknown = {"state": "unknown", "value": None, "precision": None, + "reason": "Fictional timing not supplied."} + provenance = {"attributed_to_ref": "A", "basis_kind": "declaration", + "evidence_ref_ids": [], "method": "Finite fictional public boundary.", + "qualifications": []} + source = {"contract_version": "sit-bundle/0.1", "bundle_id": "W08-SCAFFOLD", + "snapshot_id": "S1", "recorded_at": unknown, "predecessor": None, + "inquiries": [{"id": "I", "target_claim_refs": ["C"], "target_object_refs": [], + "seed_artifact_refs": [], "seed_evidence_refs": [], + "boundary": {"description": "Fictional boundary.", + "criterion": "Submitted records only.", "system_refs": []}, + "time_window": {"start": unknown, "end": unknown}, "as_of": unknown, + "dependency_dimensions": [], "coverage_assertion_refs": [], "provenance": provenance}], + "records": [{"id": "A", "kind": "actor", "provenance": provenance, + "data": {"actor_kind": "human", "identity_disclosure": "pseudonymous", + "display_name": "Fictional actor."}}, + {"id": "C", "kind": "claim", "provenance": provenance, + "data": {"claim_key": "claim", "version_label": "v1", "text": "Fictional claim.", + "context": "Finite public boundary."}}], + "assertions": [], "evidence_references": []} + before = json.dumps(source, sort_keys=True) + delivered = sit.audit_bundle(source) + if (type(delivered) is not sit.AuditReport or delivered.report_kind != "audit_report" or + delivered.run["processing_state"] != "completed" or + delivered.input_validation["state"] != "accepted"): + raise ProbeViolation("public_delivery_missing") + document = json.loads(delivered.to_json_bytes()) + markdown = delivered.to_markdown_bytes() + if (document["input_identity"]["bundle_id"] != "W08-SCAFFOLD" or + len(document["capabilities"]) != 15 or len(document["observability_domains"]) != 5 or + b'"processing_state": "completed"' not in markdown or + b'"bundle_id": "W08-SCAFFOLD"' not in markdown or + before != json.dumps(source, sort_keys=True)): + raise ProbeViolation("public_content_changed") + result["bundle_reports"] += 1 if out.getvalue() or err.getvalue(): raise ProbeViolation("unexpected_import_or_api_output") if cli.main(["--version"]) != 0: @@ -285,7 +340,9 @@ def test_imports_api_and_cli_are_inert(self): result = run_probe() self.assertTrue(result["ok"], result) self.assertEqual(result["imports"], 48) - self.assertEqual(result["api_refusals"], 4) + self.assertEqual(result["api_refusals"], 2) + self.assertEqual(result["bundle_usage_failures"], 2) + self.assertEqual(result["bundle_reports"], 2) self.assertEqual(result["violations"], []) self.assertTrue(result["input_unchanged"] and result["output_unchanged"]) self.assertTrue(result["package_paths_unchanged"]) From 7102222dc62461ce44d3a32c46f1a947b4baea59 Mon Sep 17 00:00:00 2001 From: DavidWallstructurallaw Date: Sun, 25 Oct 2026 22:14:18 -0700 Subject: [PATCH 21/21] Record verified public memory and installed audit behavior Bind the actual 231 passing scoped tests and 145 successful subtest events to unchanged source bytes and all three real installed distribution paths. Preserve earlier failures, separate-owner repairs and exact evidence limits. Public field obligation closure and final hosted acceptance remain pending. SIT-Phase-Unit: P4-W08 --- phase4/implementation_evidence.json | 924 ++++++++++++++++++++++++++- phase4/report_contract_coverage.json | 924 ++++++++++++++++++++++++++- 2 files changed, 1838 insertions(+), 10 deletions(-) diff --git a/phase4/implementation_evidence.json b/phase4/implementation_evidence.json index 8d53558..0810d56 100644 --- a/phase4/implementation_evidence.json +++ b/phase4/implementation_evidence.json @@ -2,7 +2,7 @@ "phase": "P4", "current_unit": "P4-W08", "activation_stage": 8, - "status": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", + "status": "W08 public in-memory audit activation and recorded scoped local/installed verification complete; W09 field obligations and W10 final hosted acceptance remain pending.", "owner_authorization": "Approved PHASE_4_PLAN.md and explicit user instruction W08 继续.", "previous_checkpoint": { "phase": "P4", @@ -6614,9 +6614,753 @@ "source_files": 5, "source_hashes_unchanged": true, "passed_in_recorded_scope": true + }, + { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/scaffold/test_api_stubs.py", + "tests/scaffold/test_packaging.py", + "tests/scaffold/test_ci_contract.py", + "tests/security/test_scaffold_inertness.py", + "tests/integration/test_preparation_capability_boundary.py", + "tests/contract/test_analytical_observability.py", + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py", + "tests/integration/test_public_installed_runtime.py", + "tests/contract/test_report_contract.py::test_w02_keeps_both_public_audit_functions_in_their_existing_refusal_state", + "tests/contract/test_report_contract.py::test_usage_error_has_only_the_fixed_trusted_invocation_message_and_code", + "tests/contract/test_report_contract.py::test_hostile_protocols_cannot_run_during_contract_or_transport_rejection", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-targeted-001.xml", + "--durations=15", + "--basetemp=/workspace/scratch/4e5267fe5990/p4w08-targeted-001-pytest" + ], + "started_at_utc": "2026-10-26T05:03:13.998859+00:00", + "elapsed_seconds": 335.6938662619996, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "head": "e0039d506e7aeb3b10e05efae70385e1a3b94e69", + "tree": "cd4d1f373ac915e7b971d92f5e697cf67598049a", + "source_files": 234, + "source_bytes_unchanged": true, + "scope": "W08 changed public API, migrated old guarantees, direct receipt controls, real installed preparation/analysis/public paths, and three affected N01 controls. Local Python 3.12 scope; no full-suite or hosted-matrix attestation." + }, + "distinct_case_count": 231, + "case_counts": { + "passed": 231, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_suite_tests_including_any_subtests": 376, + "junit_seconds": 335.298, + "identities_sha256": "1233b3b695ec85a60c040e1e4d89ac728b9d2a17168d16f36be208c4d39c5748", + "raw": [ + { + "file": "p4w08-targeted-001-exit.json", + "sha256": "a6109261e62236d34e8608a81b17251e14ac6e465b197582012ccc86e821b486", + "bytes": 1870 + }, + { + "file": "p4w08-targeted-001.xml", + "sha256": "2a93881e5f4dfa5034c233740adeadb755325c595f6212ae74478878b3d48425", + "bytes": 37701 + }, + { + "file": "p4w08-targeted-001.log", + "sha256": "b7c15b6eee32d25dca9878fb0c332c7d727ce22a8009be8946c18cd25da592e3", + "bytes": 2417 + }, + { + "file": "p4w08-targeted-001-source-before.json", + "sha256": "b608b1c26991dba468271941c907523b376f936d2d5da4bbb93a9995802e9671", + "bytes": 25795 + }, + { + "file": "p4w08-targeted-001-source-after.json", + "sha256": "b608b1c26991dba468271941c907523b376f936d2d5da4bbb93a9995802e9671", + "bytes": 25795 + } + ], + "successful_subtests_actual": 145, + "successful_subtests_basis": "Successful JUnit suite tests minus distinct testcase identities; only computed for exit 0 with no failure/error/skip. These events are not additional independent cases.", + "source_files": 234, + "source_hashes_unchanged": true, + "passed_in_recorded_scope": true + } + ], + "installed_receipts": [ + { + "raw": { + "file": "p4w08-installed-runtime.json", + "sha256": "509f4ccef7fb0c5a9850da8fde086a669cbdadee713ce0420fd8207f4c180960", + "bytes": 95366 + }, + "head": "e0039d506e7aeb3b10e05efae70385e1a3b94e69", + "unit": "P4-W08", + "activation_stage": 8, + "ok": true, + "public_test_sources": { + "tests/integration/test_public_installed_runtime.py": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01" + }, + "distribution_count": 3, + "three_public_distribution_modes_executed": true, + "public_installations": [ + { + "mode": "direct_wheel", + "source_archive": "source_integrity_toolkit-0.1.0.dev0-py3-none-any.whl", + "source_archive_sha256": "cf46e75e9fc6eec00336f4c49d2a75314f776bd2690128ef231b604585409e62", + "module_count": 48, + "module_hashes_sha256": "e13ea146aca847764bae4b60eb8673d15ee5adb38fdcd47db70204b979e38328", + "public_audit": { + "basis_members": [ + [ + "inquiries", + "I" + ], + [ + "records", + "A" + ], + [ + "records", + "C" + ] + ], + "basis_total": 3, + "cached_identity_reads": 3, + "case_id": "P4-W08-INSTALLED", + "counts": { + "claim_artifact_record_count": 0, + "nominal_seed_artifact_record_count": 0, + "seed_evidence_item_count": 0, + "unresolved_seed_artifact_reference_count": 0 + }, + "detached_after_source_clear": true, + "expectations_sha256": "2c6b002b7dc8f00f6d07ba854bf0e3c5a67e72facabb961a2b9487fc55bea21e", + "family_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "immutable_roots_and_nested": true, + "input_sha256": "fbf2cc1eb831127300be268f620afde5e57b3f68d6966ca8460a05945c967ca9", + "input_state": "accepted", + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "processing_state": "completed", + "report_kind": "audit_report", + "root_members": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "source_unchanged": true, + "unavailable_fractions": [ + "single_origin_contribution_hhi", + "documentary_origin_resolution_fraction", + "inherited_only_seed_fraction" + ] + }, + "public_refusals": 1, + "normal_effects": [], + "negative_events": [ + "open", + "socket.getaddrinfo", + "ctypes.dlopen" + ], + "runtime_distributions": [ + "source-integrity-toolkit" + ] + }, + { + "mode": "sdist", + "source_archive": "source_integrity_toolkit-0.1.0.dev0.tar.gz", + "source_archive_sha256": "bcdb4538b0ed7c5af74c8b837e6a9136401a0b0545ae201ca60ca66aef062500", + "module_count": 48, + "module_hashes_sha256": "e13ea146aca847764bae4b60eb8673d15ee5adb38fdcd47db70204b979e38328", + "public_audit": { + "basis_members": [ + [ + "inquiries", + "I" + ], + [ + "records", + "A" + ], + [ + "records", + "C" + ] + ], + "basis_total": 3, + "cached_identity_reads": 3, + "case_id": "P4-W08-INSTALLED", + "counts": { + "claim_artifact_record_count": 0, + "nominal_seed_artifact_record_count": 0, + "seed_evidence_item_count": 0, + "unresolved_seed_artifact_reference_count": 0 + }, + "detached_after_source_clear": true, + "expectations_sha256": "2c6b002b7dc8f00f6d07ba854bf0e3c5a67e72facabb961a2b9487fc55bea21e", + "family_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "immutable_roots_and_nested": true, + "input_sha256": "fbf2cc1eb831127300be268f620afde5e57b3f68d6966ca8460a05945c967ca9", + "input_state": "accepted", + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "processing_state": "completed", + "report_kind": "audit_report", + "root_members": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "source_unchanged": true, + "unavailable_fractions": [ + "single_origin_contribution_hhi", + "documentary_origin_resolution_fraction", + "inherited_only_seed_fraction" + ] + }, + "public_refusals": 1, + "normal_effects": [], + "negative_events": [ + "open", + "socket.getaddrinfo", + "ctypes.dlopen" + ], + "runtime_distributions": [ + "source-integrity-toolkit" + ] + }, + { + "mode": "rebuilt_wheel", + "source_archive": "source_integrity_toolkit-0.1.0.dev0-py3-none-any.whl", + "source_archive_sha256": "929feb73153f163098493f9ad85711961886861cb90ea5cc5328d2861feb3938", + "module_count": 48, + "module_hashes_sha256": "e13ea146aca847764bae4b60eb8673d15ee5adb38fdcd47db70204b979e38328", + "public_audit": { + "basis_members": [ + [ + "inquiries", + "I" + ], + [ + "records", + "A" + ], + [ + "records", + "C" + ] + ], + "basis_total": 3, + "cached_identity_reads": 3, + "case_id": "P4-W08-INSTALLED", + "counts": { + "claim_artifact_record_count": 0, + "nominal_seed_artifact_record_count": 0, + "seed_evidence_item_count": 0, + "unresolved_seed_artifact_reference_count": 0 + }, + "detached_after_source_clear": true, + "expectations_sha256": "2c6b002b7dc8f00f6d07ba854bf0e3c5a67e72facabb961a2b9487fc55bea21e", + "family_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "immutable_roots_and_nested": true, + "input_sha256": "fbf2cc1eb831127300be268f620afde5e57b3f68d6966ca8460a05945c967ca9", + "input_state": "accepted", + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "processing_state": "completed", + "report_kind": "audit_report", + "root_members": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "source_unchanged": true, + "unavailable_fractions": [ + "single_origin_contribution_hhi", + "documentary_origin_resolution_fraction", + "inherited_only_seed_fraction" + ] + }, + "public_refusals": 1, + "normal_effects": [], + "negative_events": [ + "open", + "socket.getaddrinfo", + "ctypes.dlopen" + ], + "runtime_distributions": [ + "source-integrity-toolkit" + ] + } + ], + "retained_preparation_analysis_receipt": { + "admitted_fixture_modes": null, + "rejected_empty_modes": null, + "hero_modes": [ + { + "case": "H7-01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 6852668692, + "requested": 4, + "used_before": 9999999 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3480762784, + "job_before": 1000000, + "kind": "job", + "requested": 5, + "used_before": 5012999 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 9999999 + }, + { + "case": "H7-01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 6319428026, + "requested": 4, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3206228689, + "job_before": 1000000, + "kind": "job", + "requested": 5, + "used_before": 5537231 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7055591996, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3571709473, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 4993665 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7512302139, + "requested": 22, + "used_before": 9999991 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3380162707, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5517829 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 9999991 + }, + { + "case": "H7-V02", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 8268377911, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 4336378735, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5234918 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V02", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7159348511, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 4080571280, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5786689 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V03", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 6254200335, + "requested": 2, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 2998085349, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5190170 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V03", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7229924491, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3772662466, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5736688 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 10000000 + } + ], + "completed_finite_modes": [ + { + "capabilities": 15, + "counts": { + "claim_artifact_record_count": 1, + "documentary_origin_boundary_record_count": 1, + "nominal_seed_artifact_record_count": 1, + "reached_origin_record_count": 1, + "seed_evidence_item_count": 2 + }, + "domains": 5, + "hhi": [ + 4, + 4 + ], + "memberships": { + "e": [ + "origin" + ], + "e2": [ + "origin" + ] + }, + "mode": "value", + "source_unchanged": true, + "state": "completed" + }, + { + "capabilities": 15, + "counts": { + "claim_artifact_record_count": 1, + "documentary_origin_boundary_record_count": 1, + "nominal_seed_artifact_record_count": 1, + "reached_origin_record_count": 1, + "seed_evidence_item_count": 2 + }, + "domains": 5, + "hhi": [ + 4, + 4 + ], + "memberships": { + "e": [ + "origin" + ], + "e2": [ + "origin" + ] + }, + "mode": "utf8", + "source_unchanged": true, + "state": "completed" + } + ], + "invalid_modes": 2 + }, + "scope": "Actual receipt facts; source/head and inventory reconciliation are separately evidenced by the recorded runner checks." } ], - "installed_receipts": [], "supporting_receipts": { "public_test_migration": [ { @@ -7005,12 +7749,37 @@ } } } + ], + "actual_installed_reconciliation": [ + { + "raw": { + "file": "p4w08-installed-receipts.json", + "sha256": "636d27abb224136cdfde57c0df1ba5475b723755beacd34427f5c9e8813887a0", + "bytes": 102026 + }, + "record": { + "scope": "Full structured contents retained in the hash-bound external receipt.", + "top_level_keys": [ + "status", + "head", + "receipt", + "receipt_sha256", + "module_count", + "public_installations", + "private_hero_modes", + "private_completed_finite_modes", + "actual_archives", + "retained_preparation_test", + "scope" + ] + } + } ] }, "notes": [], - "status": "pending", - "status_meaning": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", - "recorded_at_utc": "2026-10-26T05:02:10.535014+00:00", + "status": "locally_verified", + "status_meaning": "W08 public in-memory audit activation and recorded scoped local/installed verification complete; W09 field obligations and W10 final hosted acceptance remain pending.", + "recorded_at_utc": "2026-10-26T05:12:10.597117+00:00", "evidence_scope": "Only explicitly recorded runs, source scopes and installed receipts are claimed. No new full-suite or four-profile success follows from this record.", "reviewed_source_hashes": { "README.md": "6710253de63e02fe8b4214a43cca208e197b564252a819468efaaebbc330e5f2", @@ -7029,6 +7798,151 @@ "tests/scaffold/test_packaging.py": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", "tests/security/test_scaffold_inertness.py": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee" + }, + "independent_review": { + "raw": { + "file": "p4w08-independent-review.json", + "sha256": "088d93a6c5357fbbf8ae9a21cc81e4262b1823085172fa7f68b9f08e4098056f", + "bytes": 9483 + }, + "record": { + "status": "passed_no_remaining_blocking_findings", + "review_kind": "Independent tool-assisted read-only review of the W08 scoped implementation checkpoint; not external human audit or final hosted acceptance.", + "reviewed_at_utc": "2026-10-26T05:11:40.418757+00:00", + "reviewed_head": "e0039d506e7aeb3b10e05efae70385e1a3b94e69", + "reviewed_tree": "cd4d1f373ac915e7b971d92f5e697cf67598049a", + "base": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "reviewed_source_hashes": { + "README.md": "6710253de63e02fe8b4214a43cca208e197b564252a819468efaaebbc330e5f2", + "src/source_integrity_toolkit/__init__.py": "79cb024eb81bcef26a8dc94100b995e27f6207e7b2aac343eab7c57e488532d0", + "src/source_integrity_toolkit/api.py": "1ce3a72b8cc064718133b75e4991e14ac4d56072cdf6f2017af292e449789f7f", + "src/source_integrity_toolkit/contracts/execution.py": "d11944bc016528f8642701f5ba6df49bb98697911edb2dd537fdd19dcae5a390", + "tests/contract/test_analytical_observability.py": "ed307fd5243ea47e1561bd7ae797691ff710ed97f5b2009f012332da03de83c6", + "tests/contract/test_phase2_transition.py": "4d2e6ff10d19820b33185d7fad76fa52fcf609a7d37f9cd32b439bf5d7455b22", + "tests/contract/test_public_api.py": "7ca5422483ee15d0b9b98b8435bf672ea1bc60be3478559aafe3454f9830248a", + "tests/contract/test_report_contract.py": "b6b87588f6bde52a86af331c6ae08e523502de4a70725b729e9dd61e69033228", + "tests/integration/test_analytical_installed_runtime.py": "64f83d86e57b8ca52c85775cd89c50e448acebaa2fad291ef88c5d4495ff43c6", + "tests/integration/test_preparation_capability_boundary.py": "c757f20cc1cc3d6abfdb160fa6a766242f07fd0046ee9e67be15280542260300", + "tests/integration/test_public_audit.py": "74d905212c0366794b21f6d9823f2b39187be3c8d20c77f84d612d3f79bab5ac", + "tests/integration/test_public_installed_runtime.py": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01", + "tests/scaffold/test_api_stubs.py": "cbac5ab7257f94d215a856b5125786115df3f215bebc358dac1a223ab3de05b1", + "tests/scaffold/test_ci_contract.py": "d6e91cc44ad2967d4feaca45d3f9bb696e439c8ed2caa0a5e777de4deaf895ce", + "tests/scaffold/test_packaging.py": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", + "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", + "tests/security/test_scaffold_inertness.py": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee" + }, + "unchanged_boundary_hashes": { + "src/source_integrity_toolkit/contracts/report.py": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "src/source_integrity_toolkit/runtime/boundary.py": "7a497488f4524589c8de0a3ba5a10474fe5f4319c7f6eda9365e9e417a805d39", + "src/source_integrity_toolkit/cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "tools/check_scaffold_boundary.py": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63", + ".github/workflows/phase1-ci.yml": "7863586a7be20c3b6d2aa88e7879a30b7cea6960607787ac52078f8e86fba341", + "PHASE_4_PLAN.md": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "reviewed_design": [ + "Only P02/P11/P12 change product bytes. audit_bundle validates exact dictionary options, bounded to at most one pair, with exact key/value type checks before equality or truth testing; no caller hash, repr, protocol or dossier access precedes usage rejection.", + "The existing W07 _audit_value path is reused without a new ledger, deadline, limit or altered analysis/rendering semantics. P01/P10 remain unchanged.", + "AuditUsageError retains fixed message, safe args and code; ordinary traceback propagation is permitted while other fields remain immutable. Seven exports have exact identity/order and the development version is unchanged.", + "audit_file function source is byte-identical; CLI, guard, workflow and approved plan bytes are unchanged. Old file/CLI/effect/private controls remain directly exercised.", + "V03 changes only installed public receipt reconciliation and its direct counterexamples. Policy, collection, workflow, execution limits and old receipt bindings remain.", + "All three install origins perform actual isolated public invocations, compare exact bytes to independent standard-library encodings of all sixteen exposed roots and literal semantic expectations, bind all 48 module hashes, and retain file refusal and effect negative controls.", + "README accurately documents in-memory behavior, safe states and options while preserving pending W09/W10, file/CLI and release boundaries." + ], + "findings_closed": [ + { + "finding": "Public refusal count changes from 2 to 1 would let bool True pass a plain equality check; new zero-valued semantic counters also need exact integer typing.", + "resolution": "V03 now requires exact int for public_refusals, basis_total and every expected count. True/False receipt mutants are rejected. The final unified run covers these controls." + } + ], + "scoped_validation": { + "raw": { + "file": "p4w08-targeted-001.xml", + "sha256": "2a93881e5f4dfa5034c233740adeadb755325c595f6212ae74478878b3d48425" + }, + "execution": { + "file": "p4w08-targeted-001-exit.json", + "sha256": "a6109261e62236d34e8608a81b17251e14ac6e465b197582012ccc86e821b486" + }, + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "independent_tests_passed": 231, + "successful_subtests_separately_recorded": 145, + "junit_aggregate": 376, + "failures": 0, + "errors": 0, + "skipped": 0, + "junit_seconds": 335.298, + "runner_seconds": 335.6938662619996, + "source_files": 234, + "all_source_hashes_stable": true, + "scope": "Twelve named W08 test files plus three affected N01 nodes; no complete-suite or four-profile claim." + }, + "installed_verification": { + "receipt": { + "file": "p4w08-installed-runtime.json", + "sha256": "509f4ccef7fb0c5a9850da8fde086a669cbdadee713ce0420fd8207f4c180960" + }, + "reconciliation": { + "file": "p4w08-installed-receipts.json", + "sha256": "636d27abb224136cdfde57c0df1ba5475b723755beacd34427f5c9e8813887a0" + }, + "origins": [ + "direct_wheel", + "sdist", + "rebuilt_wheel" + ], + "matching_modules_per_origin": 48, + "exact_archives_independently_rechecked": 6, + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "private_hero_modes_retained": 8, + "private_completed_finite_modes_retained": 2, + "preparation_local_receipt_limit": { + "passed": true, + "junit_seconds": 45.034, + "receipt_retained_locally": false, + "limitation": "The existing local unittest deletes its temporary receipt. Its actual passing assertions are evidenced by JUnit; hosted mode retains the receipt." + } + }, + "separate_repairs": [ + { + "owner": "P4-W07", + "commit": "d1b812315364576d0099518abd5ae152531c8fc8", + "scope": "N12/D05 only; Python 3.13 FrozenInstanceError versus earlier TypeError assertion. Read-only enforcement was already correct; state/caches/budget preservation strengthened. Both original failures retained, local affected node passed, final W08 node passed." + }, + { + "owner": "P4-W02", + "commits": [ + "9329aeeab6958895100e33ac997b8db6dbadd65d", + "f2e4b2a8b8b6eb7aed4c6215e8504cc7ee1daaa2" + ], + "scope": "N01/D05 only; old refusal test becomes verified-stage-aware while preserving its original identity and pre-W08 refusal. Clean stage7 control and final stage8 real public branch both passed." + } + ], + "earlier_attempts": "The first new fast N06 run had 35 passed/1 failed due to an omitted period in its fixed-message regex; the corrected test retained original product wording, then 36 passed. These records and the W07 hosted failures remain preserved.", + "limitations": [ + "Local execution used Python 3.12.14. New Python 3.11/3.13 and Windows hosted candidate results remain pending; prior repaired Python 3.13 failure is not presented as a new hosted success.", + "All 228 public field obligations and W09/W10 final acceptance remain pending. This review does not authorize merge, release, native file APIs or CLI auditing.", + "Final D04/D05 evidence records may follow this reviewed executable/test checkpoint; all other reviewed source hashes must remain unchanged.", + "Historical Windows Python 3.13 suite time was 2300.669 seconds under the unchanged 2400-second budget. Static W08 estimates and the new local durations show narrow timing margin; they do not establish a hosted timeout or success. No gate or limit was relaxed. See p4w08-runtime-headroom-review.json." + ], + "scope_receipt": { + "file": "p4w08-initial-committed-scope.json", + "sha256": "00999a5a9181c16a8179be9240e0bc4953247d3a7c4de34932815b250a6f28fa" + }, + "timing_review": { + "file": "p4w08-runtime-headroom-review.json", + "sha256": "6a009b7331031e68156cedbbbf1ec952f591dfcbabed0e7883e5d8cf0bc6b905" + } + } } }, "historical_top_level_scope": "All pre-existing checkpoint changes, validation, package_boundary, failures, remaining, unchanged_boundaries, timestamps, publication note and original-owner repair fields retain their original historical scope. Current W08 facts are in w08_checkpoint; no previous record is recursively copied or erased." diff --git a/phase4/report_contract_coverage.json b/phase4/report_contract_coverage.json index eb814ac..d49bb3e 100644 --- a/phase4/report_contract_coverage.json +++ b/phase4/report_contract_coverage.json @@ -1,7 +1,7 @@ { "format": "sit-phase4-report-coverage/0.1", "unit": "P4-W08", - "status": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", + "status": "W08 public in-memory audit activation and recorded scoped local/installed verification complete; W09 field obligations and W10 final hosted acceptance remain pending.", "purpose": "Review-only source and obligation map. It grants no authority, selects no tests and is not imported by product code.", "phase4_plan": { "path": "PHASE_4_PLAN.md", @@ -17606,9 +17606,753 @@ "source_files": 5, "source_hashes_unchanged": true, "passed_in_recorded_scope": true + }, + { + "execution": { + "command": [ + "/workspace/scratch/4e5267fe5990/p4w01-venv/bin/python", + "-B", + "-m", + "pytest", + "-q", + "tests/scaffold/test_api_stubs.py", + "tests/scaffold/test_packaging.py", + "tests/scaffold/test_ci_contract.py", + "tests/security/test_scaffold_inertness.py", + "tests/integration/test_preparation_capability_boundary.py", + "tests/contract/test_analytical_observability.py", + "tests/contract/test_phase2_transition.py", + "tests/integration/test_analytical_installed_runtime.py", + "tests/contract/test_public_api.py", + "tests/security/test_public_api_boundary.py", + "tests/integration/test_public_audit.py", + "tests/integration/test_public_installed_runtime.py", + "tests/contract/test_report_contract.py::test_w02_keeps_both_public_audit_functions_in_their_existing_refusal_state", + "tests/contract/test_report_contract.py::test_usage_error_has_only_the_fixed_trusted_invocation_message_and_code", + "tests/contract/test_report_contract.py::test_hostile_protocols_cannot_run_during_contract_or_transport_rejection", + "--junitxml=/workspace/scratch/4e5267fe5990/p4w08-targeted-001.xml", + "--durations=15", + "--basetemp=/workspace/scratch/4e5267fe5990/p4w08-targeted-001-pytest" + ], + "started_at_utc": "2026-10-26T05:03:13.998859+00:00", + "elapsed_seconds": 335.6938662619996, + "exit_code": 0, + "timeout_seconds": 1200, + "timed_out": false, + "interrupted": false, + "incomplete": false, + "head": "e0039d506e7aeb3b10e05efae70385e1a3b94e69", + "tree": "cd4d1f373ac915e7b971d92f5e697cf67598049a", + "source_files": 234, + "source_bytes_unchanged": true, + "scope": "W08 changed public API, migrated old guarantees, direct receipt controls, real installed preparation/analysis/public paths, and three affected N01 controls. Local Python 3.12 scope; no full-suite or hosted-matrix attestation." + }, + "distinct_case_count": 231, + "case_counts": { + "passed": 231, + "failure": 0, + "error": 0, + "skipped": 0 + }, + "junit_suite_tests_including_any_subtests": 376, + "junit_seconds": 335.298, + "identities_sha256": "1233b3b695ec85a60c040e1e4d89ac728b9d2a17168d16f36be208c4d39c5748", + "raw": [ + { + "file": "p4w08-targeted-001-exit.json", + "sha256": "a6109261e62236d34e8608a81b17251e14ac6e465b197582012ccc86e821b486", + "bytes": 1870 + }, + { + "file": "p4w08-targeted-001.xml", + "sha256": "2a93881e5f4dfa5034c233740adeadb755325c595f6212ae74478878b3d48425", + "bytes": 37701 + }, + { + "file": "p4w08-targeted-001.log", + "sha256": "b7c15b6eee32d25dca9878fb0c332c7d727ce22a8009be8946c18cd25da592e3", + "bytes": 2417 + }, + { + "file": "p4w08-targeted-001-source-before.json", + "sha256": "b608b1c26991dba468271941c907523b376f936d2d5da4bbb93a9995802e9671", + "bytes": 25795 + }, + { + "file": "p4w08-targeted-001-source-after.json", + "sha256": "b608b1c26991dba468271941c907523b376f936d2d5da4bbb93a9995802e9671", + "bytes": 25795 + } + ], + "successful_subtests_actual": 145, + "successful_subtests_basis": "Successful JUnit suite tests minus distinct testcase identities; only computed for exit 0 with no failure/error/skip. These events are not additional independent cases.", + "source_files": 234, + "source_hashes_unchanged": true, + "passed_in_recorded_scope": true + } + ], + "installed_receipts": [ + { + "raw": { + "file": "p4w08-installed-runtime.json", + "sha256": "509f4ccef7fb0c5a9850da8fde086a669cbdadee713ce0420fd8207f4c180960", + "bytes": 95366 + }, + "head": "e0039d506e7aeb3b10e05efae70385e1a3b94e69", + "unit": "P4-W08", + "activation_stage": 8, + "ok": true, + "public_test_sources": { + "tests/integration/test_public_installed_runtime.py": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01" + }, + "distribution_count": 3, + "three_public_distribution_modes_executed": true, + "public_installations": [ + { + "mode": "direct_wheel", + "source_archive": "source_integrity_toolkit-0.1.0.dev0-py3-none-any.whl", + "source_archive_sha256": "cf46e75e9fc6eec00336f4c49d2a75314f776bd2690128ef231b604585409e62", + "module_count": 48, + "module_hashes_sha256": "e13ea146aca847764bae4b60eb8673d15ee5adb38fdcd47db70204b979e38328", + "public_audit": { + "basis_members": [ + [ + "inquiries", + "I" + ], + [ + "records", + "A" + ], + [ + "records", + "C" + ] + ], + "basis_total": 3, + "cached_identity_reads": 3, + "case_id": "P4-W08-INSTALLED", + "counts": { + "claim_artifact_record_count": 0, + "nominal_seed_artifact_record_count": 0, + "seed_evidence_item_count": 0, + "unresolved_seed_artifact_reference_count": 0 + }, + "detached_after_source_clear": true, + "expectations_sha256": "2c6b002b7dc8f00f6d07ba854bf0e3c5a67e72facabb961a2b9487fc55bea21e", + "family_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "immutable_roots_and_nested": true, + "input_sha256": "fbf2cc1eb831127300be268f620afde5e57b3f68d6966ca8460a05945c967ca9", + "input_state": "accepted", + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "processing_state": "completed", + "report_kind": "audit_report", + "root_members": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "source_unchanged": true, + "unavailable_fractions": [ + "single_origin_contribution_hhi", + "documentary_origin_resolution_fraction", + "inherited_only_seed_fraction" + ] + }, + "public_refusals": 1, + "normal_effects": [], + "negative_events": [ + "open", + "socket.getaddrinfo", + "ctypes.dlopen" + ], + "runtime_distributions": [ + "source-integrity-toolkit" + ] + }, + { + "mode": "sdist", + "source_archive": "source_integrity_toolkit-0.1.0.dev0.tar.gz", + "source_archive_sha256": "bcdb4538b0ed7c5af74c8b837e6a9136401a0b0545ae201ca60ca66aef062500", + "module_count": 48, + "module_hashes_sha256": "e13ea146aca847764bae4b60eb8673d15ee5adb38fdcd47db70204b979e38328", + "public_audit": { + "basis_members": [ + [ + "inquiries", + "I" + ], + [ + "records", + "A" + ], + [ + "records", + "C" + ] + ], + "basis_total": 3, + "cached_identity_reads": 3, + "case_id": "P4-W08-INSTALLED", + "counts": { + "claim_artifact_record_count": 0, + "nominal_seed_artifact_record_count": 0, + "seed_evidence_item_count": 0, + "unresolved_seed_artifact_reference_count": 0 + }, + "detached_after_source_clear": true, + "expectations_sha256": "2c6b002b7dc8f00f6d07ba854bf0e3c5a67e72facabb961a2b9487fc55bea21e", + "family_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "immutable_roots_and_nested": true, + "input_sha256": "fbf2cc1eb831127300be268f620afde5e57b3f68d6966ca8460a05945c967ca9", + "input_state": "accepted", + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "processing_state": "completed", + "report_kind": "audit_report", + "root_members": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "source_unchanged": true, + "unavailable_fractions": [ + "single_origin_contribution_hhi", + "documentary_origin_resolution_fraction", + "inherited_only_seed_fraction" + ] + }, + "public_refusals": 1, + "normal_effects": [], + "negative_events": [ + "open", + "socket.getaddrinfo", + "ctypes.dlopen" + ], + "runtime_distributions": [ + "source-integrity-toolkit" + ] + }, + { + "mode": "rebuilt_wheel", + "source_archive": "source_integrity_toolkit-0.1.0.dev0-py3-none-any.whl", + "source_archive_sha256": "929feb73153f163098493f9ad85711961886861cb90ea5cc5328d2861feb3938", + "module_count": 48, + "module_hashes_sha256": "e13ea146aca847764bae4b60eb8673d15ee5adb38fdcd47db70204b979e38328", + "public_audit": { + "basis_members": [ + [ + "inquiries", + "I" + ], + [ + "records", + "A" + ], + [ + "records", + "C" + ] + ], + "basis_total": 3, + "cached_identity_reads": 3, + "case_id": "P4-W08-INSTALLED", + "counts": { + "claim_artifact_record_count": 0, + "nominal_seed_artifact_record_count": 0, + "seed_evidence_item_count": 0, + "unresolved_seed_artifact_reference_count": 0 + }, + "detached_after_source_clear": true, + "expectations_sha256": "2c6b002b7dc8f00f6d07ba854bf0e3c5a67e72facabb961a2b9487fc55bea21e", + "family_ids": [ + "SIT-M001", + "SIT-M002", + "SIT-M003", + "SIT-M004", + "SIT-M005", + "SIT-M006", + "SIT-M007", + "SIT-M008", + "SIT-M009", + "SIT-M010", + "SIT-M011", + "SIT-M012", + "SIT-M013", + "SIT-M014", + "SIT-M015" + ], + "immutable_roots_and_nested": true, + "input_sha256": "fbf2cc1eb831127300be268f620afde5e57b3f68d6966ca8460a05945c967ca9", + "input_state": "accepted", + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "processing_state": "completed", + "report_kind": "audit_report", + "root_members": [ + "contract_version", + "report_kind", + "report_id", + "run", + "input_identity", + "input_validation", + "scopes", + "populations", + "basis_index", + "capabilities", + "checks", + "observability_domains", + "results", + "findings", + "reasons", + "release_limits" + ], + "source_unchanged": true, + "unavailable_fractions": [ + "single_origin_contribution_hhi", + "documentary_origin_resolution_fraction", + "inherited_only_seed_fraction" + ] + }, + "public_refusals": 1, + "normal_effects": [], + "negative_events": [ + "open", + "socket.getaddrinfo", + "ctypes.dlopen" + ], + "runtime_distributions": [ + "source-integrity-toolkit" + ] + } + ], + "retained_preparation_analysis_receipt": { + "admitted_fixture_modes": null, + "rejected_empty_modes": null, + "hero_modes": [ + { + "case": "H7-01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 6852668692, + "requested": 4, + "used_before": 9999999 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3480762784, + "job_before": 1000000, + "kind": "job", + "requested": 5, + "used_before": 5012999 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 9999999 + }, + { + "case": "H7-01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 6319428026, + "requested": 4, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3206228689, + "job_before": 1000000, + "kind": "job", + "requested": 5, + "used_before": 5537231 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7055591996, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3571709473, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 4993665 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V01", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7512302139, + "requested": 22, + "used_before": 9999991 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3380162707, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5517829 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 9999991 + }, + { + "case": "H7-V02", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 8268377911, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 4336378735, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5234918 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V02", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7159348511, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 4080571280, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5786689 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V03", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 6254200335, + "requested": 2, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 2998085349, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5190170 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "value", + "stop_kind": "job", + "used": 10000000 + }, + { + "case": "H7-V03", + "completed_inventory_fields": [ + "claim_artifact_record_count", + "claim_unassigned_seed_artifact_record_count", + "nominal_seed_artifact_record_count", + "seed_evidence_item_count", + "unresolved_seed_artifact_reference_count" + ], + "delivered_result_count": 0, + "delivery_type": "_AnalyticalDiagnostic", + "execution_state": "interrupted", + "finalization_rejected_charge": [ + { + "elapsed_ns": 7229924491, + "requested": 1, + "used_before": 10000000 + } + ], + "first_rejected_charge": [ + { + "elapsed_ns": 3772662466, + "job_before": 1000000, + "kind": "job", + "requested": 1, + "used_before": 5736688 + } + ], + "input_state": "accepted", + "input_unchanged": true, + "limit": "WU9-L11", + "mode": "utf8", + "stop_kind": "job", + "used": 10000000 + } + ], + "completed_finite_modes": [ + { + "capabilities": 15, + "counts": { + "claim_artifact_record_count": 1, + "documentary_origin_boundary_record_count": 1, + "nominal_seed_artifact_record_count": 1, + "reached_origin_record_count": 1, + "seed_evidence_item_count": 2 + }, + "domains": 5, + "hhi": [ + 4, + 4 + ], + "memberships": { + "e": [ + "origin" + ], + "e2": [ + "origin" + ] + }, + "mode": "value", + "source_unchanged": true, + "state": "completed" + }, + { + "capabilities": 15, + "counts": { + "claim_artifact_record_count": 1, + "documentary_origin_boundary_record_count": 1, + "nominal_seed_artifact_record_count": 1, + "reached_origin_record_count": 1, + "seed_evidence_item_count": 2 + }, + "domains": 5, + "hhi": [ + 4, + 4 + ], + "memberships": { + "e": [ + "origin" + ], + "e2": [ + "origin" + ] + }, + "mode": "utf8", + "source_unchanged": true, + "state": "completed" + } + ], + "invalid_modes": 2 + }, + "scope": "Actual receipt facts; source/head and inventory reconciliation are separately evidenced by the recorded runner checks." } ], - "installed_receipts": [], "supporting_receipts": { "public_test_migration": [ { @@ -17997,12 +18741,37 @@ } } } + ], + "actual_installed_reconciliation": [ + { + "raw": { + "file": "p4w08-installed-receipts.json", + "sha256": "636d27abb224136cdfde57c0df1ba5475b723755beacd34427f5c9e8813887a0", + "bytes": 102026 + }, + "record": { + "scope": "Full structured contents retained in the hash-bound external receipt.", + "top_level_keys": [ + "status", + "head", + "receipt", + "receipt_sha256", + "module_count", + "public_installations", + "private_hero_modes", + "private_completed_finite_modes", + "actual_archives", + "retained_preparation_test", + "scope" + ] + } + } ] }, "notes": [], - "status": "pending", - "status_meaning": "W08 public in-memory audit implementation prepared; actual complete scoped and installed verification still pending.", - "recorded_at_utc": "2026-10-26T05:02:10.535014+00:00", + "status": "locally_verified", + "status_meaning": "W08 public in-memory audit activation and recorded scoped local/installed verification complete; W09 field obligations and W10 final hosted acceptance remain pending.", + "recorded_at_utc": "2026-10-26T05:12:10.597117+00:00", "evidence_scope": "Only explicitly recorded runs, source scopes and installed receipts are claimed. No new full-suite or four-profile success follows from this record.", "reviewed_source_hashes": { "README.md": "6710253de63e02fe8b4214a43cca208e197b564252a819468efaaebbc330e5f2", @@ -18021,6 +18790,151 @@ "tests/scaffold/test_packaging.py": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", "tests/security/test_scaffold_inertness.py": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee" + }, + "independent_review": { + "raw": { + "file": "p4w08-independent-review.json", + "sha256": "088d93a6c5357fbbf8ae9a21cc81e4262b1823085172fa7f68b9f08e4098056f", + "bytes": 9483 + }, + "record": { + "status": "passed_no_remaining_blocking_findings", + "review_kind": "Independent tool-assisted read-only review of the W08 scoped implementation checkpoint; not external human audit or final hosted acceptance.", + "reviewed_at_utc": "2026-10-26T05:11:40.418757+00:00", + "reviewed_head": "e0039d506e7aeb3b10e05efae70385e1a3b94e69", + "reviewed_tree": "cd4d1f373ac915e7b971d92f5e697cf67598049a", + "base": "e9b6bfd3f65de31841606a7b1d44e0fe4cb3282d", + "plan_sha256": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48", + "reviewed_source_hashes": { + "README.md": "6710253de63e02fe8b4214a43cca208e197b564252a819468efaaebbc330e5f2", + "src/source_integrity_toolkit/__init__.py": "79cb024eb81bcef26a8dc94100b995e27f6207e7b2aac343eab7c57e488532d0", + "src/source_integrity_toolkit/api.py": "1ce3a72b8cc064718133b75e4991e14ac4d56072cdf6f2017af292e449789f7f", + "src/source_integrity_toolkit/contracts/execution.py": "d11944bc016528f8642701f5ba6df49bb98697911edb2dd537fdd19dcae5a390", + "tests/contract/test_analytical_observability.py": "ed307fd5243ea47e1561bd7ae797691ff710ed97f5b2009f012332da03de83c6", + "tests/contract/test_phase2_transition.py": "4d2e6ff10d19820b33185d7fad76fa52fcf609a7d37f9cd32b439bf5d7455b22", + "tests/contract/test_public_api.py": "7ca5422483ee15d0b9b98b8435bf672ea1bc60be3478559aafe3454f9830248a", + "tests/contract/test_report_contract.py": "b6b87588f6bde52a86af331c6ae08e523502de4a70725b729e9dd61e69033228", + "tests/integration/test_analytical_installed_runtime.py": "64f83d86e57b8ca52c85775cd89c50e448acebaa2fad291ef88c5d4495ff43c6", + "tests/integration/test_preparation_capability_boundary.py": "c757f20cc1cc3d6abfdb160fa6a766242f07fd0046ee9e67be15280542260300", + "tests/integration/test_public_audit.py": "74d905212c0366794b21f6d9823f2b39187be3c8d20c77f84d612d3f79bab5ac", + "tests/integration/test_public_installed_runtime.py": "092cab24b2820f62c23973307231ff8af012001c9e619fc14ff01cb2c08efe01", + "tests/scaffold/test_api_stubs.py": "cbac5ab7257f94d215a856b5125786115df3f215bebc358dac1a223ab3de05b1", + "tests/scaffold/test_ci_contract.py": "d6e91cc44ad2967d4feaca45d3f9bb696e439c8ed2caa0a5e777de4deaf895ce", + "tests/scaffold/test_packaging.py": "5a62c98eea65ce8130b9bad0f9133f13185966b46a27ec179a7861a5fa7514f0", + "tests/security/test_public_api_boundary.py": "1b6c15adebb20e193f54cf46bf4c2b5b9076016b730d18d14cfc028f05192ed3", + "tests/security/test_scaffold_inertness.py": "fad05f940189ac8fe9680246832d3bea42d0b49a82d72553027c7a0885b245ee" + }, + "unchanged_boundary_hashes": { + "src/source_integrity_toolkit/contracts/report.py": "3e3fc661eeb30dbd15cd23ede62104c42897c900d27d4108332fbe4666ba30b6", + "src/source_integrity_toolkit/runtime/boundary.py": "7a497488f4524589c8de0a3ba5a10474fe5f4319c7f6eda9365e9e417a805d39", + "src/source_integrity_toolkit/cli.py": "0c3ee9522fbdf1774a707ec14ed630ce34a901da1f83f63b8aee0f25393d26bc", + "tools/check_scaffold_boundary.py": "020da86c79c8ca2b3fb35792d90a349ebb0ef6b58911c7613677329d1c1ddf63", + ".github/workflows/phase1-ci.yml": "7863586a7be20c3b6d2aa88e7879a30b7cea6960607787ac52078f8e86fba341", + "PHASE_4_PLAN.md": "5fac7a2a796338faae9b98af6e0cc4519396e378ba10b8c5afeb4d029d97cd48" + }, + "reviewed_design": [ + "Only P02/P11/P12 change product bytes. audit_bundle validates exact dictionary options, bounded to at most one pair, with exact key/value type checks before equality or truth testing; no caller hash, repr, protocol or dossier access precedes usage rejection.", + "The existing W07 _audit_value path is reused without a new ledger, deadline, limit or altered analysis/rendering semantics. P01/P10 remain unchanged.", + "AuditUsageError retains fixed message, safe args and code; ordinary traceback propagation is permitted while other fields remain immutable. Seven exports have exact identity/order and the development version is unchanged.", + "audit_file function source is byte-identical; CLI, guard, workflow and approved plan bytes are unchanged. Old file/CLI/effect/private controls remain directly exercised.", + "V03 changes only installed public receipt reconciliation and its direct counterexamples. Policy, collection, workflow, execution limits and old receipt bindings remain.", + "All three install origins perform actual isolated public invocations, compare exact bytes to independent standard-library encodings of all sixteen exposed roots and literal semantic expectations, bind all 48 module hashes, and retain file refusal and effect negative controls.", + "README accurately documents in-memory behavior, safe states and options while preserving pending W09/W10, file/CLI and release boundaries." + ], + "findings_closed": [ + { + "finding": "Public refusal count changes from 2 to 1 would let bool True pass a plain equality check; new zero-valued semantic counters also need exact integer typing.", + "resolution": "V03 now requires exact int for public_refusals, basis_total and every expected count. True/False receipt mutants are rejected. The final unified run covers these controls." + } + ], + "scoped_validation": { + "raw": { + "file": "p4w08-targeted-001.xml", + "sha256": "2a93881e5f4dfa5034c233740adeadb755325c595f6212ae74478878b3d48425" + }, + "execution": { + "file": "p4w08-targeted-001-exit.json", + "sha256": "a6109261e62236d34e8608a81b17251e14ac6e465b197582012ccc86e821b486" + }, + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "independent_tests_passed": 231, + "successful_subtests_separately_recorded": 145, + "junit_aggregate": 376, + "failures": 0, + "errors": 0, + "skipped": 0, + "junit_seconds": 335.298, + "runner_seconds": 335.6938662619996, + "source_files": 234, + "all_source_hashes_stable": true, + "scope": "Twelve named W08 test files plus three affected N01 nodes; no complete-suite or four-profile claim." + }, + "installed_verification": { + "receipt": { + "file": "p4w08-installed-runtime.json", + "sha256": "509f4ccef7fb0c5a9850da8fde086a669cbdadee713ce0420fd8207f4c180960" + }, + "reconciliation": { + "file": "p4w08-installed-receipts.json", + "sha256": "636d27abb224136cdfde57c0df1ba5475b723755beacd34427f5c9e8813887a0" + }, + "origins": [ + "direct_wheel", + "sdist", + "rebuilt_wheel" + ], + "matching_modules_per_origin": 48, + "exact_archives_independently_rechecked": 6, + "json": { + "bytes": 290127, + "independent_sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb", + "sha256": "186c741321b45085f78f94f726ec4e3e195839c384b684348efd35896a39fffb" + }, + "markdown": { + "bytes": 384800, + "independent_sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64", + "sha256": "d36557c5a8540ed50997ea39d092ddcb18e80247f03783f3c1f25544984feb64" + }, + "private_hero_modes_retained": 8, + "private_completed_finite_modes_retained": 2, + "preparation_local_receipt_limit": { + "passed": true, + "junit_seconds": 45.034, + "receipt_retained_locally": false, + "limitation": "The existing local unittest deletes its temporary receipt. Its actual passing assertions are evidenced by JUnit; hosted mode retains the receipt." + } + }, + "separate_repairs": [ + { + "owner": "P4-W07", + "commit": "d1b812315364576d0099518abd5ae152531c8fc8", + "scope": "N12/D05 only; Python 3.13 FrozenInstanceError versus earlier TypeError assertion. Read-only enforcement was already correct; state/caches/budget preservation strengthened. Both original failures retained, local affected node passed, final W08 node passed." + }, + { + "owner": "P4-W02", + "commits": [ + "9329aeeab6958895100e33ac997b8db6dbadd65d", + "f2e4b2a8b8b6eb7aed4c6215e8504cc7ee1daaa2" + ], + "scope": "N01/D05 only; old refusal test becomes verified-stage-aware while preserving its original identity and pre-W08 refusal. Clean stage7 control and final stage8 real public branch both passed." + } + ], + "earlier_attempts": "The first new fast N06 run had 35 passed/1 failed due to an omitted period in its fixed-message regex; the corrected test retained original product wording, then 36 passed. These records and the W07 hosted failures remain preserved.", + "limitations": [ + "Local execution used Python 3.12.14. New Python 3.11/3.13 and Windows hosted candidate results remain pending; prior repaired Python 3.13 failure is not presented as a new hosted success.", + "All 228 public field obligations and W09/W10 final acceptance remain pending. This review does not authorize merge, release, native file APIs or CLI auditing.", + "Final D04/D05 evidence records may follow this reviewed executable/test checkpoint; all other reviewed source hashes must remain unchanged.", + "Historical Windows Python 3.13 suite time was 2300.669 seconds under the unchanged 2400-second budget. Static W08 estimates and the new local durations show narrow timing margin; they do not establish a hosted timeout or success. No gate or limit was relaxed. See p4w08-runtime-headroom-review.json." + ], + "scope_receipt": { + "file": "p4w08-initial-committed-scope.json", + "sha256": "00999a5a9181c16a8179be9240e0bc4953247d3a7c4de34932815b250a6f28fa" + }, + "timing_review": { + "file": "p4w08-runtime-headroom-review.json", + "sha256": "6a009b7331031e68156cedbbbf1ec952f591dfcbabed0e7883e5d8cf0bc6b905" + } + } } } }