Files
leaudit-platform-backend/leaudit-oss-yaml-files/contract.tech/1.0/rules.yaml
T

1637 lines
50 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
metadata:
type_id: contract.tech
name: 技术合同(技术开发/技术服务/采购)
version: '1.0'
last_updated: '2026-04-14'
classification_keywords:
- 技术开发
- 技术服务
- 技术咨询
- 软件开发
- 系统建设
- 平台采购
tags:
- 合同
- 技术
- 开发
- 服务
- 采购
description: '依据《中华人民共和国民法典》合同编通则(第470条)、技术合同章(第843-887条)及相关法规。
适用于信息系统建设、软件开发、数据服务、平台采购等技术类合同的评查。
覆盖签署前审查(draft)和签署后审计(executed)两个阶段。
合并通用合同规则与技术合同专有规则,共 37 条评查规则。
'
extract:
- group: 合同基本信息
fields:
- name: 合同名称
type: verbatim
required_from: draft
desc: 合同的完整名称
- name: 签约背景
type: string
required_from: draft
desc: 签约背景、缘由或项目依据
- name: 引用法律法规
type: string
required_from: draft
desc: 合同中引用的法律、法规名称
- name: 合同编号
type: verbatim
required_from: executed
desc: 合同唯一编号
- name: 签约日期
type: date
required_from: executed
desc: 合同签订日期
- name: 签约地点
type: verbatim
required_from: executed
desc: 合同签订地点
- name: 合同份数
type: integer
required_from: executed
desc: 合同正本份数
- name: 生效条件
type: string
required_from: executed
desc: 合同生效的条件描述
- name: 审批情况
type: string
required_from: draft
desc: 合同审批流程或审批信息
- group: 当事人
fields:
- name: 甲方
type: verbatim
required_from: draft
desc: 甲方(委托方/采购方)公司全称
- name: 乙方
type: verbatim
required_from: draft
desc: 乙方(开发方/服务方)公司全称
- name: 甲方法定代表人
type: verbatim
required_from: draft
desc: 甲方法定代表人或负责人姓名
- name: 乙方法定代表人
type: verbatim
required_from: draft
desc: 乙方法定代表人姓名
- name: 甲方地址
type: verbatim
required_from: draft
desc: 甲方注册或办公地址
- name: 乙方地址
type: verbatim
required_from: draft
desc: 乙方注册或办公地址
- name: 甲方联系人
type: verbatim
required_from: draft
desc: 甲方项目联系人姓名
- name: 甲方联系电话
type: verbatim
required_from: draft
desc: 甲方联系电话
- name: 乙方联系人
type: verbatim
required_from: draft
desc: 乙方项目联系人姓名
- name: 乙方联系电话
type: verbatim
required_from: draft
desc: 乙方联系电话
- name: 甲方统一社会信用代码
type: uscc
required_from: draft
desc: 甲方18位统一社会信用代码
- name: 乙方统一社会信用代码
type: uscc
required_from: draft
desc: 乙方18位统一社会信用代码
- name: 甲方资质信息
type: string
required_from: draft
desc: 甲方相关资质证明描述
- name: 乙方资质信息
type: string
required_from: draft
desc: 乙方资质证明、从业资格等描述
- name: 甲方授权委托信息
type: string
required_from: draft
desc: 甲方签约代表的授权委托书信息
- name: 乙方授权委托信息
type: string
required_from: draft
desc: 乙方签约代表的授权委托书信息
- group: 银行账户
fields:
- name: 甲方开户银行
type: verbatim
required_from: draft
desc: 甲方银行开户行名称
- name: 甲方银行账号
type: verbatim
required_from: draft
desc: 甲方银行账号
- name: 乙方开户银行
type: verbatim
required_from: draft
desc: 乙方银行开户行名称
- name: 乙方银行账号
type: verbatim
required_from: draft
desc: 乙方银行账号
- group: 标的与技术
fields:
- name: 合同标的描述
type: string
required_from: draft
desc: 合同标的/服务内容的完整描述
- name: 技术方案
type: string
required_from: draft
desc: 技术实现方案:定性+半定量描述"怎么做"(架构/方法论)。包括技术路线、架构设计、开发方法论、技术栈选择。负向约束:不要抽取商务条款、交付要求、验收标准
- name: 技术目标
type: string
required_from: draft
desc: 技术目标:定性描述"做什么",即项目要达成的业务/功能目标。包括建设什么系统、实现什么功能。负向约束:不要抽取量化指标、商务条款、交付时间
- name: 技术指标
type: string
required_from: draft
desc: 技术指标:纯定量描述"做到什么程度"(必须有数字+单位)。包括并发用户数、响应时间、吞吐量、容量、准确率等。严禁抽取商务条款、交付条款、验收条款、服务条款
- name: 技术标准规范
type: string
required_from: draft
desc: 系统开发建设需遵循的技术标准、规范文件(编码规范、接口标准、安全标准、性能标准等)
- name: 质量标准
type: string
required_from: draft
desc: 质量要求、检验方法的描述
- group: 验收
fields:
- name: 验收标准
type: string
required_from: draft
desc: 功能验收、性能验收、安全验收等各项标准
- name: 验收流程
type: string
required_from: draft
desc: 验收组织方、参与方、步骤、期限
- name: 不合格处理
type: string
required_from: draft
desc: 验收不合格时的整改要求和处理方式
- group: 金额与支付
fields:
- name: 合同金额
type: money
required_from: draft
desc: 合同含税总金额(数字)
- name: 合同金额大写
type: verbatim
required_from: draft
desc: 合同含税总金额中文大写
- name: 不含税金额
type: money
required_from: draft
desc: 不含税金额
- name: 税率
type: string
required_from: draft
desc: 增值税税率(如6%、13%
- name: 税额
type: money
required_from: draft
desc: 增值税税额
- name: 付款方式
type: string
required_from: draft
desc: 付款方式(银行转账/现金等)及完整描述
- name: 付款条件
type: string
required_from: draft
desc: 付款阶段、比例、条件和期限的完整描述
- name: 附加标的物价款标准
type: string
required_from: draft
desc: 附加/额外服务的价款标准约定
- group: 期限与地点
fields:
- name: 合同起始日期
type: date
required_from: draft
desc: 合同有效期起始日期
- name: 合同终止日期
type: date
required_from: draft
desc: 合同有效期终止日期
- name: 合同期限描述
type: string
required_from: draft
desc: 合同期限的文字描述
- name: 履行地点
type: verbatim
required_from: draft
desc: 项目实施/服务提供的地点
- name: 实施计划
type: string
required_from: draft
desc: 实施阶段划分、里程碑节点、交付时间
- name: 交付物
type: string
required_from: draft
desc: 各阶段应交付的成果物清单
- group: 条款
fields:
- name: 知识产权条款
type: string
required_from: draft
desc: 知识产权归属、使用许可、后续改进的完整条款
- name: 技术风险条款
type: string
required_from: draft
desc: 技术风险分担方式、通知义务的约定
- name: 技术支持条款
type: string
required_from: draft
desc: 技术支持方式、响应时间、质保期约定
- name: 资料移交清单
type: string
required_from: draft
desc: 应移交的技术资料清单(文档、源代码、操作手册等)
- name: 违约责任条款
type: verbatim
required_from: draft
desc: 违约责任/违约条款的完整内容(原文逐字抽取,用于费用相关评查)
- name: 争议解决条款
type: string
required_from: draft
desc: 争议解决方式及管辖机构的完整描述
- name: 不可抗力条款
type: string
required_from: draft
desc: 不可抗力相关条款的完整内容
- name: 变更解除终止条款
type: string
required_from: draft
desc: 合同变更、解除、终止的条件和程序
- name: 保密条款
type: string
required_from: draft
desc: 保密义务相关条款内容(含正文及附件保密协议)
- name: 附件清单
type: string
required_from: draft
desc: 合同附件的列表(序号、名称、类型)
- name: 补充协议条款
type: string
required_from: draft
desc: 补充协议相关条款
rules:
- group: 默认规则组
rules:
- rule_id: JS-TECH-001
name: 合同基本信息完整
risk: high
score: 2
applies_in:
- executed
stages:
- id: '1'
check: required
field: 合同名称
- id: '2'
check: required
field: 合同编号
- id: '3'
check: required
field: 签约日期
logic: 1 AND 2 AND 3
messages:
pass: 合同名称、编号、签约日期齐全
fail: 合同名称、编号或签约日期缺失
- rule_id: JS-TECH-002
name: 合同名称合法有效
risk: medium
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查合同名称是否与合同内容一致。
合同名称:{{合同名称}}
合同标的描述:{{合同标的描述}}
评查要点(依据民法典第467条):
1. 合同名称必须与合同实际内容一致(如名为"采购合同"但实际为技术服务则不一致)
2. 符合民法典有名合同特征的,应当采用标准名称或不会使人误解的通称
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同名称与内容一致
fail: 合同名称与内容不一致
- rule_id: JS-TECH-003
name: 签约背景与法律依据
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: '请检查合同的签约背景和法律依据是否准确。
签约背景:{{签约背景}}
引用法律法规:{{引用法律法规}}
评查要点:
1. 签约背景或缘由是否存在(1分)
2. 合同依据的法律、法规必须准确、有效,不得引用已废止的法律(4分)
请以JSON格式回答:{"passed": true/false, "reason": "简要说明", "score": 0-5}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 签约背景存在且法律依据准确有效
fail: 签约背景缺失或法律依据存在问题
- rule_id: JS-TECH-004
name: 当事人信息准确完整
risk: high
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查合同各方当事人的信息是否准确完整。
甲方名称:{{甲方}},法定代表人:{{甲方法定代表人}},地址:{{甲方地址}},联系电话:{{甲方联系电话}}
乙方名称:{{乙方}},法定代表人:{{乙方法定代表人}},地址:{{乙方地址}},联系电话:{{乙方联系电话}}
评查要点(依据民法典第470条第1项):
1. 各方企业名称、法定代表人、地址、联系方式是否齐全
2. 各项信息在合同正文中是否前后一致
3. 如为自然人,应有姓名、身份证号、住址、联系电话
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 当事人信息完整一致
fail: 当事人信息不完整或不一致
- rule_id: JS-TECH-005
name: 合同主体合法有效
risk: high
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查该签署方的合同主体是否合法有效。
名称:{{甲方}}
签约代表:{{甲方法定代表人}}
授权委托信息:{{甲方授权委托信息}}
对方名称:{{乙方}}
签约代表:{{乙方法定代表人}}
授权委托信息:{{乙方授权委托信息}}
评查要点(依据民法典第143条、第171条):
1. 如为企业法人,签订期限应在经营期限内
2. 代理人签订合同的,应提供合法、有效、明确的授权书
3. 如为分支机构签订,应在法人授权范围内
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同主体合法有效
fail: 合同主体合法性存疑
- rule_id: JS-TECH-006
name: 合同主体资质合格
risk: high
score: 3
stages:
- id: '1'
check: ai
prompt: '请检查合同对方主体的资质是否合格。
对方名称:{{乙方}}
资质信息:{{乙方资质信息}}
服务类型:{{合同标的描述}}
评查要点(依据民法典第505条):
1. 对方提供的资质证明必须符合法律法规规章规定的相应等级
2. 从业人员必须具备相应资格,确保具有足够的履行合同能力
3. 技术合同中乙方应具备相应的技术开发/服务能力资质
注意:如合同标的不涉及特定资质要求,可直接PASS。
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同主体资质合格或不涉及特定资质
fail: 合同主体资质可能不合格
- rule_id: JS-TECH-007
name: 标的内容合法
risk: high
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查合同标的是否合法。
标的描述:{{合同标的描述}}
评查要点(依据民法典第153条、第154条):
1. 标的是否属于法律禁止交易的服务或内容
2. 是否涉及特殊行业许可要求
3. 合同标的是否违反法律禁止性规定或公序良俗
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同标的内容合法
fail: 合同标的合法性存疑
- rule_id: JS-TECH-008
name: 合同标的准确完整
risk: high
score: 10
stages:
- id: '1'
check: ai
prompt: '请检查技术合同的标的信息是否准确完整。
合同标的描述:{{合同标的描述}}
技术方案:{{技术方案}}
技术目标:{{技术目标}}
技术指标:{{技术指标}}
评查要点(依据民法典第470条第2项、第510条):
1. 合同标的描述:是否列出了具体的功能模块和服务范围(不能只有"详见招标文件"等含糊表述)
2. 技术方案:是否说明了如何实现(技术路线、架构、方法论),不能只有功能罗列
3. 技术目标:是否说明了要达成什么业务效果(建设什么系统、实现什么功能),定性描述
4. 技术指标:是否包含量化指标(性能参数、响应时间、并发数等),必须有具体数字
容错规则(重要):
- 如果"技术指标"中混入了商务条款(如付款、违约金、保证金、交货期、质保期等),这属于数据抽取问题,不应判定为"标的不完整"。请在 reason 中指出"技术指标字段混入了商务条款,但不影响标的完整性判定",并基于现有的性能参数部分进行判定。
- 只有当技术指标完全为空、或完全没有性能参数时,才判定为不完整。
请以JSON格式回答:{"passed": true/false, "reason": "简要说明(需指出哪个字段存在问题)"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 标的信息准确完整
fail: 标的信息不完整或过于模糊
- rule_id: JS-TECH-009
name: 技术标准与质量条款
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: '请检查技术合同中技术标准与质量条款的完整性和明确性。
技术规范:{{技术标准规范}}
质量标准:{{质量标准}}
评查要点(依据民法典第845条、第615-616条):
1. 是否引用了具体的技术规范文件(名称、编号、版本)
2. 是否引用了适用的国家标准(GB)、行业标准或国际标准(如GB/T 22239-2019、OGC标准等)
3. 标准引用是否完整(标准号、标准名称、版本年份)
4. 质量检验方法是否明确
5. 不能仅有"符合相关标准""按行业惯例"等含糊表述
6. 注意区分:"评查基础标准"等业务数据标准是系统处理的数据内容,不属于系统技术标准
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 技术标准引用明确,质量条款清晰
fail: 技术标准与质量条款不够明确
- rule_id: JS-TECH-010
name: 合同金额大小写一致
risk: high
score: 2
stages:
- id: '1'
check: amount_match
number: 合同金额
chinese: 合同金额大写
logic: '1'
messages:
pass: 合同金额大小写一致
fail: 合同金额数字与大写不一致
- rule_id: JS-TECH-011
name: 付款条款完整
risk: high
score: 3
stages:
- id: '1'
check: required
field: 付款方式
- id: '2'
check: required
field: 付款条件
logic: 1 AND 2
messages:
pass: 付款条款完整
fail: 付款方式或付款条件缺失
- rule_id: JS-TECH-012
name: 附加标的物价款标准
risk: low
score: 1
stages:
- id: '1'
check: ai
prompt: '请检查合同是否涉及附加、额外标的物,如涉及是否明确了价款标准。
合同标的描述:{{合同标的描述}}
附加标的物价款标准:{{附加标的物价款标准}}
评查要点(依据民法典第510条、第511条):
1. 如合同可能涉及额外工作量、附加服务,是否约定了价款标准
2. 如合同标的已全部明确且无附加项,可直接PASS
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 附加标的物价款已明确或不涉及
fail: 附加标的物价款标准缺失
- rule_id: JS-TECH-013
name: 银行账户信息完整
risk: medium
score: 2
applies_in:
- executed
stages:
- id: '1'
check: ai
prompt: '请检查合同各方(甲方和乙方)的银行账户信息是否完整。
甲方开户银行:{{甲方开户银行}}
甲方银行账号:{{甲方银行账号}}
乙方开户银行:{{乙方开户银行}}
乙方银行账号:{{乙方银行账号}}
判断规则:
第一步:判断该方是付款方还是收款方。甲方一般为付款方(委托方),不需要提供收款账号,直接PASS。
第二步:若该方是收款方(乙方/开发方/服务提供方),检查:
1. 开户银行不能为空
2. 银行账号不能为空
3. 银行账号应为数字,长度通常为16-20位
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 银行账户信息完整
fail: 收款方银行账户信息不完整
- rule_id: JS-TECH-014
name: 税务信息完整
risk: medium
score: 1
stages:
- id: '1'
check: required
field: 不含税金额
- id: '2'
check: required
field: 税率
- id: '3'
check: required
field: 税额
logic: 1 AND 2 AND 3
messages:
pass: 税务信息(不含税金额、税率、税额)完整
fail: 缺少不含税金额、税率或税额,可能存在编制疏漏
- rule_id: JS-TECH-015
name: 合同期限具体准确
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: "请检查合同期限是否具体准确。\n起始日期:{{合同起始日期}}\n终止日期:{{合同终止日期}}\n合同期限描述:{{合同期限描述}}\n签约日期:{{签约日期}}\n\n评查要点(依据民法典第470条、第511条):\n\
1. **起始日期判断优先级**:\n - 优先级1:如果\"合同起始日期\"有具体日期,则以该日期为准\n - 优先级2:如果\"合同起始日期\"为空,但有明确的\"签约日期\",通常签约日期即为合同生效起始日期,应视为明确\n\
\ - 优先级3:如果\"合同期限描述\"中说明\"自签约之日起\"\"自本合同签订之日起\"\"自双方签字盖章之日起\",则签约日期即为起始日期\n - 特殊情况:如果起始日期依赖于其他条件(如\"验收合格之日起\"\
),需说明该条件是否合理\n2. **合同期限完整性**:检查是否有明确的终止日期或合同期限(如1年、3年等)\n3. **日期格式**:起始/终止日期应为具体日期(年月日齐全),或可明确推算\n\n请以JSON格式回答:{\"\
passed\": true/false, \"reason\": \"简要说明(需说明起始日期如何确定)\"}\n"
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同期限明确
fail: 合同期限不明确
- rule_id: JS-TECH-016
name: 合同地点具体准确
risk: medium
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查合同中履行地点是否明确。
履行地点:{{履行地点}}
签约地点:{{签约地点}}
评查要点(依据民法典第470条、第511条):
1. 如合同涉及实施地点约定,地址是否具体
2. 技术合同的服务实施地点是重要履约要素,建议明确,如提及"甲方指定地点",可PASS
3. 如合同无须约定具体地址,可PASS
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同地点明确
fail: 合同地点不够具体
- rule_id: JS-TECH-017
name: 实施计划与里程碑完整
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: '请检查技术合同中实施计划与里程碑的完整性。
实施计划:{{实施计划}}
交付物:{{交付物}}
评查要点(依据民法典第845条、第853条):
1. 是否明确划分了实施阶段(需求分析、方案设计、开发实施、测试验收等)
2. 各阶段是否有明确的时间节点或里程碑
3. 各阶段是否明确了应交付的成果物
4. 总工期是否合理
5. 不能仅有"合同生效后XX个工作日内"的笼统描述
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 实施计划与里程碑约定完整
fail: 实施计划与里程碑约定不完整
- rule_id: JS-TECH-018
name: 技术验收标准完整
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: '请检查技术合同中验收标准条款的完整性。
验收标准:{{验收标准}}
验收流程:{{验收流程}}
不合格处理:{{不合格处理}}
评查要点(依据民法典第845条):
1. 验收标准是否明确(功能验收、性能验收、安全验收等各项标准)
2. 验收流程是否清晰(验收组织方、参与方、验收步骤、验收期限)
3. 是否约定了验收不合格时的整改要求和处理方式
4. 验收标准应与技术目标和技术指标相对应
5. 是否约定了分阶段验收还是整体验收
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 技术验收标准约定完整
fail: 技术验收标准约定不完整
- rule_id: JS-TECH-019
name: 知识产权归属明确
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: '请检查技术合同中知识产权归属条款的完整性。
知识产权条款:{{知识产权条款}}
评查要点(依据民法典第859-861条):
1. 是否明确约定技术成果(专利、软件著作权、技术秘密等)的归属
2. 是否区分了委托方和开发方各自的权利
3. 是否约定了技术成果使用许可的范围和方式
4. 是否约定了后续改进技术成果的分享办法
5. 对于软件开发类合同,应特别关注源代码、数据的归属
6. 民法典规定委托开发的专利申请权默认属于研发方,如需归委托方应明确约定
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 知识产权归属约定明确
fail: 知识产权归属约定不明确
- rule_id: JS-TECH-020
name: 技术风险分担
risk: medium
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查技术合同中技术风险分担条款。
技术风险条款:{{技术风险条款}}
评查要点(依据民法典第858条):
1. 是否约定了因技术困难导致研发失败或部分失败时的风险分担方式
2. 是否约定了研发过程中遇到技术困难时的通知义务和时限
3. 无约定时风险由当事人合理分担(民法典默认规则),建议明确约定
如合同未涉及技术风险分担条款,返回FAIL并说明建议补充。
如合同明确约定了相关条款,返回PASS。
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 技术风险分担约定明确
fail: 技术风险分担约定缺失,建议补充
- rule_id: JS-TECH-021
name: 技术支持与资料移交
risk: medium
score: 1
stages:
- id: '1'
check: ai
prompt: '请检查技术合同中技术支持与资料移交条款的完整性。
技术支持条款:{{技术支持条款}}
资料移交清单:{{资料移交清单}}
评查要点(依据民法典第853条、第880条):
1. 是否约定了技术支持的方式(现场、远程、电话等)和质保期
2. 是否约定了技术问题的响应时间和解决时限
3. 是否列明了应移交的技术资料清单(技术文档、操作手册、源代码等)
4. 技术资料的移交时间和方式是否明确
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 技术支持与资料移交条款完整
fail: 技术支持与资料移交条款不完整
- rule_id: JS-TECH-022
name: 违约责任形式明确
risk: high
score: 4
stages:
- id: '1'
check: required
field: 违约责任条款
- id: '2'
check: ai
prompt: '请检查违约责任条款是否明确。
违约条款:{{违约责任条款}}
合同金额:{{合同金额}}
评查要点(依据民法典第577条):
1. 区分合同各方主体分别的责任,并分别评查合法、合理性
2. 违约情形是否有约定(具体情形或通用条款均可,"双方违反本合同任何条款"属于有效约定)
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: 1 AND 2
messages:
pass: 违约责任条款完整
fail: 违约责任条款不完整
- rule_id: JS-TECH-023
name: 违约金条款完整性与合理性
risk: high
score: 6
stages:
- id: '1'
check: required
field: 违约责任条款
- id: '2'
check: ai
prompt: "请审查违约金条款的完整性与合理性。\n违约责任条款:{{违约责任条款}}\n合同金额:{{合同金额}}\n\n评查方法:\n1. 【主体识别】:识别合同中涉及的所有责任主体(如甲方、乙方、多方合同中的各方)\n2.\
\ 【情形拆分】:对每个主体,列出其所有违约情形(逾期、质量不合格、单方解除、转包等)\n3. 【条款分析】:对每个违约情形,抽取以下信息:\n - 违约金类型:日违约金/固定比例/赔偿损失/没收保证金/解除合同等\n \
\ - 计算方式:日违约金的每日标准、固定比例的百分比、赔偿的计算依据\n - 上限约束:是否有最高限额(如\"不超过XX%\"、\"最高XX元\"\n - 累计条件:注意\"直至XX为止\"\"持续计算\"\"按日累计\"\
等可能无上限的表述\n4. 【合理性评估】(依据民法典第585条):\n - **上限优先原则**:如果违约金条款明确规定了金额上限(如\"不超过XX%\"、\"最高XX元\"),应以上限为准进行判定,不再计算年化率是否过高\n\
\ - 日违约金年化:仅对无上限条款时参考,每日1‰≈36.5%/年,每日5‰≈182.5%/年\n - 累计上限:有上限的合理,无上限的需评估长期累计风险\n - 固定比例:一般不超过合同总额的30%\n -\
\ 责任对等:对比各方违约责任,是否存在显失公平\n5. 该方权益是否有基本保护(如对方违约时自己能获得的补偿)\n\n评查要点:\n✓ 完整性:各方的主要违约情形是否都有约定,不得缺失某方的责任条款\n✓ 明确性:违约金标准是否可计算,不得使用\"\
另行协商\"\"按法律规定\"等模糊表述\n✓ 合理性:违约金是否过高或过低,日违约金需考虑累计风险\n✓ 对等性:各方违约责任是否基本对等,不得一方极重一方极轻\n✓ 上限保护:日违约金条款是否有合理上限,无上限的需特别注明风险\n\
\n请以JSON格式回答:{\"passed\": true/false, \"reason\": \"按主体分项说明:哪些合理、哪些不合理及具体原因\"}\n\nuncertainty_handling:\n如合同原文表述模糊、信息缺失或存在歧义:\n\
- 不要自行推断或补充内容\n- 在 reason 中明确标注\"原文未明确提及/表述模糊\"\n- passed 返回 false,并给出\"建议补充/明确...\"的实操建议\n"
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: 1 AND 2
messages:
pass: 违约金条款完整且合理
fail: 违约金条款不完整或不合理
- rule_id: JS-TECH-024
name: 争议解决方式明确
risk: high
score: 5
stages:
- id: '1'
check: required
field: 争议解决条款
- id: '2'
check: ai
prompt: '请检查合同争议解决条款。
争议解决条款:{{争议解决条款}}
甲方地址:{{甲方地址}}
乙方地址:{{乙方地址}}
履行地点:{{履行地点}}
请分两步审查争议解决条款:
【第一步:形式审查】
- 是否明确选择诉讼或仲裁其中一种?
- 是否出现"或仲裁/或诉讼"等并列表述?
→ 若形式不通过,直接返回 {"passed": false, "reason": "形式违规:..."}
【第二步:实质审查(仅当形式通过时执行)】
- 提取约定的管辖法院/仲裁机构所在地:{{管辖地点}}
- 提取关联地点:甲方住所地{{甲方地址}}、乙方住所地{{乙方地址}}、合同履行地{{履行地点}}
- 依据《民事诉讼法》第35条,判断{{管辖地点}}是否与上述任一地点存在实际联系
→ 若无实际联系,返回 {"passed": false, "reason": "管辖约定可能因违反民诉法第35条而无效,建议修改为..."}
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: 1 AND 2
messages:
pass: 争议解决方式明确
fail: 争议解决方式约定不当
- rule_id: JS-TECH-025
name: 不可抗力条款存在
risk: medium
score: 1
stages:
- id: '1'
check: required
field: 不可抗力条款
logic: '1'
messages:
pass: 不可抗力条款存在
fail: 缺少不可抗力条款
- rule_id: JS-TECH-026
name: 变更解除终止条款完整
risk: high
score: 4
stages:
- id: '1'
check: ai
prompt: '请检查合同变更、解除、终止条款是否完整并保障甲方(委托方)权益。
变更解除终止条款:{{变更解除终止条款}}
评查要点(依据民法典第543条、第562条、第563条):
1. 合同变更条件和程序是否明确
2. 解除或终止条件是否明确,通知期限是否约定
3. 对方违约时甲方是否有足够的救济手段(解除合同、要求赔偿等)
4. 终止条款是否对甲方不利(如对方可随意终止而甲方不能)
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
uncertainty_handling:
如合同原文表述模糊、信息缺失或存在歧义:
- 不要自行推断或补充内容
- 在 reason 中明确标注"原文未明确提及/表述模糊"
- passed 返回 false,并给出"建议补充/明确..."的实操建议
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 变更解除终止条款完整
fail: 变更解除终止条款不完整或不利于己方
- rule_id: JS-TECH-027
name: 生效条件明确
risk: medium
score: 3
stages:
- id: '1'
check: required
field: 合同份数
- id: '2'
check: required
field: 生效条件
logic: 1 AND 2
messages:
pass: 合同份数和生效条件明确
fail: 缺少合同份数或生效条件
- rule_id: JS-TECH-028
name: 保密条款存在
risk: medium
score: 4
stages:
- id: '1'
check: required
field: 保密条款
logic: '1'
messages:
pass: 保密条款存在
fail: 缺少保密条款
- rule_id: JS-TECH-029
name: 附件条款完整
risk: low
score: 2
stages:
- id: '1'
check: ai
prompt: "请检查合同附件条款是否完整。\n附件清单:{{附件清单}}\n\n评查方法:\n1. 首先判断\"附件清单\"字段是否有值:\n - 如果为空或null,说明合同未列明附件\n - 如果有值(如\"1.廉洁合同;2.保密协议\"\
),说明合同已列明附件\n2. 检查附件清单的完整性:\n - 是否有编号(如1.、2.、附件一、附件二)\n - 是否有附件名称\n - 常见附件如廉洁合同、保密协议是否列入\n3. 判断标准:\n - 附件清单有值且包含编号和名称\
\ → PASS(合同已列明附件)\n - 附件清单为空但合同实际有附件 → FAIL(未列明)\n - 合同明确无附件 → PASS\n\n请以JSON格式回答:{\"passed\": true/false, \"\
reason\": \"简要说明\"}\n"
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 附件条款完整或无附件
fail: 附件条款不完整
- rule_id: JS-TECH-030
name: 补充协议条款完整
risk: medium
score: 2
stages:
- id: '1'
check: ai
prompt: '请检查合同中是否涉及补充协议条款。
补充协议条款:{{补充协议条款}}
评查要点:
1. 如合同包含补充协议或变更协议,应具有协议编号、原合同编号、生效日期
2. 如合同不涉及补充协议,直接PASS
3. 补充协议应有与原合同的冲突解决条款
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 补充协议条款完整或无补充协议
fail: 补充协议条款不完整
- rule_id: JS-TECH-032
name: 骑缝章检查
risk: medium
score: 2
applies_in:
- executed
stages:
- id: '1'
check: visual
element: 骑缝章
logic: '1'
messages:
pass: 已加盖骑缝章
fail: 未检测到骑缝章
- rule_id: JS-TECH-033
name: 签署信息完整
risk: high
score: 2
applies_in:
- executed
stages:
- id: '1'
check: ai
prompt: '请检查合同各签署方的签署信息是否完整。
甲方:{{甲方}},法定代表人:{{甲方法定代表人}}
乙方:{{乙方}},法定代表人:{{乙方法定代表人}}
签约日期:{{签约日期}}
评查标准(依据民法典第490条):
1. 各方是否有签名或盖章(至少一项)
2. 签署日期应有具体日期
请以JSON格式回答:{"passed": true/false, "reason": "简要说明"}
'
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 签署信息完整
fail: 签署信息不完整
- rule_id: JS-TECH-034
name: 签署权限审查
risk: high
score: 2
stages:
- id: '1'
check: ai
prompt: "请检查合同签署人的权限是否完整。\n授权信息:{{甲方授权委托信息}}\n签约日期:{{签约日期}}\n\n评查要点(依据民法典第61条、第170条):\n1. 如为法人本人签署(法定代表人),授权信息应包含法人姓名、职务\n\
2. 如为非法人签署(代理人),授权信息必须包含:\n - 签署人姓名\n - 签署人职位/职务\n - 权限来源(法定代表人授权书、董事会决议、股东会决议等)\n - 授权范围(有权签署何种类型的合同、金额上限等)\n\
\n判定标准:\n- 法人本人签署:有姓名、职务即可通过\n- 非法人签署:必须包含职位、权限来源、授权范围,否则不通过\n- 草稿阶段授权信息为空时,判定为不通过(提醒补充)\n\n请以JSON格式回答:{\"passed\"\
: true/false, \"reason\": \"签署人授权信息不完整,缺少职位/权限来源/授权范围\"}\n\nuncertainty_handling:\n如合同原文表述模糊、信息缺失或存在歧义:\n- 不要自行推断或补充内容\n\
- 在 reason 中明确标注\"原文未明确提及/表述模糊\"\n- passed 返回 false,并给出\"建议补充/明确...\"的实操建议\n"
schema:
type: object
required:
- passed
- reason
properties:
passed:
type: boolean
reason:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 合同金额在授权范围内或已报上级审查
fail: 合同可能超出授权范围
- rule_id: JS-TECH-035
name: 我方缔约地位及不利条款审查
risk: high
score: 10
stages:
- id: '1'
check: ai
field: ctx
prompt: |-
请基于合同全文判断我方(中国烟草相关公司/专卖局)在本合同中的缔约地位,并审查是否存在强势条款或不利于我方的条款。
合同全文字段来源:ctx。该字段由后端负责注入和匹配。
合同全文:{{ctx}}
评查步骤:
1. 识别合同中是否存在中国烟草相关主体,包括但不限于“中国烟草”“烟草公司”“烟草专卖局”“中烟”“卷烟厂”“烟草工业”“烟草商业”等名称或其分支机构。
2. 判断该主体是我方,并识别我方在合同中的地位:甲方、乙方、发包人、承包人、委托方、受托方、出租方、承租方、出借人、借款人、赠与方、受赠方或其他。
3. 从合同全文审查是否存在明显偏向对方、加重我方责任、限制我方权利、降低对方责任、增加我方付款/赔偿/解除限制/验收风险/知识产权风险/保密风险/争议解决不利风险的条款。
4. 若无法识别我方主体或我方地位,应返回无法判断,并说明原因,不得臆测。
强势或不利条款示例:
- 对方可单方变更、解除、延期履行,而我方缺少对应权利。
- 我方承担高额违约金、无限责任、连带责任或无上限赔偿,对方责任明显较轻。
- 付款条件、验收、交付、质量、质保、知识产权、保密、争议解决、管辖地等安排明显不利于我方。
- 排除或限制我方依法解除、抗辩、追偿、索赔、验收异议或审计监督权利。
请以JSON格式回答:{"passed": true/false, "our_party": "我方主体名称或无法判断", "our_position": "甲方/乙方/发包人/承包人/委托方/受托方/出租方/承租方/出借人/借款人/赠与方/受赠方/其他/无法判断", "has_strong_terms": true/false, "has_unfavorable_terms": true/false, "risk_terms": ["风险条款摘要"], "reason": "判断理由", "suggestion": "修改建议"}
schema:
type: object
required:
- passed
- our_party
- our_position
- has_strong_terms
- has_unfavorable_terms
- reason
properties:
passed:
type: boolean
our_party:
type: string
our_position:
type: string
has_strong_terms:
type: boolean
has_unfavorable_terms:
type: boolean
risk_terms:
type: array
reason:
type: string
suggestion:
type: string
pass_when: passed == True
logic: '1'
messages:
pass: 未发现明显强势条款或不利于我方的条款
fail: 存在强势条款、不利于我方的条款或无法判断我方缔约地位
type: ai_rule