Record unified renderer batch three implementation
Why: Tasks 7-8 need a reviewable record that separates draft profile generation, legacy RDM product-chain evidence, and actual renderer publication readiness. Evidence: The report fixes Renderer 732e7e7 and RDM ec24a42, records the independent review and repair, and distinguishes 44/44 compilation from the 41-pass/3-blocked base-package safety preflight. Impact: Human reviewers can decide corporate visual values and the three unsafe base-package derivatives without treating local SELF checks as publication, migration, or deployment. Refs: Unified document renderer Tasks 7-8
This commit is contained in:
+113
@@ -0,0 +1,113 @@
|
||||
# 统一文档渲染器第三批实施评审 r1
|
||||
|
||||
日期:2026-10-15。状态:**待人工评审**。批准来源:用户在本聊天确认“评审通过,启动 Task 7-8”。本批固定对象为本地 Renderer `732e7e7fc44e4871c7e1f6ba7aff2fc25173a10f`、RDM `ec24a42b79604f3ccbf581abb7c43378a1173c21`。
|
||||
|
||||
## 1. 结论和需要人工决定的事项
|
||||
|
||||
Task 7 已形成可运行的公司默认规则候选,但没有发布。现有 44 份公司文档只能确认常见 A4 页面族、保密页脚和页码字段,不能可靠推断公司 Logo、字体、字号、颜色、标题层级和实际分页。候选因此保持 `draft`,`publicationAllowed=false`,待真人视觉对照后再升版或发布。
|
||||
|
||||
Task 8 已生成 44 份独立、可重复生成、可由真实编译器编译的专用 RenderProfile 候选;两项过程确认文档类型已补入版本化字典。44 份仍全部是草稿,不自动继承旧模板目录的发布决定。底稿安全预检为 **41 通过、3 阻断**:
|
||||
|
||||
| 模板 | 阻断事实 | 发布前需要的处置 |
|
||||
|---|---|---|
|
||||
| `dhf.33c2e9fe0c42fa0d` | `word/_rels/document.xml.rels` 含外部购物链接;正文含遗留修订 | 形成去外链且明确接受/拒绝旧修订的安全派生件,逐字及视觉复核 |
|
||||
| `dhf.6b440531e6ff12f8` | 正文、页眉和设置含遗留修订/跟踪标记 | 明确旧修订取舍,形成干净派生件并视觉复核 |
|
||||
| `dhf.a046cc77128b7b66` | 设置中启用了遗留跟踪修订 | 形成关闭遗留跟踪状态的干净派生件并复核 |
|
||||
|
||||
这三份未通过安全门禁,不能通过放宽外链或继承修订限制来凑数。其机器可读状态已进入对应 `review.json` 的 `basePackagePreflight`。
|
||||
|
||||
## 2. Task 7:公司默认规则候选
|
||||
|
||||
Renderer 提交 `92f238e` 建立 `profiles/company-default/1.0.0/`:
|
||||
|
||||
- `profile.yaml`:DOCX、公司默认、普通文档可回退、受控文档不使用该回退;
|
||||
- `assets.json`:冻结最小 Word 底稿与测试图片的版本、路径和 SHA256;
|
||||
- `review.json`:列出未核实的公司视觉值并禁止发布;
|
||||
- `assets/base.docx` 与 `assets/sample.png`:仅供规则验证,不冒充公司批准 Logo;
|
||||
- 自动映射支持标题、段落、列表、表格、图片、提示、签署、受控字段和分页节点;测试样稿插入 30 个显式分页符。
|
||||
|
||||
候选使用 A4 纵向、公司全称保密页脚、`PAGE/NUMPAGES` 字段;字体、东亚字体、字号、颜色及 Logo 保持空白或未配置。实际桌面 Word 页数、分页稳定性和视觉可读性尚未验收,30 个分页符不能等同于已经证明 30 页排版。
|
||||
|
||||
## 3. Task 8:44 份专用规则包
|
||||
|
||||
RDM 提交 `d4d2c8b` 先生成 44 份 `profile.json + review.json`;`3f60265` 加入生成一致性、字典迁移和产品链验证;最终 `ec24a42` 增加精确底稿安全预检。
|
||||
|
||||
每份候选:
|
||||
|
||||
- 绑定目录中确切 `templateId`、版本和 render SHA256;
|
||||
- `appliesTo.documentTypes` 与模板目录一致;
|
||||
- 从递归结构文件复制确切节点 ID、Word part、锚点和目标种类,共 6,115 条映射;
|
||||
- `selection.controlled=true`、`allowDefaultFallback=false`,受控文档 fail-closed;
|
||||
- `styles={}`,不猜测字体、颜色或标题排版;
|
||||
- 带六类模板例外、未核实公司值、来源/规范化/结构/render 四组摘要及待审状态;
|
||||
- 由 `scripts/generate-render-profiles.py --check` 逐字复验,目录或普查对象缺失、重复及生成漂移均失败。
|
||||
|
||||
最终 Renderer 的跨仓 SELF 探针按每份 catalog 精确底稿执行 `DecodeJSON → Compiler.Compile`,结果 **44/44 可编译**。单节点预览探针为 **41 通过、3 因上述底稿安全问题被正确拒绝**;这不是完整内容填充或桌面 Word 视觉验收。
|
||||
|
||||
## 4. 字典升级
|
||||
|
||||
种子字典从 `0.1.0` 升为 `0.2.0`,新增:
|
||||
|
||||
- `rd_process_validation_plan`:过程确认方案,阶段 10,DHF;
|
||||
- `rd_process_validation_report`:过程确认报告,阶段 10,DHF。
|
||||
|
||||
存量升级只接受固定字节摘要:
|
||||
|
||||
- `0.1.0`:`10b0d316210dc0729e3b52e302b7621d4056d5381ac54101d8f00c7a2ad02944`;
|
||||
- `0.2.0`:`3e71c6b020cdf1fe0f944bec71dd3a7c62ff33f79cef3d81b14a0f347517e421`。
|
||||
|
||||
升级保留旧行,在一个事务中插入新行;同字节重放幂等,旧版本或目标版本字节漂移时拒绝。SQLite SELF 与隔离 PostgreSQL SELF 均已通过;真实运行库迁移仍为 **NOT_RUN**。
|
||||
|
||||
## 5. 44/44 RDM 产品链的准确含义
|
||||
|
||||
更新后的 `scripts/dhf-u6-acceptance-matrix.py` 使用当前账户激活、API key 文件、项目会话和锚点消息,驱动组合产品执行实例化、三权分配、提交、审核、批准、交付和下载。结果为 **44 PASS、0 BLOCKED、0 FAIL**,两项字典阻塞已清零。
|
||||
|
||||
该矩阵验证的是现有 RDM `docs.delivery.*` 链路,当前尚未调用独立 Renderer。它证明模板目录和现有交付链可用,不能替代新 RenderProfile 的 41/3 安全预检、完整渲染矩阵或桌面 Word 视觉验收。
|
||||
|
||||
## 6. 独立 Review 与修复
|
||||
|
||||
独立审阅者检查 Renderer `0efa07f..92f238e` 与 RDM `c188df3..3f60265`,结论为 **Ready to merge: No**,没有 Critical,发现 2 项 Important:
|
||||
|
||||
1. 默认规则的 `auto → image` 路径在替换后覆盖 DrawingML 命名空间,生成无法被严格 XML 解析的 DOCX;
|
||||
2. 44 个生成候选没有经过真实编译器契约,ASCII 锚点限制使 12 份中文内容控件标签无法编译,现有 44/44 产品矩阵没有消费新配置,因而漏报。
|
||||
|
||||
Renderer `732e7e7` 在一个修复批次中完成 RED→GREEN:
|
||||
|
||||
- 自动图片在读取和替换原 XML 前准备 `a/wp/pic` 命名空间;真实默认规则图片输出通过严格 XML 解析;
|
||||
- 锚点允许 Unicode 字母/数字和受控标点,仍拒绝空白、换行及 XML 特殊字符;
|
||||
- 只放行 `PAGE/NUMPAGES` 的 `ARABIC` 与通用 `MERGEFORMAT` 安全开关组合;危险 Word 字段仍拒绝;
|
||||
- 接受空的安全 ZIP 目录项,继续拒绝穿越、重复、加密和含数据目录项。
|
||||
|
||||
修复后 44/44 配置可编译。进一步精确底稿探针暴露的外链和遗留修订没有通过放宽规则处理,而是在 RDM `ec24a42` 中转为三份草稿的显式阻断记录。
|
||||
|
||||
## 7. SELF 验证
|
||||
|
||||
Renderer 最终对象 `732e7e7fc44e4871c7e1f6ba7aff2fc25173a10f`:
|
||||
|
||||
- `go test ./... -count=1`:通过;
|
||||
- `go test -race ./... -count=1`:通过;
|
||||
- `go vet ./...`:通过;
|
||||
- `git diff --check`:通过;
|
||||
- 默认图片输出的 `word/document.xml` 由严格 XML 解析器通过;
|
||||
- 跨仓探针:44/44 配置编译,41 份单节点预览通过,3 份按安全门禁拒绝。
|
||||
|
||||
RDM 最终对象 `ec24a42b79604f3ccbf581abb7c43378a1173c21`:
|
||||
|
||||
- `python3 scripts/generate-render-profiles.py --check`:44 份逐字一致;
|
||||
- profile 矩阵:44 个唯一配置、精确类型/摘要/槽位、草稿/禁止发布、41/3 预检结果通过;
|
||||
- SQLite 字典升级、幂等及篡改回滚:通过;隔离 PostgreSQL 同项测试:通过;
|
||||
- 认证产品矩阵:44/44 PASS;
|
||||
- `make test && make build`:通过。
|
||||
|
||||
以上均为本地 **SELF**。独立代码审阅属于评审意见,未成为 CI/GATE;PostgreSQL 结果为本轮作者先前启动的隔离临时库测试,不是本次审阅者 REPLAY。
|
||||
|
||||
## 8. 未执行和后续门禁
|
||||
|
||||
NOT_RUN:公司视觉值裁定;3 份阻断底稿的安全派生与视觉复核;44 份完整内容正常/负例新渲染矩阵;桌面 Word/LibreOffice 打开、修复、视觉保真和实际分页;真实数据库迁移;RDM/Backend 项目授权、撤权、交付事务与历史下载集成;远端 Renderer 仓库、Dev gitlink、CI/GATE、浏览器验收、推送、PR、合入、部署和发布。
|
||||
|
||||
人工评审需要分别确认:
|
||||
|
||||
1. 公司默认规则继续保持草稿,并提供或指定 Logo、字体、字号、颜色和标题层级的权威值;
|
||||
2. 41 份预检通过的专用配置是否进入后续完整渲染验证;
|
||||
3. 三份阻断底稿是否允许生成“去外链 + 明确处理遗留修订”的新派生候选,并在逐字/视觉复核后重新绑定;
|
||||
4. 上述决定完成前,不进入 Task 9 的项目级渲染事务接线。
|
||||
Reference in New Issue
Block a user