# V2 模板起草前端抽样验证记录(2026-07-09) ## 验证目标 在本地前端 `http://localhost:3000/legal-documents` 对“法律文书起草/模板起草”链路做代表性抽样,重点验证: - 新增字段是否能完整展示和填写。 - 可选字段是否默认展开,长文本字段是否使用多行输入。 - 生成后的合同详情正文是否可读。 - 是否存在未替换占位符、Markdown 标题残留或重复标点。 ## 抽样范围 本轮从 30 个 V1 模板资产中抽样 15 个代表性模板: - 催告函模板 - 销售合同模板 - 数据处理协议模板 - 劳动合同模板 - 股权转让协议模板 - 投资协议模板 - 对赌协议模板 - 股东会决议模板 - 通用服务合同模板 - 法律意见书模板 - 授权委托书模板 - 解除合同通知书模板 - 软件技术开发合同模板 - 商业保密协议模板 - 企业间借款合同模板 ## 修复内容 - 前端模板变量区不再截断可选变量,默认展示完整可选字段。 - 长文本变量自动使用多行输入框,提高填写体验。 - 后端模板渲染增加标点去重:当用户输入以句读结尾,且模板 placeholder 后紧跟句读时,自动去掉变量末尾重复句读,避免生成 `。。`、`。;` 等不自然文本。 ## 验证结果 最终抽样脚本结果:`pass: true` 产物位置: - `output/playwright/template-sampling-2026-07-09/summary.json` - `output/playwright/template-sampling-2026-07-09/*.png` 通过标准: - 15/15 样本均完成页面填写和草稿生成。 - `missingFilledFields = 0` - `unresolvedPlaceholders = false` - `markdownHeadingArtifacts = false` - `readabilityIssues = []` ## 已跑命令 ```powershell node .runtime\template-sampling-check.cjs npm run typecheck --workspace @yuqei/contract-web python -m pytest yuqei-contract-platform\services\contract-api\tests\test_contract_templates.py yuqei-contract-platform\services\contract-api\tests\test_contract_workflow.py -k "template_library_can_create_contract_draft or labor_template_draft_derives_counterparty_from_worker_name" ``` ## 备注 本轮为本地开发环境验证,Contract API 使用本地 SQLite 开发库 `.runtime/contract-api.sqlite3`。验证过程中已将本地 Contract API 重启为 `--reload` 模式,并补齐本地 `yuqei_sdk` 的 `PYTHONPATH`。 ## 后续质量门 已补充 30 模板全量 sweep 脚本,作为模板资产发布前的固定质量门: ```powershell npm run templates:sweep -- --base-url http://localhost:3000 --contract-api-base-url http://127.0.0.1:8100 --expected-count 30 ``` 脚本会从 Contract API 动态读取已发布模板列表,并逐个在 `/legal-documents` 页面选择模板、填写全部变量、生成草稿、检查详情页正文。 首次全量执行结果: - 状态:`pass` - 模板数:30 - 通过:30 - 失败:0 - 树形列表覆盖:30/30 - 结果文件:`output/playwright/template-draft-sweep/2026-07-09T09-20-14-640/template-draft-sweep-summary.json`