Skill: dashiming/pans-contract-generator (version 1.0.0)

--- name: pans-contract-generator description: | AI算力销售合同生成器。根据商定条款（客户名称、GPU型号、数量、价格、期限） 生成标准 GPU 租赁协议 Markdown 草案。内置服务范围、价格条款、SLA、 数据安全、违约责任、知识产权、保密条款、争议解决等关键条款模板。 触发词：合同生成, 销售合同, GPU租赁协议, 框架协议, POC协议, 补充协议, contract generator, SLA条款, 合同草案 --- # pans-contract-generator AI算力销售合同生成器。根据商定条款生成标准GPU租赁协议。 内置关键条款模板（服务范围、价格条款、SLA、数据安全、违约责任、知识产权、保密条款、争议解决）， 支持CLI参数快速生成和预览，输出Markdown格式合同草案。 ## 触发词 合同生成, 销售合同, GPU租赁协议, 框架协议, POC协议, 补充协议, contract generator, SLA条款 ## 使用方式 ```bash python3 scripts/contract.py \ --client "客户公司名称" \ --gpu H100 \ --count 8 \ --price 2.0 \ --duration 12 \ --output contract.md ``` ## 参数说明 | 参数 | 必填 | 说明 | |------|------|------| | --client | 是 | 客户公司名称 | | --gpu | 是 | GPU型号（H100/A100/L40S/A10G等） | | --count | 是 | GPU数量 | | --price | 是 | 单卡月租价格（万元） | | --duration | 是 | 租赁期限（月） | | --output | 否 | 输出文件路径，默认输出到stdout | ## 输出内容 生成的合同包含以下章节： 1. 合同基本信息 2. 服务范围 3. 价格与付款条款 4. 服务等级协议（SLA） 5. 数据安全与隐私保护 6. 知识产权 7. 保密条款 8. 违约责任 9. 合同期限与终止 10. 争议解决 11. 其他条款

path: references/templates/standard_gpu_lease.md
content: # 标准GPU算力租赁服务协议（模板）

> 本模板为标准GPU算力租赁协议框架，由脚本自动填充关键业务参数。

## 第一条 合同双方

- **甲方（服务方）**：[服务方公司名称]（以下简称"甲方"）
- **乙方（客户方）**：{{CLIENT}}（以下简称"乙方"）

## 第二条 服务范围

### 2.1 算力资源
甲方为乙方提供以下GPU算力资源：

- **GPU型号**：{{GPU}}
- **GPU数量**：{{COUNT}} 张
- **总算力规模**：{{TOTAL_FLOPS}}（预估）

### 2.2 部署区域
- **机房位置**：[待确认]
- **网络带宽**：[待确认] Gbps
- **内网延迟**：≤1ms（同可用区）

### 2.3 附属服务
- 操作系统镜像安装与维护
- 基础网络配置与安全组管理
- 7×24小时技术支持
- GPU监控与告警服务

## 第三条 服务期限

- **服务起始日**：{{START_DATE}}
- **服务终止日**：{{END_DATE}}
- **总服务期限**：{{DURATION}} 个月

## 第四条 费用与支付

### 4.1 服务费用
| 项目 | 规格 | 单价 | 数量 | 月费用 |
|------|------|------|------|--------|
| GPU租赁 | {{GPU}} | {{PRICE}}万元/卡/月 | {{COUNT}}张 | {{MONTHLY_COST}}万元 |
| 网络带宽 | [待确认] | [待确认] | [待确认] | [待确认] |
| **月费用合计** | | | | **{{MONTHLY_COST}}万元** |

### 4.2 合同总金额
- 月服务费：{{MONTHLY_COST}}万元
- 服务期限：{{DURATION}}个月
- **合同总金额**：{{TOTAL_COST}}万元（大写：人民币{{TOTAL_COST_CN}}）

### 4.3 付款方式
- **计费周期**：自然月
- **付款方式**：银行转账
- **付款周期**：每月[5]日前支付上月服务费
- **首期付款**：合同签署后[5]个工作日内支付首月服务费

## 第五条 SLA服务等级协议

### 5.1 可用性承诺
- **SLA等级**：99.9%
- **计算方式**：（总时间 - 故障时间）/ 总时间 × 100%
- **故障定义**：单次持续超过[5]分钟的不可用事件

