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
+786
View File
@@ -0,0 +1,786 @@
metadata:
type_id: contract.tech
name: 技术合同
version: '1.0'
last_updated: '2026-04-12'
tags:
- 合同
- 技术
- 开发
- IT采购
description: '依据《中华人民共和国民法典》合同编·通则(第470条)及技术合同章(第843-887条)。
适用于技术开发、技术服务、IT系统建设采购等技术类合同的评查,
覆盖签署前审查(draft)和签署后审计(executed)两个阶段。
原始规则来源:旧系统 08_技术合同.json(7条技术专项评查点)+ 通用合同评查点。
'
extract:
- group: '合同成立要素 — required_from: draft'
fields:
- name: 合同名称
type: verbatim
required_from: draft
desc: 合同的完整名称/项目名称
deep_retry: false
- name: 甲方
type: verbatim
required_from: draft
desc: 委托方/采购方公司全称
deep_retry: false
- name: 乙方
type: verbatim
required_from: draft
desc: 研发方/供应商公司全称
deep_retry: false
- name: 合同金额
type: money
required_from: draft
desc: 合同总金额(数字)
deep_retry: false
- name: 合同金额大写
type: verbatim
required_from: draft
desc: 合同总金额中文大写
deep_retry: false
- group: 主体资格
fields:
- name: 甲方法定代表人
type: verbatim
required_from: draft
desc: 甲方法定代表人姓名
deep_retry: false
- name: 乙方法定代表人
type: verbatim
required_from: draft
desc: 乙方法定代表人姓名
deep_retry: false
- name: 甲方地址
type: verbatim
required_from: draft
desc: 甲方注册/办公地址
deep_retry: false
- name: 乙方地址
type: verbatim
required_from: draft
desc: 乙方注册/办公地址
deep_retry: false
- name: 甲方统一社会信用代码
type: uscc
required_from: executed
desc: 甲方18位统一社会信用代码
deep_retry: false
- name: 乙方统一社会信用代码
type: uscc
required_from: executed
desc: 乙方18位统一社会信用代码
deep_retry: false
- group: '技术合同核心条款 — required_from: draft'
fields:
- name: 技术目标与方案
type: string
required_from: draft
desc: 技术方案、技术目标、技术指标的完整描述
deep_retry: false
- name: 技术标准与规范
type: string
required_from: draft
desc: 引用的技术规范、行业标准(名称和编号)
deep_retry: false
- name: 实施计划与里程碑
type: string
required_from: draft
desc: 实施阶段划分、里程碑节点和各阶段交付物
deep_retry: false
- name: 交货期限
type: string
required_from: draft
desc: 交货/交付时间要求
deep_retry: false
- name: 付款方式
type: string
required_from: draft
desc: 付款条件、方式、时间节点的完整描述
deep_retry: false
- group: 验收与质保
fields:
- name: 验收标准与流程
type: string
required_from: draft
desc: 验收标准、验收流程和不合格处理方式
deep_retry: false
- name: 质保期条款
type: string
required_from: executed
desc: 质保期限、质保范围和质保服务内容
deep_retry: false
- name: 培训条款
type: string
required_from: executed
desc: 培训内容、培训方式和培训安排
deep_retry: false
- group: 技术权利
fields:
- name: 知识产权条款
type: string
required_from: draft
desc: 技术成果归属、使用许可和后续改进分享
deep_retry: false
- name: 技术风险分担
type: string
required_from: draft
desc: 技术困难导致失败时的风险分担方式和通知义务
deep_retry: false
- name: 技术支持与资料移交
type: string
required_from: draft
desc: 技术支持方式、响应时间和技术资料移交清单
deep_retry: false
- group: 法定/必备条款
fields:
- name: 违约责任条款
type: string
required_from: draft
desc: 违约责任的完整条款内容
deep_retry: false
- name: 争议解决条款
type: string
required_from: draft
desc: 争议解决方式(法院/仲裁)的完整描述
deep_retry: false
- name: 不可抗力条款
type: string
required_from: executed
desc: 不可抗力相关条款的完整内容
deep_retry: false
- name: 保密条款
type: string
required_from: draft
desc: 保密义务相关条款内容
deep_retry: false
- name: 履约保证金条款
type: string
required_from: executed
desc: 履约保证金金额、缴纳方式和退还条件
deep_retry: false
- group: '签署要素 — required_from: executed'
fields:
- name: 签约日期
type: date
required_from: executed
desc: 合同签订日期
deep_retry: false
- name: 合同编号
type: verbatim
required_from: executed
desc: 合同唯一编号
deep_retry: false
- group: 辅助信息
fields:
- name: 甲方联系人
type: verbatim
required_from: executed
desc: 甲方项目联系人姓名
deep_retry: false
- name: 甲方联系电话
type: verbatim
required_from: executed
desc: 甲方联系电话
deep_retry: false
- name: 乙方联系人
type: verbatim
required_from: executed
desc: 乙方项目联系人姓名
deep_retry: false
- name: 乙方联系电话
type: verbatim
required_from: executed
desc: 乙方联系电话
deep_retry: false
- name: 甲方开户银行
type: verbatim
required_from: executed
desc: 甲方银行开户行名称
deep_retry: false
rules:
- group: 完整性(11 条)
rules:
- rule_id: JS-001
name: 合同主体齐全
risk: high
score: 10
stages:
- id: '1'
check: required
field: 甲方
- id: '2'
check: required
field: 乙方
messages:
pass: 甲乙方信息完整
fail: 缺少甲方或乙方信息,合同主体不明确
type: deterministic
- rule_id: JS-002
name: 技术目标与金额必填
risk: high
score: 10
stages:
- id: '1'
check: required
field: 技术目标与方案
- id: '2'
check: required
field: 合同金额
messages:
pass: 技术目标与金额信息完整
fail: 缺少技术目标描述或合同金额
type: deterministic
- rule_id: JS-003
name: 合同名称必填
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 合同名称
messages:
pass: 合同名称已填写
fail: 缺少合同名称
type: deterministic
- rule_id: JS-004
name: 法定代表人齐全
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 甲方法定代表人
- id: '2'
check: required
field: 乙方法定代表人
messages:
pass: 甲乙方法定代表人信息完整
fail: 缺少甲方或乙方法定代表人信息
type: deterministic
- rule_id: JS-005
name: 付款方式必填
risk: high
score: 8
stages:
- id: '1'
check: required
field: 付款方式
messages:
pass: 付款方式已填写
fail: 缺少付款方式
type: deterministic
- rule_id: JS-006
name: 知识产权条款存在
risk: high
score: 8
stages:
- id: '1'
check: required
field: 知识产权条款
messages:
pass: 知识产权条款存在
fail: 缺少知识产权条款,技术合同必须约定成果归属
type: deterministic
- rule_id: JS-007
name: 违约责任条款存在
risk: high
score: 8
stages:
- id: '1'
check: required
field: 违约责任条款
messages:
pass: 违约责任条款存在
fail: 缺少违约责任条款
type: deterministic
- rule_id: JS-008
name: 争议解决条款存在
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 争议解决条款
messages:
pass: 争议解决条款存在
fail: 缺少争议解决条款
type: deterministic
- rule_id: JS-009
name: 验收标准存在
risk: high
score: 8
stages:
- id: '1'
check: required
field: 验收标准与流程
messages:
pass: 验收标准已约定
fail: 缺少验收标准,技术合同必须约定验收方式
type: deterministic
- rule_id: JS-010
name: 签约日期必填
risk: high
score: 8
applies_in:
- executed
stages:
- id: '1'
check: required
field: 签约日期
messages:
pass: 签约日期已填写
fail: 缺少签约日期
type: deterministic
- rule_id: JS-011
name: 合同编号必填
risk: medium
score: 3
applies_in:
- executed
stages:
- id: '1'
check: required
field: 合同编号
messages:
pass: 合同编号已填写
fail: 缺少合同编号
type: deterministic
- group: 规范性(2 条)
rules:
- rule_id: JS-012
name: 甲方信用代码校验
risk: medium
score: 5
applies_in:
- executed
stages:
- id: '1'
check: format
field: 甲方统一社会信用代码
format: uscc
messages:
pass: 甲方统一社会信用代码校验通过
fail: 甲方统一社会信用代码校验位错误
type: deterministic
- rule_id: JS-013
name: 乙方信用代码校验
risk: medium
score: 5
applies_in:
- executed
stages:
- id: '1'
check: format
field: 乙方统一社会信用代码
format: uscc
messages:
pass: 乙方统一社会信用代码校验通过
fail: 乙方统一社会信用代码校验位错误
type: deterministic
- group: 合理性(3 条)
rules:
- rule_id: JS-014
name: 金额大小写一致
risk: high
score: 10
stages:
- id: '1'
check: amount_match
number: 合同金额
chinese: 合同金额大写
messages:
pass: 金额大小写一致
fail: 合同金额数字与大写不一致,存在篡改风险
type: deterministic
- rule_id: JS-015
name: 金额为正数
risk: low
score: 3
stages:
- id: '1'
check: compare
left: 合同金额
op: '>'
right: 0
messages:
pass: 合同金额为正数
fail: 合同金额不为正数,数据异常
type: deterministic
- rule_id: JS-016
name: 签约日期不是未来
risk: low
score: 3
applies_in:
- executed
stages:
- id: '1'
check: assert
expr: parse_date(签约日期) != None and (today() - parse_date(签约日期)).days >= 0 and (today() - parse_date(签约日期)).days <= 3650
messages:
pass: 签约日期在合理范围内
fail: 签约日期为未来日期或距今超过10年
type: deterministic
- group: '来源: NR-JS-001 技术目标与指标明确性 — §843, §845'
rules:
- rule_id: JS-017
name: 技术目标与指标明确
risk: high
score: 5
stages:
- id: '1'
check: required
field: 技术目标与方案
- id: '2'
check: ai
prompt: '请检查技术合同中技术目标与指标的明确性。
技术方案/目标/指标:{{技术目标与方案}}
评查要点(依据民法典第843、845条):
1. 技术方案是否具体描述了技术路线、方法论和实现方式
2. 技术目标是否明确、可衡量,不能仅有「满足需求」等含糊表述
3. 技术指标是否有量化参数(性能指标、精度要求、响应时间等)
4. 技术方案与技术目标是否匹配
'
messages:
pass: 技术目标与指标约定明确
fail: 技术目标与指标约定不明确
type: ai_rule
- group: '来源: NR-JS-002 技术标准与规范 — §845'
rules:
- rule_id: JS-018
name: 技术标准与规范引用明确
risk: medium
score: 3
stages:
- id: '1'
check: required
field: 技术标准与规范
- id: '2'
check: ai
prompt: '请检查技术合同中技术标准与规范的引用情况。
技术规范/行业标准:{{技术标准与规范}}
评查要点(依据民法典第845条):
1. 是否引用了具体的技术规范文件(名称、编号)
2. 是否引用了适用的国家标准(GB)、行业标准或国际标准
3. 标准引用是否完整(标准号、标准名称、版本年份)
4. 不能仅有「符合相关标准」等含糊表述
'
messages:
pass: 技术标准与规范引用明确
fail: 技术标准与规范引用不明确
type: ai_rule
- group: '来源: NR-JS-003 实施计划与里程碑 — §845, §853'
rules:
- rule_id: JS-019
name: 实施计划与里程碑完整
risk: high
score: 5
stages:
- id: '1'
check: required
field: 实施计划与里程碑
- id: '2'
check: ai
prompt: '请检查技术合同中实施计划与里程碑的完整性。
实施阶段/里程碑/交付物:{{实施计划与里程碑}}
评查要点(依据民法典第845、853条):
1. 是否明确划分了实施阶段(需求分析、方案设计、开发实施、测试验收等)
2. 各阶段是否有明确的时间节点或里程碑
3. 各阶段是否明确了应交付的成果物
4. 总工期是否合理
'
messages:
pass: 实施计划与里程碑约定完整
fail: 实施计划与里程碑约定不完整
type: ai_rule
- group: '来源: NR-JS-006 技术验收标准 — §845'
rules:
- rule_id: JS-020
name: 技术验收标准完整
risk: high
score: 5
stages:
- id: '1'
check: required
field: 验收标准与流程
- id: '2'
check: ai
prompt: '请检查技术合同中验收标准条款的完整性。
验收标准/流程/不合格处理:{{验收标准与流程}}
评查要点(依据民法典第845条):
1. 验收标准是否明确(功能验收、性能验收、安全验收等各项标准)
2. 验收流程是否清晰(验收组织方、参与方、验收步骤、验收期限)
3. 是否约定了验收不合格时的整改要求和处理方式
4. 是否约定了分阶段验收(初验/终验)还是整体验收
'
messages:
pass: 技术验收标准约定完整
fail: 技术验收标准约定不完整
type: ai_rule
- group: '来源: NR-JS-004 知识产权归属 — §859, §860, §861'
rules:
- rule_id: JS-021
name: 知识产权归属明确
risk: high
score: 5
stages:
- id: '1'
check: required
field: 知识产权条款
- id: '2'
check: ai
prompt: '请检查技术合同中知识产权归属条款的完整性。
知识产权条款:{{知识产权条款}}
评查要点(依据民法典第859-861条):
1. 是否明确约定技术成果(专利、软件著作权、技术秘密等)的归属
2. 是否区分委托方和研发方各自的权利
3. 是否约定了技术成果使用许可的范围和方式
4. 对于软件开发类合同,应特别关注源代码、数据的归属
5. 民法典规定委托开发的专利申请权默认属于研发方,如需归委托方应明确约定
'
messages:
pass: 知识产权归属约定明确
fail: 知识产权归属约定不明确
type: ai_rule
- group: '来源: NR-JS-007 技术风险分担 — §858'
rules:
- rule_id: JS-022
name: 技术风险分担明确
risk: medium
score: 3
stages:
- id: '1'
check: required
field: 技术风险分担
- id: '2'
check: ai
prompt: '请检查技术合同中技术风险分担条款的完整性。
风险分担条款:{{技术风险分担}}
评查要点(依据民法典第858条):
1. 是否约定了因技术困难导致研发失败或部分失败时的风险分担方式
2. 是否约定了研发过程中遇到技术困难时的通知义务和时限
3. 风险分担方式是否合理(费用分担、成果归属等)
4. 是否区分了可归责于一方的失败和不可归责的技术风险
'
messages:
pass: 技术风险分担约定明确
fail: 技术风险分担约定缺失或不明确
type: ai_rule
- group: '来源: NR-JS-008 技术支持与资料移交 — §853, §880'
rules:
- rule_id: JS-023
name: 技术支持与资料移交完整
risk: medium
score: 2
stages:
- id: '1'
check: required
field: 技术支持与资料移交
- id: '2'
check: ai
prompt: '请检查技术合同中技术支持与资料移交条款的完整性。
技术支持条款:{{技术支持与资料移交}}
评查要点(依据民法典第853、880条):
1. 是否约定了技术支持的方式(现场、远程、电话等)
2. 是否约定了技术问题的响应时间和解决时限
3. 是否列明了应移交的技术资料清单(技术文档、操作手册、源代码等)
4. 技术资料的移交时间和方式是否明确
'
messages:
pass: 技术支持与资料移交条款完整
fail: 技术支持与资料移交条款不完整
type: ai_rule
- group: 合规性 · AI 语义判断(4 条)
rules:
- rule_id: JS-024
name: 违约责任条款充分
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 违约责任条款
- id: '2'
check: ai
prompt: '请判断以下违约责任条款是否充分、合规。
条款内容:{{违约责任条款}}
充分的违约责任条款应当(依据民法典第577-585条):
1. 明确违约情形(如逾期付款、逾期交付、质量不合格、擅自转包等)
2. 明确违约金计算方式或赔偿标准
3. 不能只是笼统的「违约要赔偿」之类的模糊表述
4. 应当对双方的违约责任都有约定
'
messages:
pass: 违约责任条款充分
fail: 违约责任条款不充分
type: ai_rule
- rule_id: JS-025
name: 争议解决方式明确
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 争议解决条款
- id: '2'
check: ai
prompt: '请判断以下争议解决条款是否符合法律要求。
条款内容:{{争议解决条款}}
合规的争议解决条款应当:
1. 明确指定具体的争议解决方式(仲裁或诉讼,二选一)
2. 如选择仲裁,应明确仲裁机构名称
3. 如选择诉讼,应明确管辖法院
4. 不能同时约定仲裁和诉讼
'
messages:
pass: 争议解决方式明确
fail: 争议解决条款缺失或未明确具体的仲裁机构/管辖法院
type: ai_rule
- rule_id: JS-026
name: 付款条款明确
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 付款方式
- id: '2'
check: ai
prompt: '请判断以下付款条款是否明确。
条款内容:{{付款方式}}
明确的付款条款应当包含:
1. 付款金额或比例(如「支付合同总额的30%」)
2. 付款时间节点或触发条件(如「验收合格后15个工作日内」)
3. 付款方式(如银行转账)
4. 对技术合同,通常应有分期付款安排(预付款、阶段款、验收款、质保金)
'
messages:
pass: 付款条款明确
fail: 付款条款不够明确
type: ai_rule
- rule_id: JS-027
name: 保密条款完整
risk: low
score: 3
stages:
- id: '1'
check: required
field: 保密条款
- id: '2'
check: ai
prompt: '请判断以下保密条款是否完整。
条款内容:{{保密条款}}
完整的保密条款应当包含:
1. 保密信息的范围定义(哪些信息属于保密信息)
2. 保密义务的期限(合同期内还是延伸到终止后)
3. 违反保密义务的法律后果
'
messages:
pass: 保密条款完整
fail: 保密条款不够完整
type: ai_rule