baodan/docs/PPT与海报首迭代实施记录_20260802.md
wsb1224 7a3e2870dc 主要成果:
海报确认、文案生成、海报生成增加服务端失败关闭门禁,绑定文件哈希、解析快照哈希和确认数据哈希,并返回 422 业务错误。[validators.py (line 65)](D:/work/code/python/coding/baodanagent/api/insurance/plan_data/validators.py:65)
缺失金额不再转换为 0;删除错误字段兜底和“年缴×年期=合同总保费”事实推导;里程碑冲突会阻断确认。[normalizer.py (line 14)](D:/work/code/python/coding/baodanagent/api/insurance/ppt/normalizer.py:14)
PPT 渲染器支持可空金额和实际币种,缺失值显示“待确认”,避免 float(None)、空值除法等异常。
模板必须覆盖全部输入保司和产品;自动选择排序确定化,同优先级歧义时阻断。[template_selection.py (line 4)](D:/work/code/python/coding/baodanagent/api/insurance/ppt/template_selection.py:4)
场景判定写入 scenarioOverrideTrace,记录请求、模板、服务端及 Worker 最终判定。[routes.py (line 555)](D:/work/code/python/coding/baodanagent/api/insurance/ppt/routes.py:555)
前端增加哈希提交、人工调整原因、模板歧义提示及真实能力说明。
冻结三份核心 Schema,并建立 Goldens manifest、说明和评估脚本。
验证结果:
后端目标回归:111 passed, 1 skipped
PPT 运行时回归:81 passed
前端生产构建和 vue-tsc:通过
Python compileall:通过
三份 Schema JSON:解析通过
git diff --check:通过,仅有换行符提示
2026-08-02 12:58:41 +08:00

3.8 KiB
Raw Blame History

PPT 与海报生成全链路首迭代实施记录

日期2026-08-02
依据:PPT与海报生成全链路详细修复计划书_20260802.md

1. 本轮范围

本轮完成计划书“立即执行的第一轮迭代”中的 P0-A、P0-B、P0-C并建立 Goldens 与三份核心 Schema 的基础设施。计划书中 Phase 16 的长期改造不在本轮范围内。

2. 已完成变更

P0-A 确认与生成门禁

  • 确认时校验文件实际 SHA-256、上传记录哈希和前端提交哈希一致。
  • 确认时校验解析快照哈希,阻断基于过期解析结果的确认。
  • 对币种、年龄、缴费金额、关键利益字段、产品匹配和来源页执行服务端业务校验。
  • 手工修改关键字段必须填写覆盖原因;确认快照写入 Schema 版本和各级哈希。
  • 海报生成和文案重生成再次执行同一套门禁,禁止绕过确认接口直接生成。
  • 业务校验失败统一返回 HTTP 422审计日志仅记录哈希和覆盖原因不写完整敏感快照。

P0-B 数字口径纠偏

  • 缺失或无效数字保留为 None,不再归一成 0。
  • 移除重疾险、IUL 中不同语义字段之间的兜底映射。
  • 移除“年缴保费 × 缴费年期 = 合同总保费”的事实字段推导,只保留明确标记的派生估算字段。
  • IRR、回本年和比较指标遇到缺失值时不参与计算。
  • 海报显式里程碑与表格冲突时记录未解决冲突,不再静默覆盖。
  • PPT 渲染按保单币种展示;缺失数字显示“待确认”;可空金额路径不再执行除法、求和或 float(None)

P0-C 模板确定性

  • 模板必须覆盖当前全部保司和全部产品,而不是任意命中一个即通过。
  • 自动模板选择采用稳定排序;最高优先级并列时阻断并要求显式选择。
  • 前端模板列表采用相同的全量适用规则和确定性排序,并展示歧义提示。
  • 管理端明确说明 slidesConfig 目前仅控制视觉/元数据,不宣称能控制业务页面结构。
  • 任务记录 scenarioOverrideTrace包含请求场景、模板场景标签、服务端检测场景、Worker 检测场景和最终场景。

Schema 与 Goldens

  • 冻结 field-value.schema.jsondocument-ir.schema.jsonplan-data-snapshot.schema.json 首版草案。
  • 新增 Goldens manifest、使用说明和评估脚本脚本在样本不足时以阻断状态退出。
  • 新增 Schema 评审记录,明确迁移 036/037 前仍需产品、精算、合规确认的业务决策。

3. 验证结果

  • 后端目标回归111 passed1 skipped系统 Python 未安装 python-pptx)。
  • 使用工作区文档运行时复跑 PPT 相关测试81 passed无跳过。
  • 前端生产构建:通过。
  • Vue TypeScript 检查:通过。
  • Python compileall:通过。
  • git diff --check:通过(仅有仓库既有换行符提示)。

4. 未解决项与外部依赖

  • Goldens 当前为 0/10仓库内没有经脱敏、经业务批准的真实计划书样本不能用虚构样本替代基线。
  • 迁移 036/037 未创建:需先完成 Schema 评审记录中的业务决策,避免把未确认语义固化进数据库。
  • 前端 ESLint 暂不能执行:项目使用 ESLint 9但仓库没有 eslint.config.js/mjs/cjs flat config本轮以生产构建和 vue-tsc 作为前端静态验证。
  • Phase 16完整事实模型、Document IR 持久化、场景规则库、Poster RenderDocument、模板克隆增强、可观测性与发布治理仍按原计划书继续推进。

5. 下一轮入口条件

  1. 提供至少 10 份脱敏且获批的真实计划书样本及人工标准答案。
  2. 产品、精算、合规共同确认三份 Schema 的待决项。
  3. 决策通过后再创建迁移 036/037并进入 Phase 1/2。