### 5.2 网络性能
- **同区域延迟**：≤1ms
- **跨区域延迟**：≤5ms
- **带宽保障**：不低于承诺带宽的[90%]

### 5.3 故障响应
| 故障等级 | 响应时间 | 解决时间 |
|----------|----------|----------|
| P0（完全不可用） | 15分钟 | 2小时 |
| P1（部分不可用） | 30分钟 | 4小时 |
| P2（性能降级） | 2小时 | 8小时 |
| P3（一般问题） | 4小时 | 24小时 |

### 5.4 SLA未达标赔偿
- 可用性低于99.9%但高于99.0%：赔偿当月服务费的[10%]
- 可用性低于99.0%但高于95.0%：赔偿当月服务费的[30%]
- 可用性低于95.0%：乙方有权终止合同

## 第六条 数据安全

### 6.1 合规认证
- 甲方通过ISO 27001信息安全管理体系认证
- 甲方通过等保三级备案 [待确认]
- 机房通过ISO 20000 IT服务管理体系认证

### 6.2 数据隔离
- 乙方数据存储在独立存储卷
- 网络层面采用VPC隔离
- 计算资源为乙方独占（Dedicated Instance）

### 6.3 数据保护
- 数据传输采用TLS 1.3加密
- 数据存储采用AES-256加密
- 乙方数据不用于甲方任何目的

### 6.4 数据擦除
- 服务终止后[30]日内完成数据擦除
- 擦除标准：DoD 5220.22-M
- 擦除完成后提供书面确认

## 第七条 违约责任

### 7.1 甲方违约
- 未经乙方同意中断服务：赔偿当月服务费的[100%]
- 泄露乙方数据：赔偿直接损失及合理维权费用，赔偿上限为合同总金额的[200%]
- SLA连续[3]个月未达标：乙方有权无责终止合同

### 7.2 乙方违约
- 逾期付款：每日按应付金额的[0.05%]支付违约金
- 逾期超过[30]日：甲方有权暂停服务
- 逾期超过[60]日：甲方有权终止合同

### 7.3 赔偿上限
- 除数据泄露外，甲方赔偿上限为合同总金额的[100%]
- 任何情况下不承担间接损失、预期利润损失

## 第八条 知识产权

### 8.1 各方知识产权
- 甲方平台软件、管理系统的知识产权归甲方所有
- 乙方在甲方平台上运行的模型、算法、数据的知识产权归乙方所有

### 8.2 知识产权不转移
- 本协议不构成任何知识产权的转让
- 甲方不会接触、复制、使用乙方的模型和数据

### 8.3 侵权担保
- 甲方保证平台软件不侵犯第三方知识产权
- 乙方保证其使用不侵犯第三方知识产权

## 第九条 保密条款

### 9.1 保密范围
- 本协议内容及价格信息
- 双方在合作中知悉的商业秘密
- 乙方在平台上处理的所有数据

### 9.2 保密期限
- 协议有效期内及协议终止后[3]年

### 9.3 保密例外
- 已公开的信息
- 经对方书面同意披露的信息
- 法律法规或监管要求必须披露的信息

## 第十条 争议解决

### 10.1 友好协商
- 因本协议引起的争议，双方应首先友好协商解决

### 10.2 调解
- 协商不成的，可提交[北京]仲裁委员会调解

### 10.3 仲裁
- 调解不成的，提交[北京]仲裁委员会仲裁
- 仲裁裁决为终局裁决，对双方有约束力
- 仲裁费用由败诉方承担

## 第十一条 其他条款

### 11.1 协议变更
- 本协议的变更须经双方书面同意

### 11.2 不可抗力
- 因不可抗力导致服务中断的，双方不承担违约责任
- 不可抗力包括但不限于：自然灾害、政府行为、网络攻击等

### 11.3 通知方式
- 书面通知送达双方指定联系人
- 电子邮件通知视为有效送达

### 11.4 协议份数
- 本协议一式[四]份，甲乙双方各执[两]份

---

**签署页**

甲方（盖章）：________________
法定代表人/授权代表：________________
签署日期：________________

乙方（盖章）：________________
法定代表人/授权代表：________________
签署日期：________________


path: scripts/contract.py
content: #!/usr/bin/env python3
"""GPU租赁协议合同生成器

生成标准GPU租赁协议，包含完整法律条款。
输出Markdown格式。
"""

