a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
3.0 KiB
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.jsonoutput/playwright/template-sampling-2026-07-09/*.png
通过标准:
- 15/15 样本均完成页面填写和草稿生成。
missingFilledFields = 0unresolvedPlaceholders = falsemarkdownHeadingArtifacts = falsereadabilityIssues = []
已跑命令
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