# 待批准后的最小写入探针与保持核对

当前仅准备方案与只读检查脚本。未运行 template-apply，未生成填充PPT，未把计划改为confirmed。

## 进入条件

主控明确转达用户对 `template-plan-v02.json`（SHA256 `22ff4ea7cf5081dd00c3d840da1ed0c3d4d1fb865b561ef927d068a1b623cdf4`）的批准。保留用户原话与具体版本，再建立确认副本。原草案及失败版本继续保留。确认副本仅改批准状态与可追溯确认记录；如果内容有变，重新检查并按授权判断是否需要再次确认。

## 最小写入探针

批准后，先在新的隔离 run 中，以同一原模板和已批准计划执行一次完整的 `template-apply`，作为第一次写入探针。使用原六页和同一67对象计划，可以直接检查页间、原生表格和完整包保持；不额外手改OOXML、不另造用户尚未看过的语义方案。若成功，该候选即后续核对对象，无需再生成一份同样输出。命令通过现有 execute.py 记录 argv、cwd、stdout/stderr 和退出码；失败产物按失败保留，不能覆盖成最终稿。

当前已准备的命令形态（只作方案，尚未执行）：

```text
<runtime-python> <task-working-skill>/scripts/d6ppt.py --runtime-dir <existing-readonly-runtime> template-apply --run <new-probe-run> --plan <confirmed-plan-copy>
```

若P5 `560`的实际显示成为唯一疑点，则在已生成候选的副本上安排最小可编辑探针，限该槽位，使用已授权编辑验证流程；不修改交付候选，不以该探针代替完整保持核验。没有用户计划批准时不做此探针。

## 包内保持核对

只读脚本 `preservation_check.py <generated-pptx>` 已准备，尚未对输出运行。检查六页画布和顺序，67个对象ID与原生类型、几何、颜色、原字号/字体样式、文本框属性、未改对象、两张6×2原生表格的结构/尺寸/单元格属性、31文本和24单元格内容、所有内部关系目标。备注、布局、母版与主题按真实ZIP part逐字节核对。

必须覆盖真实两个主题文件：`ppt/theme/theme1.xml` 与 `ppt/slideMasters/theme/theme2.xml`。当前profile的常规主题归属元数据不完整（themes count=1、对象theme_part为空）；保护哈希与原始ZIP盘点才是后续保持核对依据。本轮不扩展该元数据补丁。

脚本采用严格差异报告；若出现仅序列化差异，也先记FAIL并解释具体字段，不能直接放宽为PASS。它不能判断实际渲染和视觉质量。

## 渲染与P5核验

沿批准的无GUI便携后端生成六页渲染。合成一张不超过6图contact sheet，疑点crop atlas优先覆盖P5合计与表格，并包含P2压缩段、P3完整流程句、P6收尾记录。已有图片预算由主控统筹。

P5 `s05_sh6`保留66pt；当前度量高度83.95pt、原框可用84pt，极接近边界。核对560顶部/底部是否裁切、数字基线与原始000是否一致、颜色和位置是否保持。出现裁切则保留FAIL，不自动缩字或增高；应依授权报告并修订安排。渲染器适配通过与WPS/PowerPoint实际显示分开记，未做即NOT_RUN。

## 已定位的后续风险

已修补的两处绝对OPC关系解析适用于当前analyze/check。`inspector.py:163,307` 与 `verifier.py:92`还有同类绝对目标路径处理，尚未执行到这些链路，不预先扩大补丁。`template_workflow.py`导航/图片分支的同类join在本计划links/images为空时提前返回，不会触达。Apply若失败先保留首个完整错误，再集中判定是否同机制修复。

原正式Skill、此前冻结包、原模板、旧filled-v2和依赖目录均不写入。后续脚本检查通过仍不替代用户验收或发布授权。