import argparse
import sys
from datetime import datetime, timedelta


def generate_contract(client: str, gpu: str, count: int, price: float, duration: int) -> str:
    """生成GPU租赁协议Markdown文本"""

    today = datetime.now()
    end_date = today + timedelta(days=duration * 30)
    total_monthly = price * count
    total_contract = total_monthly * duration

    contract = f"""# GPU算力租赁服务协议

**合同编号：** GPU-{today.strftime("%Y%m%d")}-{hash(client) % 10000:04d}

**签订日期：** {today.strftime("%Y年%m月%d日")}

---

## 协议双方

**甲方（出租方）：** 算力服务提供商

**乙方（承租方）：** {client}

---

## 第一条 服务范围

1.1 甲方向乙方提供以下GPU算力租赁服务：

| 项目 | 规格 |
|------|------|
| GPU型号 | {gpu} |
| GPU数量 | {count} 张 |
| 租赁期限 | {duration} 个月（{today.strftime("%Y年%m月%d日")} 至 {end_date.strftime("%Y年%m月%d日")}） |
| 月租总价 | ¥{total_monthly:.2f} 万元 |

1.2 服务内容包括：
- GPU服务器托管及运行维护
- 7×24小时基础设施保障
- 网络接入及带宽保障
- 电力供应及温控保障
- 基础运维监控及告警

1.3 甲方保证提供的GPU设备均为正品行货，性能指标符合官方规格。

---

## 第二条 价格与付款条款

2.1 **收费标准：**

| 费用项 | 单价 | 数量 | 月费 |
|--------|------|------|------|
| {gpu} GPU租赁 | ¥{price:.2f} 万元/卡/月 | {count} 卡 | ¥{total_monthly:.2f} 万元 |

2.2 **合同总金额：** ¥{total_contract:.2f} 万元

2.3 **付款方式：**
- 按月预付，每月5日前支付当月费用
- 首期款项于合同生效后5个工作日内支付
- 逾期付款按日加收0.05%滞纳金

2.4 **价格调整：**
- 合同期内价格锁定，不受市场波动影响
- 合同续签时，按届时市场价重新协商

2.5 **发票：** 甲方在收到付款后10个工作日内开具增值税专用发票。

---

## 第三条 服务等级协议（SLA）

3.1 **可用性承诺：** GPU服务月可用率不低于99.9%（每月不可用时间≤43.8分钟）。

3.2 **故障响应：**

| 故障等级 | 响应时间 | 恢复时间 |
|----------|----------|----------|
| P0-完全不可用 | ≤15分钟 | ≤4小时 |
| P1-部分功能降级 | ≤30分钟 | ≤8小时 |
| P2-性能下降 | ≤2小时 | ≤24小时 |
| P3-咨询与建议 | ≤4小时 | ≤48小时 |

3.3 **SLA违约赔偿：**
- 月可用率99.9%~99.0%：赔偿月费的10%
- 月可用率99.0%~95.0%：赔偿月费的30%
- 月可用率低于95.0%：赔偿月费的50%
- 连续3个月未达SLA标准，乙方有权无责解约

3.4 以下情况不计入不可用时间：
- 计划内维护（提前48小时通知，每月不超过4小时）
- 乙方自主操作导致的故障
- 不可抗力事件

---

## 第四条 数据安全与隐私保护

4.1 甲方承诺采取合理的技术和管理措施保护乙方数据安全，包括但不限于：
- 数据传输加密（TLS 1.2+）
- 存储数据加密（AES-256）
- 网络隔离（VPC / 专属子网）
- 访问控制与审计日志

4.2 乙方对其数据享有完全的所有权和控制权。甲方不得访问、使用、复制或向第三方披露乙方数据，除非：
- 获得乙方书面授权
- 法律法规要求
- 紧急情况下的必要措施

4.3 数据留存与销毁：
- 合同期内，甲方持续保管乙方数据
- 合同终止后30日内，甲方应彻底销毁乙方所有数据
- 应乙方要求，提供数据销毁证明

4.4 安全事件通知：甲方在发现安全事件后24小时内通知乙方，并配合调查和补救。

---

## 第五条 知识产权

5.1 乙方在使用GPU算力过程中产生的所有成果（包括但不限于模型、数据、算法、软件）的知识产权归乙方所有。

5.2 甲方提供的平台软件、工具和管理系统的知识产权归甲方所有。

5.3 任何一方不得侵犯对方的知识产权。

---

## 第六条 保密条款

6.1 双方对在合作过程中获知的对方商业秘密、技术秘密及其他保密信息负有保密义务。

6.2 保密期限：合同期内及合同终止后3年。

6.3 保密信息不包括：
- 已公开或非因接收方过错变为公开的信息
- 接收方在披露前已合法拥有的信息
- 接收方从无保密义务的第三方合法获取的信息

6.4 违反保密义务的一方应赔偿对方因此遭受的全部损失。

---

## 第七条 违约责任

7.1 **甲方违约：**
- 未按约定提供GPU服务，按实际中断时间等比例退还费用
- 未达SLA标准，按第三条约定赔偿
- 擅自终止服务，退还剩余费用并支付等额1个月租金作为违约金

7.2 **乙方违约：**
- 逾期付款超过15日，甲方有权暂停服务
- 逾期付款超过30日，甲方有权终止合同并要求支付欠款及违约金
- 擅自转租或超范围使用，甲方有权终止合同

7.3 **不可抗力：** 因不可抗力导致无法履行合同的，受影响方应在48小时内通知对方，双方协商解决，均不承担违约责任。

---

## 第八条 合同期限与终止

8.1 本合同自双方签字盖章之日起生效，有效期{duration}个月。

8.2 终止条件：
- 合同期满自然终止
- 双方协商一致提前终止
- 一方严重违约，守约方书面通知终止
- 乙方连续3个月SLA不达标，乙方有权终止

8.3 合同终止后的处理：
- 甲方在30日内退还乙方预付但未使用的费用（扣除已发生费用）
- 乙方在15日内完成数据迁移
- 甲方在30日内销毁乙方全部数据

8.4 续签：任何一方有意续签，应在合同到期前30日书面通知对方。

---

## 第九条 争议解决

9.1 本协议的订立、效力、解释、履行及争议解决均适用中华人民共和国法律。

9.2 因本协议引起的争议，双方应首先通过友好协商解决。

9.3 协商不成的，任何一方均可向甲方所在地有管辖权的人民法院提起诉讼。

---

## 第十条 其他条款

10.1 本协议一式两份，双方各执一份，具有同等法律效力。

10.2 本协议未尽事宜，双方可另行签订补充协议。补充协议与本协议具有同等法律效力。

10.3 本协议的任何修改须经双方书面确认。

10.4 本协议附件为本协议不可分割的组成部分。

---

**甲方（盖章）：** ____________________　　　**乙方（盖章）：** ____________________

**授权代表：** ____________________　　　　**授权代表：** ____________________

**日期：** {today.strftime("%Y年%m月%d日")}　　　　　　　**日期：** {today.strftime("%Y年%m月%d日")}
"""

    return contract


