From cba4b67a1afa5a97532d3f3f5b1d74ef87b64af0 Mon Sep 17 00:00:00 2001 From: weichen Date: Thu, 15 Oct 2026 23:17:28 +0000 Subject: [PATCH] Record renderer Task 10 implementation review Why: Task 10 closed four independent review rounds and needs a durable record. Evidence: Backend a2f4978 SELF suite plus host REPLAY of tools/docgen tests and Dev build. Impact: Documentation only; no product behavior change. Refs: docs/records/2026-10-15-unified-document-renderer/09-implementation-plan.md Task 10 Co-authored-by: Cursor --- .../batch5-task10-review-r1.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs/records/2026-10-15-unified-document-renderer-implementation/batch5-task10-review-r1.md diff --git a/docs/records/2026-10-15-unified-document-renderer-implementation/batch5-task10-review-r1.md b/docs/records/2026-10-15-unified-document-renderer-implementation/batch5-task10-review-r1.md new file mode 100644 index 0000000..d86c77b --- /dev/null +++ b/docs/records/2026-10-15-unified-document-renderer-implementation/batch5-task10-review-r1.md @@ -0,0 +1,51 @@ +# 统一文档渲染器第五批 Task 10 实施评审 r1 + +日期:2026-10-16。状态:**实现与复审闭合(SELF)**。用户已预先授权后续阶段连续推进、不再逐阶段请求人工评审;profile 发布、公司视觉值裁定和三份安全派生件视觉批准仍属业务验收,未在本批执行。 + +固定对象: + +- Backend 分支:`feature/unified-document-renderer-task10`(已推送远端),基线 `d9d8f016ece5015ff6872a6a8c6a449a7353c062`; +- Backend 最终 HEAD:`a2f4978be83514ae0e474039fb42b76bfc2a05d4`; +- Renderer gitlink:`0d1c5121d137be817db5f98d3c13320dfa919c8a`(Renderer 远端 `main`); +- Dev `modules/backend` gitlink 随本记录同批更新到上述 Backend HEAD。 + +## 1. 提交序列 + +| 提交 | 内容 | +|---|---| +| `b0dd533` | 引入 `deps/agent-document-renderer` gitlink 与 `agent-document-renderer` 本地 replace | +| `a21a3b5` | 普通工作区 Word 交付改走共享 Renderer(`render_document`) | +| `9aa9129` | 生产提示词与 house-style 配方退役旧 Word 指引 | +| `35bd87c` | 跟进 Renderer 语义与协作式取消修复 | +| `fec2d16` | 首轮独立 Review 的 Important/Minor 全量修复:可信冻结时间、持久幂等交付、Markdown 优先持久化、真实对照、Python/DOCX 旁路封闭 | +| `6c01d00` | 二轮 Review 三项 Important:改名 DOCX 旁路、完整旧 fixture 语义对照、对齐/任务/分隔线/编号的真实对照 | +| `a2f4978` | 三轮 Review 唯一 Important:按 `_rels/.rels` officeDocument 关系与 `[Content_Types].xml` 识别 WordprocessingML,畸形/歧义/不安全元数据按 Word 拒绝 | + +## 2. 最终能力 + +- 普通 Word 生成只经共享 Renderer 与公司默认 profile;旧 Go/Python 路径仅在迁移对照模式可用,不再是生产路径。 +- 项目受控文档、`review`/`approved` 模式在写入任何制品前拒绝并转交 RDM,Backend 不提供默认规则回退。 +- 交付为 Markdown 优先、DOCX 与 manifest 派生;同一冻结输入幂等,重启后节点 ID 稳定,部分失败返回 partial/unknown 回执。 +- 直接制品登记按 OPC 内容(而非文件名)拒绝 WordprocessingML(含模板与宏变体),普通 ZIP/二进制制品不受影响。 +- 新旧对照覆盖完整旧 fixture:标题、行内样式、惰性链接、引用、反引号与波浪线代码块、嵌套有序/无序列表、任务勾选、分隔线、起始编号与表格对齐,注入丢失可被检出。 + +## 3. 评审轨迹 + +| 轮次 | 评审对象 | 结论 | +|---|---|---| +| 1 | `d9d8f01..9aa9129` 完整 Task 10 范围(独立 CLI) | 0 Critical;多项 Important(旧 Python 路径仍可生产调用等) | +| 2 | `d9d8f01..fec2d16`(全新独立 CLI) | 0 Critical / 3 Important(改名 DOCX、对照 fixture 不全、对齐丢失漏报) | +| 3 | `fec2d16..6c01d00` 窄闭合复审(全新 CLI) | 2、3 项关闭;1 项因固定 `word/document.xml` 判定未完全关闭 | +| 4 | `6c01d00..a2f4978` 窄闭合复审(当前主模型,未参与实施) | PASS:0 Critical / 0 Important | + +第 4 轮记录的非阻塞次要项(后续改进,不阻塞交付):`_rels/.rels`、`[Content_Types].xml` 部件名与 content type 字符串按精确大小写匹配,刻意构造的大小写变体包可被识别为非 Word。该绕过需要恶意构造,不影响正常模型输出路径。 + +## 4. 验证(来源等级) + +- SELF(实施 CLI,`a2f4978` 同树):聚焦测试、`go test -count=1 ./internal/tools`、全量 `go test ./...`、`go test -race ./internal/tools ./internal/runmgr`、`go vet ./...`、`go build ./...`、`git diff --check` 均通过。 +- REPLAY(当前主模型,`a2f4978` 干净树):`go test -count=1 ./internal/tools ./internal/docgen/...` 通过;Dev 检出该 gitlink 后 `go build ./...` 通过。 +- GATE:NOT_RUN(Backend PR/CI 尚未创建,留待 Task 13 组合交付)。 + +## 5. 未执行项 + +profile 发布、公司默认视觉值裁定、三份安全派生件视觉批准、真实运行库迁移、PR/合入与部署均未执行;RDM 的 Renderer pin 仍为 `732e7e7`,需在 Task 13 组合前升级到 `0d1c512` 并重验。