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
