a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
2.3 KiB
2.3 KiB
V2 条款规则库编辑草稿、Diff 与发布前校验
日期:2026-06-27
背景
V2 已经接入 V1 Phase13 的标准条款库和审查规则库,并完成发布、下线、回滚、版本历史和审计留痕。为了让条款规则库从“可见、可上下线”推进到“可运营维护”,本次补齐条款/规则编辑草稿、字段级 diff、发布前校验,以及发布快照进入生命周期事件。
本次完成
- 新增持久化表:
legal_asset_edit_drafts - 标准条款新增:
GET /api/v1/standard-clauses/{clause_id}/edit-draftPATCH /api/v1/standard-clauses/{clause_id}/edit-draftGET /api/v1/standard-clauses/{clause_id}/diffPOST /api/v1/standard-clauses/{clause_id}/validate
- 审查规则新增:
GET /api/v1/review-rules/{rule_id}/edit-draftPATCH /api/v1/review-rules/{rule_id}/edit-draftGET /api/v1/review-rules/{rule_id}/diffPOST /api/v1/review-rules/{rule_id}/validate
/admin/legal-assets卡片新增折叠编辑面板:- 保存条款/规则草稿
- 查看差异摘要
- 执行发布前校验
- 校验通过后发布时写入
draft_snapshot
- 发布后的标准条款/审查规则详情和列表会读取最新已发布快照,不再只显示 V1 静态 Markdown 原文。
校验边界
- 标准条款:校验标题、法源、合同类型、推荐条款正文长度;风险提示为空时给 warning。
- 审查规则:校验标题、法源、触发条件、输出模板、修改建议、关联条款 ID 是否存在。
- 发布接口会在存在草稿时强制执行校验;存在 error 时返回
409,避免未通过校验的草稿进入已发布资产。
验证命令
python -m pytest yuqei-contract-platform/services/contract-api/tests/test_contract_workflow.py -q -k "legal_asset or template_edit_diff_validation"npm run web:typecheckpython -c "from pathlib import Path; import yaml; yaml.safe_load(Path('yuqei-contract-platform/packages/contract-openapi/openapi.yaml').read_text(encoding='utf-8')); print('openapi yaml ok')"
后续建议
下一步可以把 AI 审查风险项的条款推荐读取逻辑调整为优先使用“已发布快照”,并在条款/规则卡片增加更完整的版本 diff 查看页,而不是只显示摘要。