def main():
    parser = argparse.ArgumentParser(description="GPU租赁协议合同生成器")
    parser.add_argument("--client", required=True, help="客户公司名称")
    parser.add_argument("--gpu", required=True, help="GPU型号（如H100/A100/L40S等）")
    parser.add_argument("--count", type=int, required=True, help="GPU数量")
    parser.add_argument("--price", type=float, required=True, help="单卡月租价格（万元）")
    parser.add_argument("--duration", type=int, required=True, help="租赁期限（月）")
    parser.add_argument("--output", help="输出文件路径（默认stdout）")

    args = parser.parse_args()

    # 参数校验
    if args.count <= 0:
        print("错误：GPU数量必须大于0", file=sys.stderr)
        sys.exit(1)
    if args.price <= 0:
        print("错误：价格必须大于0", file=sys.stderr)
        sys.exit(1)
    if args.duration <= 0:
        print("错误：租赁期限必须大于0", file=sys.stderr)
        sys.exit(1)

    contract = generate_contract(
        client=args.client,
        gpu=args.gpu,
        count=args.count,
        price=args.price,
        duration=args.duration,
    )

    if args.output:
        with open(args.output, "w", encoding="utf-8") as f:
            f.write(contract)
        print(f"合同已生成：{args.output}", file=sys.stderr)
    else:
        print(contract)


if __name__ == "__main__":
    main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)