Files
ai-contract-platform/project-docs/V2-template-frontend-sampling-verification-2026-07-09.md
yuqei a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
release: freeze V2 release candidate
2026-07-12 15:32:24 +08:00

3.0 KiB

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 = []

已跑命令

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 脚本,作为模板资产发布前的固定质量门:

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