chore: initial commit — leaudit-platform project skeleton

17-table PostgreSQL schema with full Chinese column comments,
FastAPI project structure (admin/common/modules),
DSL rule files, and schema migration scripts.
This commit is contained in:
wren
2026-04-27 16:48:22 +08:00
commit 535d97a70c
142 changed files with 25219 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# 设备采购合同(草稿)
**合同编号**HT2024-001234
## 第一条 合同当事人
**甲方(买方)**:上海某某科技有限公司
地址:上海市浦东新区张江高科技园区科苑路 88 号
统一社会信用代码:91310000MA1K3H5K8L
法定代表人:(待签时填写)
联系电话:021-12345678
**乙方(卖方)**:北京某某贸易有限公司
地址:北京市海淀区中关村大街 1 号
统一社会信用代码:91110000MA01234X5Y
法定代表人:(待签时填写)
联系电话:010-87654321
## 第二条 标的物
本合同标的物为工业自动化控制设备,具体规格型号:
- 型号:AUTO-2024-PRO
- 数量:50 套
- 技术参数:符合 GB/T 12345-2020 国家标准要求
- 质量等级:一等品
## 第三条 合同金额
**合同总金额**:人民币 1,500,000.00 元
**大写**:(待签时补充)
## 第四条 交付条款
交货地点:上海市浦东新区张江高科技园区甲方指定仓库
交货时间:合同签订后 60 个工作日内
## 第五条 质量标准
产品质量应符合 GB/T 12345-2020《工业自动化控制设备通用技术条件》国家标准,
并通过 ISO 9001 质量管理体系认证。验收时如发现质量不符,乙方应无条件退换货。
## 第六条 付款方式
签订合同后 10 个工作日内支付 30% 预付款;
设备到货验收合格后 15 个工作日内支付 60% 货款;
质保期满无故障后支付剩余 10% 尾款。
## 第七条 违约责任
任何一方违约应向守约方支付合同总金额 10% 的违约金,并赔偿守约方因此遭受的
直接经济损失。乙方延迟交货每日按合同金额万分之五支付违约金。
## 第八条 争议解决
本合同争议由双方友好协商解决。协商不成的,提交上海仲裁委员会仲裁。
## 第九条 其他
本合同一式两份,双方各执一份,经双方签字盖章后生效。
---
**甲方(盖章)**:(待签) 签订日期:(待签)
**乙方(盖章)**:(待签) 签订日期:(待签)
+80
View File
@@ -0,0 +1,80 @@
# 设备采购合同
**合同编号**HT2024-001234
## 第一条 合同当事人
**甲方(买方)**:上海某某科技有限公司
地址:上海市浦东新区张江高科技园区科苑路 88 号
统一社会信用代码:91310000MA1K3H5K8L
法定代表人:张三
联系电话:021-12345678
**乙方(卖方)**:北京某某贸易有限公司
地址:北京市海淀区中关村大街 1 号
统一社会信用代码:91110000MA01234X5Y
法定代表人:李四
联系电话:010-87654321
## 第二条 标的物
本合同标的物为工业自动化控制设备,具体规格型号:
- 型号:AUTO-2024-PRO
- 数量:50 套
- 技术参数:符合 GB/T 12345-2020 国家标准要求
- 质量等级:一等品
## 第三条 合同金额
**合同总金额**:人民币 1,500,000.00 元
**大写**:壹佰伍拾万元整
## 第四条 交付条款
交货地点:上海市浦东新区张江高科技园区甲方指定仓库
交货时间:2024 年 6 月 1 日前
## 第五条 质量标准
产品质量应符合 GB/T 12345-2020《工业自动化控制设备通用技术条件》国家标准,
并通过 ISO 9001 质量管理体系认证。验收时如发现质量不符,乙方应无条件退换货。
## 第六条 付款方式
签订合同后 10 个工作日内支付 30% 预付款;
设备到货验收合格后 15 个工作日内支付 60% 货款;
质保期满无故障后支付剩余 10% 尾款。
## 第七条 违约责任
任何一方违约应向守约方支付合同总金额 10% 的违约金,并赔偿守约方因此遭受的
直接经济损失。乙方延迟交货每日按合同金额万分之五支付违约金。
## 第八条 争议解决
本合同争议由双方友好协商解决。协商不成的,提交上海仲裁委员会仲裁。
## 第九条 合同期限
签订日期:2024 年 4 月 1 日
生效日期:2024 年 4 月 1 日
终止日期:2025 年 12 月 31 日
## 第十条 其他
本合同一式两份,双方各执一份,经双方签字盖章后生效。
---
**甲方(盖章)**:上海某某科技有限公司
[盖章: 上海某某科技有限公司合同专用章]
法定代表人签名:[签名: 张三]
签订日期:2024 年 4 月 1 日
**乙方(盖章)**:北京某某贸易有限公司
[盖章: 北京某某贸易有限公司合同专用章]
法定代表人签名:[签名: 李四]
签订日期:2024 年 4 月 1 日
[骑缝章: 上海某某科技有限公司 - 跨越 1-5 页]
@@ -0,0 +1,44 @@
# 设备采购合同(异常样本:已执行但缺签章)
**合同编号**HT2024-005678
## 第一条 合同当事人
**甲方(买方)**:上海某某科技有限公司
统一社会信用代码:91310000MA1K3H5K8L
法定代表人:张三
**乙方(卖方)**:北京某某贸易有限公司
统一社会信用代码:91110000MA01234X5Y
法定代表人:李四
## 第二条 合同金额
合同总金额:人民币 1,500,000.00 元
大写:壹佰伍拾万元整
## 第三条 合同期限
签订日期:2024 年 4 月 1 日
生效日期:2024 年 4 月 1 日
终止日期:2025 年 12 月 31 日
## 第四条 质量标准
产品质量应符合 GB/T 12345-2020 国家标准。
## 第五条 违约责任
任何一方违约应支付合同总金额 10% 的违约金。
---
**甲方(盖章)**:上海某某科技有限公司
(签字栏为空 —— 缺章样本)
签订日期:2024 年 4 月 1 日
**乙方(盖章)**:北京某某贸易有限公司
[盖章: 北京某某贸易有限公司合同专用章]
签订日期:2024 年 4 月 1 日
(此合同甲方未盖章,属于异常样本。用于测试 MM-SEAL-001 的 fail 路径)
+341
View File
@@ -0,0 +1,341 @@
# ═════════════════════════════════════════════════════════════════
# 买卖合同 · 回归测试用例
# ═════════════════════════════════════════════════════════════════
# 配套文件:contract_purchase.yaml
# visual_manifest 段用于 mock 视觉检测器输出(印章/签名)
#
# phase 字段:
# - 默认 executed(按全局 default_phase),可省略
# - 显式声明 draft → 引擎按草稿阶段评判
#
# 新增状态:
# - pass / fail / skipped_phase / skipped_gate
target: contract_purchase.yaml
fixtures:
# ═════════════════════════════════════════════════════════════
# MM-001 · 当事人信息完整性
# ═════════════════════════════════════════════════════════════
MM-001:
# ── Executed 阶段 ──
- name: 已执行-完整合规
phase: executed
extract:
甲方名称: 上海某某科技有限公司
甲方法定代表人: 张三
甲方统一信用代码: "91310000MA1K3H5K8L"
乙方名称: 北京某某贸易有限公司
乙方法定代表人: 李四
乙方统一信用代码: "91110000MA01234X5Y"
expected: pass
- name: 已执行-缺少法定代表人
phase: executed
extract:
甲方名称: 上海某某科技有限公司
甲方法定代表人: null # executed 阶段缺失 = fail
乙方名称: 北京某某贸易有限公司
乙方法定代表人: 李四
expected: fail
- name: 已执行-USCC 校验位错误
phase: executed
extract:
甲方名称: 上海某某科技有限公司
甲方法定代表人: 张三
甲方统一信用代码: "91310000MA1K3H5K80"
乙方名称: 北京某某贸易有限公司
乙方法定代表人: 李四
乙方统一信用代码: "91110000MA01234X5Y"
expected: fail
# ── Draft 阶段(同样的抽取结果,不同的判定)──
- name: 草稿-只有甲乙方名称(执行阶段 fail,草稿阶段 pass)
phase: draft
extract:
甲方名称: 上海某某科技有限公司
乙方名称: 北京某某贸易有限公司
# 法代、USCC、电话都没填
expected: pass # 草稿阶段这些是待补项
- name: 草稿-连甲乙方名称都没有(仍然 fail)
phase: draft
extract:
甲方名称: null # draft 阶段 required_from 也必需
乙方名称: 北京某某贸易有限公司
expected: fail
# ═════════════════════════════════════════════════════════════
# MM-002 · 合同金额大小写一致性
# ═════════════════════════════════════════════════════════════
MM-002:
- name: 大小写一致
extract:
合同金额: 1200000.00
合同金额大写: 壹佰贰拾万元整
expected: pass
- name: 不一致(金额错位)
extract:
合同金额: 1200000.00
合同金额大写: 壹佰贰拾贰万元整
expected: fail
- name: 缺少大写金额
extract:
合同金额: 1200000.00
合同金额大写: null
expected: fail
# ═════════════════════════════════════════════════════════════
# MM-003 · 大额合同须招投标
# ═════════════════════════════════════════════════════════════
MM-003:
- name: 小额无需招标
extract:
合同金额: 500000
招标文件编号: null
expected: pass
- name: 大额有招标
extract:
合同金额: 2000000
招标文件编号: "ZB2024001"
expected: pass
- name: 大额无招标
extract:
合同金额: 2000000
招标文件编号: null
expected: fail
# ═════════════════════════════════════════════════════════════
# MM-004 · 合同日期先后关系
# 签订日期是 required_from: executed,草稿阶段整条规则 skipped
# ═════════════════════════════════════════════════════════════
MM-004:
- name: 已执行-正常先后
phase: executed
extract:
签订日期: "2024-03-15"
生效日期: "2024-04-01"
终止日期: "2025-04-01"
expected: pass
- name: 已执行-签订晚于生效
phase: executed
extract:
签订日期: "2024-04-15"
生效日期: "2024-04-01"
终止日期: "2025-04-01"
expected: fail
- name: 已执行-终止早于生效
phase: executed
extract:
签订日期: "2024-03-15"
生效日期: "2024-04-01"
终止日期: "2024-03-20"
expected: fail
# 草稿阶段:签订日期还没填,本规则应自动跳过(不是 fail)
- name: 草稿-签订日期未填(规则 skipped)
phase: draft
extract:
签订日期: null
生效日期: null
终止日期: null
expected: skipped_phase
# ═════════════════════════════════════════════════════════════
# MM-005 · 质量标准明确性
# ═════════════════════════════════════════════════════════════
MM-005:
- name: 有具体国标
extract:
质量标准: 产品质量应符合 GB/T 12345-2020《某某产品质量要求》国家标准
expected: pass
- name: 过于简略
extract:
质量标准: 按国家标准
expected: fail
- name: 长度够但无标准引用
extract:
质量标准: 产品应符合买方指定的质量要求,包括外观、功能和性能等方面
expected: fail
# ═════════════════════════════════════════════════════════════
# MM-006 · 违约责任条款存在性
# ═════════════════════════════════════════════════════════════
MM-006:
- name: 明确违约
extract:
违约责任: 任何一方违约应向守约方支付合同总金额 10% 的违约金,并赔偿守约方因此遭受的直接经济损失。
expected: pass
- name: 无违约条款
extract:
违约责任: null
expected: fail
# ═════════════════════════════════════════════════════════════
# MM-SEAL-001 · 双方签章齐全且文字匹配
# 所有 seal required_from: executed,草稿阶段整条规则 skipped
# ═════════════════════════════════════════════════════════════
MM-SEAL-001:
# ── Executed 阶段 ──
- name: 已执行-双方签章齐全且文字匹配
phase: executed
extract:
甲方名称: 上海某某科技有限公司
乙方名称: 北京某某贸易有限公司
visual_manifest:
seals:
- id: 甲方签章
detection_score: 0.95
ocr_text: 上海某某科技有限公司合同专用章
color: red
page: 5
- id: 乙方签章
detection_score: 0.94
ocr_text: 北京某某贸易有限公司合同专用章
color: red
page: 5
expected: pass
- name: 已执行-缺乙方签章
phase: executed
extract:
甲方名称: 上海某某科技有限公司
乙方名称: 北京某某贸易有限公司
visual_manifest:
seals:
- id: 甲方签章
detection_score: 0.95
ocr_text: 上海某某科技有限公司合同专用章
color: red
page: 5
# 乙方签章缺失
expected: fail
- name: 已执行-甲方印章文字不符(冒章风险)
phase: executed
extract:
甲方名称: 上海某某科技有限公司
乙方名称: 北京某某贸易有限公司
visual_manifest:
seals:
- id: 甲方签章
detection_score: 0.92
ocr_text: 北京其他公司公章 # ← 文字不符
color: red
- id: 乙方签章
detection_score: 0.94
ocr_text: 北京某某贸易有限公司合同专用章
color: red
expected: fail
# ── Draft 阶段(草稿无章,应自动跳过)──
- name: 草稿-无任何印章(规则 skipped_phase
phase: draft
extract:
甲方名称: 上海某某科技有限公司
乙方名称: 北京某某贸易有限公司
visual_manifest:
seals: [] # 草稿阶段无章
expected: skipped_phase
- name: 草稿-即使有章也是 skipped(本规则对 draft 不适用)
phase: draft
extract:
甲方名称: 上海某某科技有限公司
乙方名称: 北京某某贸易有限公司
visual_manifest:
seals:
- id: 甲方签章
detection_score: 0.95
ocr_text: 上海某某科技有限公司合同专用章
expected: skipped_phase # 即使章齐全,draft 也 skipped
# ═════════════════════════════════════════════════════════════
# MM-SEAL-002 · 骑缝章完整
# ═════════════════════════════════════════════════════════════
MM-SEAL-002:
- name: 骑缝章完整对齐
extract:
甲方名称: 上海某某科技有限公司
visual_manifest:
cross_page_seals:
- id: 骑缝章
detection_score: 0.91
complete: true # 所有相邻页都有
aligned: true # 拼合正确
ocr_text: 上海某某科技有限公司
expected: pass
- name: 骑缝章部分缺失
extract:
甲方名称: 上海某某科技有限公司
visual_manifest:
cross_page_seals:
- id: 骑缝章
detection_score: 0.85
complete: false # 缺少部分页
aligned: true
expected: fail
- name: 骑缝章错位
extract:
甲方名称: 上海某某科技有限公司
visual_manifest:
cross_page_seals:
- id: 骑缝章
detection_score: 0.88
complete: true
aligned: false # 拼合错位,可能换页
expected: fail
# ═════════════════════════════════════════════════════════════
# MM-SEAL-003 · 法人签名 + 公章双重确认(仅大额触发)
# ═════════════════════════════════════════════════════════════
MM-SEAL-003:
- name: 小额合同无需双重确认
extract:
合同金额: 300000 # < 50 万,规则不触发
visual_manifest:
seals: []
signatures: []
expected: pass
- name: 大额合同公章 + 签名齐全
extract:
合同金额: 800000
甲方法定代表人: 张三
visual_manifest:
seals:
- id: 甲方签章
detection_score: 0.94
ocr_text: 上海某某科技有限公司合同专用章
signatures:
- id: 甲方法人签名
detection_score: 0.90
ocr_text: 张三
expected: pass
- name: 大额合同缺法人签名
extract:
合同金额: 800000
甲方法定代表人: 张三
visual_manifest:
seals:
- id: 甲方签章
detection_score: 0.94
ocr_text: 上海某某科技有限公司合同专用章
signatures: [] # 无签名
expected: fail
+566
View File
@@ -0,0 +1,566 @@
metadata:
type_id: contract.purchase.general
name: 买卖合同
version: '1.0'
last_updated: '2026-04-11'
parent: contract
inherits_from:
- base.common
- base.party_info
classification_keywords:
- 买卖
- 购销
- 采购
references_laws:
- 《民法典》第 595-647 条(买卖合同章)
- 《民法典》第 463-594 条(合同编通则)
description: '适用于一般商品买卖合同,覆盖民法典第 595-647 条。
评查重点:当事人合法性、金额一致性、印章合规、交付条款、违约责任。
'
confidence_profile:
allow_weight_override: false
thresholds:
auto_pass: 0.95
field_confidence_defaults:
合同金额: 0.95
合同金额大写: 0.9
extract:
- group: 当事人(从起草就应该有)
fields:
- name: 甲方名称
type: verbatim
required_from: draft
deep_retry: false
- name: 乙方名称
type: verbatim
required_from: draft
deep_retry: false
- group: 当事人(执行时才必需)
fields:
- name: 甲方法定代表人
type: verbatim
required_from: executed
deep_retry: false
- name: 甲方统一信用代码
type: uscc
required_from: executed
deep_retry: false
- name: 甲方联系电话
type: verbatim
required_from: draft
deep_retry: false
- name: 乙方法定代表人
type: verbatim
required_from: executed
deep_retry: false
- name: 乙方统一信用代码
type: uscc
required_from: executed
deep_retry: false
- name: 乙方联系电话
type: verbatim
required_from: draft
deep_retry: false
- group: 合同基本信息
fields:
- name: 合同编号
type: verbatim
required_from: draft
deep_retry: false
- name: 签订日期
type: date
required_from: executed
deep_retry: false
- name: 生效日期
type: date
required_from: draft
deep_retry: false
- name: 终止日期
type: date
required_from: draft
deep_retry: false
- group: 标的与金额
fields:
- name: 标的物描述
type: string
required_from: draft
deep_retry: false
- name: 合同金额
type: money
required_from: draft
deep_retry: false
- name: 合同金额大写
type: verbatim
required_from: executed
deep_retry: false
- name: 招标文件编号
type: verbatim
required_from: draft
deep_retry: false
- group: 交付
fields:
- name: 交货地点
type: verbatim
required_from: draft
deep_retry: false
- name: 交货时间
type: date
required_from: draft
deep_retry: false
- group: 关键条款(起草就应该有)
fields:
- name: 质量标准
type: string
required_from: draft
deep_retry: false
- name: 付款方式
type: string
required_from: draft
deep_retry: false
- name: 违约责任
type: string
required_from: draft
deep_retry: false
- name: 争议解决
type: string
required_from: draft
deep_retry: false
visual_elements:
seals:
- id: 甲方签章
name: 甲方公章或合同专用章
required: true
required_from: executed
allowed_types:
- 公章
- 合同专用章
- 法人章
expected_text_match:
field: 甲方名称
- id: 乙方签章
name: 乙方公章或合同专用章
required: true
required_from: executed
allowed_types:
- 公章
- 合同专用章
- 法人章
expected_text_match:
field: 乙方名称
signatures:
- id: 甲方法人签名
name: 甲方法定代表人签名
required: false
required_from: executed
expected_text_match:
field: 甲方法定代表人
- id: 乙方法人签名
name: 乙方法定代表人签名
required: false
required_from: executed
expected_text_match:
field: 乙方法定代表人
cross_page_seals:
- id: 骑缝章
name: 合同骑缝章
required: true
required_from: executed
expected_text_match:
field: 甲方名称
prompt: '合同每相邻两页之间跨页盖章。
每页只能看到印章的一半,两页拼合后构成完整圆章。
通常在页面右侧边缘或底部,垂直跨越装订线。
不要和页脚日期章或水印混淆。
'
rules:
- group: 合同主体
rules:
- rule_id: MM-001
name: 当事人信息完整性
risk: high
score: 10
stages:
- id: '1'
check: required
fields:
- 甲方名称
- 乙方名称
- 甲方法定代表人
- 乙方法定代表人
logic: and
- id: '2'
check: format
field: 甲方统一信用代码
format: uscc
- id: '3'
check: format
field: 乙方统一信用代码
format: uscc
logic: 1 AND 2 AND 3
messages:
pass: 当事人信息完整,统一信用代码校验通过
fail: 当事人信息缺失或统一信用代码校验失败
references_laws:
- 《民法典》第 471 条
remediation:
by_phase:
draft:
suggestions:
- 草稿阶段当事人信息暂缺是正常的,签署前须补齐
- 建议在定稿前确认:甲乙方名称、法定代表人、统一信用代码三项齐全
actions:
- type: fill_field
label: 补充甲方法定代表人
field: 甲方法定代表人
prompt: 请输入甲方法定代表人姓名
- type: fill_field
label: 补充乙方法定代表人
field: 乙方法定代表人
prompt: 请输入乙方法定代表人姓名
executed:
suggestions:
- 已执行合同出现当事人信息缺失是严重瑕疵
- 可能原因:起草遗漏 / OCR 错位 / USCC 校验位错
- 须补充说明或要求当事人出具澄清
actions:
- type: recheck_field
label: 核对甲方统一信用代码
field: 甲方统一信用代码
hint: 18 位,末位为校验位,请核对营业执照
- type: recheck_field
label: 核对乙方统一信用代码
field: 乙方统一信用代码
- type: link_template
label: 下载主体信息补充说明函模板
template_id: party_info_addendum
- type: escalate
label: 紧急:执行合同主体信息缺失,上报合规组
role: 合规专员
reason: 已执行合同出现当事人瑕疵,可能影响效力
type: deterministic
- group: 金额与支付
rules:
- rule_id: MM-002
name: 合同金额大小写一致性
risk: high
score: 10
stages:
- id: '1'
check: required
fields:
- 合同金额
- 合同金额大写
logic: and
- id: '2'
check: amount_match
number: 合同金额
chinese: 合同金额大写
logic: 1 AND 2
messages:
pass: 金额大小写一致
fail: 金额大小写不一致,合同可能被篡改或抽取错误
references_laws:
- 《民法典》第 470 条
remediation:
on_rule_fail:
suggestions:
- 小写金额 {{合同金额}} 与大写 {{合同金额大写}} 不一致
- 如果是 OCR 抽取错误,请人工核对原文
- 如果合同原件本身不一致,以大写为准(法律惯例)并出具说明
actions:
- type: recheck_field
label: 核对小写金额
field: 合同金额
- type: recheck_field
label: 核对大写金额
field: 合同金额大写
- type: link_template
label: 下载金额不一致说明函模板
template_id: amount_inconsistency_explanation
- type: escalate
label: 涉嫌合同篡改,上报合规组
role: 合规专员
reason: 金额大小写不一致,可能存在恶意篡改风险
on_confidence_low:
suggestions:
- 金额字段抽取置信度低,请人工确认原文
actions:
- type: recheck_field
label: 重新核对合同金额
field: 合同金额
hint: 注意千分位符号、小数点、货币单位
type: deterministic
- rule_id: MM-003
name: 大额合同须招投标
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 合同金额
- id: '2'
check: compare
left: 合同金额
op: '>'
right: 1000000
- id: '3'
check: required
required_if: '2'
field: 招标文件编号
logic: 1 AND (NOT 2 OR 3)
messages:
pass: 小额合同或大额已附招标文件
fail: 合同金额超过 100 万元,但未提供招标文件编号
references_laws:
- 《政府采购法》第 27 条
- 《招标投标法》第 3 条
remediation:
suggestions:
- 本合同金额 {{合同金额}} 元,超过政府采购 100 万招投标阈值
- 按《政府采购法》第 27 条,须采取公开招标或提供豁免说明
- 下面三种操作任选其一即可通过本条规则
actions:
- type: fill_field
label: 补充招标文件编号
field: 招标文件编号
prompt: 请输入招标文件编号(常见格式 ZB2024XXX)
- type: upload_file
label: 上传招标豁免说明函
file_type: 招标豁免说明
accept:
- pdf
- docx
- type: link_template
label: 下载招标豁免说明函模板
template_id: bidding_exemption_letter
- type: escalate
label: 金额过大需采购总监审批
role: 采购总监
trigger_if: '{{合同金额}} > 5000000'
reason: 合同金额超过 500 万,需采购总监额外审批
type: deterministic
- group: 合同期限
rules:
- rule_id: MM-004
name: 签订/生效/终止日期先后关系
risk: high
score: 8
stages:
- id: '1'
check: required
fields:
- 签订日期
- 生效日期
logic: and
- id: '2'
type: date.sequence
fields:
- 签订日期
- 生效日期
- 终止日期
order: le
logic: 1 AND 2
messages:
pass: 合同日期先后关系合规
fail: 签订日/生效日/终止日顺序异常
remediation:
suggestions:
- 签订日期 {{签订日期}} / 生效日期 {{生效日期}} / 终止日期 {{终止日期}}
- 正常顺序应为:签订 ≤ 生效 ≤ 终止
- 可能原因:日期抽取错位 / OCR 识别错误 / 合同原件笔误
actions:
- type: recheck_field
label: 核对签订日期
field: 签订日期
- type: recheck_field
label: 核对生效日期
field: 生效日期
- type: recheck_field
label: 核对终止日期
field: 终止日期
type: deterministic
- group: 标的物
rules:
- rule_id: MM-005
name: 质量标准明确性
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 质量标准
- id: '2'
type: string.min_length
field: 质量标准
min: 20
- id: '3'
check: contains
field: 质量标准
any_of:
- GB/T
- ISO
- 国标
- 行业标准
- 企业标准
logic: 1 AND 2 AND 3
messages:
pass: 质量标准明确(引用了具体标准)
fail: 质量标准过于简略或未引用具体标准
references_laws:
- 《民法典》第 615 条
type: deterministic
- group: 违约与争议
rules:
- rule_id: MM-006
name: 违约责任条款存在性
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 违约责任
- id: '2'
type: string.min_length
field: 违约责任
min: 30
logic: 1 AND 2
messages:
pass: 违约责任条款明确
fail: 违约责任条款缺失或过于简略
type: deterministic
- group: 印章合规
rules:
- rule_id: MM-SEAL-001
name: 合同双方签章齐全
risk: high
score: 15
stages:
- id: '1'
type: seal.present
seal_id: 甲方签章
- id: '2'
type: seal.present
seal_id: 乙方签章
- id: '3'
type: seal.text_match
seal_id: 甲方签章
- id: '4'
type: seal.text_match
seal_id: 乙方签章
logic: 1 AND 2 AND 3 AND 4
messages:
pass: 合同双方签章齐全且文字匹配当事人名称
fail: 缺少签章 或 印章文字与当事人名称不一致(可能冒用)
references_laws:
- 《民法典》第 490 条(合同形式)
remediation:
by_phase:
draft:
suggestions:
- 草稿阶段无需盖章。请在定稿签署时加盖甲乙方公章
- 合同超过一页时建议加盖骑缝章
actions:
- type: noop
executed:
suggestions:
- 已执行合同缺少签章或印章文字不符,严重影响合同效力
- 可能原因:(1) 漏扫签章页 (2) 印章是冒章 (3) 合同原件确实未盖章
- 建议立即补救
actions:
- type: upload_file
label: 紧急:补扫签章页
file_type: 签章页
accept:
- pdf
- jpg
- png
- type: recheck_field
label: 核对甲方印章文字
field: visual.甲方签章
hint: 核对印章上的单位名称与甲方名称是否一致
- type: recheck_field
label: 核对乙方印章文字
field: visual.乙方签章
- type: link_template
label: 下载印章缺失情况说明模板
template_id: seal_missing_statement
- type: escalate
label: 疑似冒章,上报合规组
role: 合规专员
reason: 已执行合同印章文字与当事人名称不一致
type: deterministic
- rule_id: MM-SEAL-002
name: 合同骑缝章完整
risk: high
score: 10
stages:
- id: '1'
type: cross_page_seal.complete
seal_id: 骑缝章
logic: '1'
messages:
pass: 骑缝章完整
fail: 骑缝章缺失,合同可能被替换页
remediation:
suggestions:
- 骑缝章用于防止合同页面被替换。缺失或错位是严重的合规风险
- 请确认:(1) 是否原件有骑缝章?(2) 扫描时是否漏扫或错位?
- 如原件确实无骑缝章,需双方补盖或出具情况说明
actions:
- type: upload_file
label: 补扫完整骑缝章
file_type: 骑缝章扫描件
accept:
- pdf
- type: link_template
label: 下载印章缺失情况说明模板
template_id: seal_missing_statement
- type: escalate
label: 疑似合同替换页,上报合规组
role: 合规专员
type: deterministic
- rule_id: MM-SEAL-003
name: 高额合同须法人签名与公章并存
risk: medium
score: 5
stages:
- id: '1'
check: compare
left: 合同金额
op: '>'
right: 500000
- id: '2'
type: seal.present
required_if: '1'
seal_id: 甲方签章
- id: '3'
type: signature.present
required_if: '1'
signature_id: 甲方法人签名
logic: NOT 1 OR (2 AND 3)
messages:
pass: 小额合同或已有公章+法人签名双重确认
fail: 大额合同缺少公章或法人签名
remediation:
suggestions:
- 超过 50 万元的合同建议法人亲自签名 + 公章双重确认
- 缺少任一都属于瑕疵,建议补齐
actions:
- type: upload_file
label: 补传签章页(含法人签名)
file_type: 签章页
accept:
- pdf
- jpg
- png
- type: document_override
label: 记录豁免(金额虽大但有特殊约定)
require_reason: true
require_role: 法务经理
type: deterministic