Files
ai-contract-platform/project-docs/V2-legal-assets-edit-diff-validation-2026-06-27.md
T
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

2.3 KiB

V2 条款规则库编辑草稿、Diff 与发布前校验

日期:2026-06-27

背景

V2 已经接入 V1 Phase13 的标准条款库和审查规则库,并完成发布、下线、回滚、版本历史和审计留痕。为了让条款规则库从“可见、可上下线”推进到“可运营维护”,本次补齐条款/规则编辑草稿、字段级 diff、发布前校验,以及发布快照进入生命周期事件。

本次完成

  • 新增持久化表:legal_asset_edit_drafts
  • 标准条款新增:
    • GET /api/v1/standard-clauses/{clause_id}/edit-draft
    • PATCH /api/v1/standard-clauses/{clause_id}/edit-draft
    • GET /api/v1/standard-clauses/{clause_id}/diff
    • POST /api/v1/standard-clauses/{clause_id}/validate
  • 审查规则新增:
    • GET /api/v1/review-rules/{rule_id}/edit-draft
    • PATCH /api/v1/review-rules/{rule_id}/edit-draft
    • GET /api/v1/review-rules/{rule_id}/diff
    • POST /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:typecheck
  • python -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 查看页,而不是只显示摘要。