用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/CSlawyer1985/legal-skillhub --skill data-contract-skill命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | data-contract-skill |
| version | 1.1.0 |
| description | 多轮对话交互式填写国家数据局合同模板(支持4种合同类型),自动路由识别合同类型,生成清洁版 .docx 合同 |
本 Skill 用于通过多轮自然语言对话,逐步收集用户提供的合同信息,填写国家数据局发布的4种示范合同模板,最终生成排版完整的 .docx 成品文件。
| 编号 | 合同名称 | 编码 | 占位符数量 | 分组数 |
|---|---|---|---|---|
| 1 | 数据提供合同 | GF-2025-2615 | 189 | 14 |
| 2 | 数据委托处理服务合同 | GF-2025-2616 | 137 | 13 |
| 3 | 数据融合开发合同 | GF-2025-2617 | 224 | 16 |
| 4 | 数据中介服务合同 | GF-2025-2618 | 156 | 12 |
用户发起请求
│
▼
┌─────────────────────────────────────┐
│ 1. 合同类型识别(自动路由) │
│ 规则匹配(关键词 / 合同编号) │
│ 歧义或无匹配时: │
│ → 由你(Skill 模型)语义判别 │
│ → 仍不确定则追问用户 │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 2. 初始化:加载模板配置 │
│ python scripts/init_contract.py │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 3. 多轮对话收集信息 │
│ 按分组优先级逐轮提问 │
│ 智能推断、别名联动 │
│ python scripts/update_state.py │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 4. 生成最终合同 │
│ python scripts/fill_contract.py │
└─────────────────────────────────────┘
当用户发起请求时,首先识别合同类型。
init_contract.py --intent 会先用关键词 / 合同编号 / 合同全名做规则匹配。
| 合同类型 | 典型关键词示例 |
|---|---|
| 数据提供合同 | "数据提供"、"卖数据"、"数据交易" |
| 数据委托处理服务合同 | "委托处理"、"数据加工"、"数据清洗"、"数据标注" |
| 数据融合开发合同 | "融合开发"、"多方合作"、"联合开发" |
| 数据中介服务合同 | "中介服务"、"撮合交易"、"交易平台" |
用户也可直接说合同编号(如 GF-2025-2616)或英文编码(weituo)。
当规则匹配结果 歧义 或 无匹配 时,init_contract.py 会输出一段 【给 Skill 模型的语义路由提示】。你需要:
tigong / weituo / ronghe / zhongjie)--type 参数重新调用 init_contract.py我无法确定您需要哪种合同类型。请告诉我您的具体场景:
📋 支持的合同类型:
1. 数据提供合同(GF-2025-2615)— 一方向另一方提供数据
2. 数据委托处理服务合同(GF-2025-2616)— 委托方交给受托方处理数据
3. 数据融合开发合同(GF-2025-2617)— 多方共同参与数据融合开发
4. 数据中介服务合同(GF-2025-2618)— 中介方提供数据交易撮合服务
请描述您的数据交易场景,或直接告诉我需要哪种合同。
# 根据用户意图自动识别类型
python <skill_dir>/scripts/init_contract.py --intent "帮我填数据提供合同" --state "./contract_state.json"
# 或明确指定类型
python <skill_dir>/scripts/init_contract.py --type tigong --state "./contract_state.json"
类型参数值:tigong / weituo / ronghe / zhongjie
初始化成功后会输出分组概览和占位符总数。请记住这个总数,后续用于进度播报。
所有字段必填
复选框字段(以 ☐ 开头的占位符)
"☑" 或 "是""☐" 或 "否"{"☐甲方_统一社会信用代码": "☑", "☐甲方_居民身份证": "☐"}true/false,必须用字符串字段名必须精确匹配模板中的名称
甲方_证件号码)不能写成 甲方证件号码--show 查看标准字段名update_state.py 有模糊匹配提示:写错时会给出建议别名联动
甲方名称 会自动联动填充 封面_甲方名称、签署_甲方 等签订年 会自动联动 签署_甲方年、签署_乙方年智能推断
# 单个字段
python <skill_dir>/scripts/update_state.py --state "./contract_state.json" --field "甲方名称" --value "北京数据科技有限公司"
# 批量更新(推荐,减少调用次数)
python <skill_dir>/scripts/update_state.py --state "./contract_state.json" --json '{"甲方名称": "北京数据科技有限公司", "乙方名称": "上海智能技术有限公司"}'
# 查看当前进度和未填字段
python <skill_dir>/scripts/update_state.py --state "./contract_state.json" --show
每轮开始(当前分组有未填字段时):
📋 {合同名称} 填写进度:已填 {filled}/{total} 项({percentage}%)
接下来需要了解 **{当前分组名称}** 的信息:
{分组的ask提示}
请直接用自然语言描述,我会自动提取信息。
每轮结束(分组完成):
✅ 已提取以下信息:
- 甲方名称:北京数据科技有限公司
- 甲方证件类型:统一社会信用代码 ☑
...
📋 当前分组已全部填写完成!还有 {remaining} 项未填写,继续下一部分。
每轮结束(分组未完成,需追问):
✅ 已提取以下信息:
- 甲方名称:北京数据科技有限公司
...
⚠️ 当前分组还有以下字段未填写:
- 甲方_证件号码
- 甲方_注册地址
请继续提供以上信息。
# 先检查是否全部填完
python <skill_dir>/scripts/fill_contract.py --state "./contract_state.json" --output "out.docx" --check
# 全部填完后生成
python <skill_dir>/scripts/fill_contract.py --state "./contract_state.json" --output "./数据提供合同_成品.docx"
# 用户明确要求强制生成(未填字段留空)
python <skill_dir>/scripts/fill_contract.py --state "./contract_state.json" --output "out.docx" --force
| 场景 | 处理方式 |
|---|---|
update_state 报 "无法识别的字段名" | 根据提示的建议字段名修正后重试 |
init_contract 报 "模板占位符与配置字段不一致" | 说明模板或配置损坏,提示用户重新安装 Skill |
fill_contract 报 "仍有 N 个字段必须填写" | 继续多轮对话收集,不要用 --force 除非用户明确要求 |
用户给了布尔值 true/false 到文本字段 | 追问用户提供实际文本值 |
| 复选框字段为空 | 追问用户选择 "选中" 还是 "不选" |
data-contract-skill/
├── SKILL.md # 本文件(AI Agent 使用说明)
├── README.md # 人类用户使用说明
├── contracts/ # 合同配置和模板
│ ├── __init__.py
│ ├── router.py # 合同类型路由器
│ ├── base_config.py # 共享工具(进度/校验/金额转换)
│ ├── tigong/ # 数据提供合同
│ │ ├── config.py # 占位符分组、别名配置
│ │ └── template.docx # DOCX 模板文件
│ ├── weituo/ # 数据委托处理服务合同
│ ├── ronghe/ # 数据融合开发合同
│ └── zhongjie/ # 数据中介服务合同
├── scripts/
│ ├── init_contract.py # 初始化合同状态
│ ├── update_state.py # 更新字段值
│ └── fill_contract.py # 生成最终合同
└── examples/
└── sample_state.json # 示例状态文件
python-docx:pip install python-docx用户:帮我填一个数据提供合同
AI:
🔍 识别到合同类型:数据提供合同(GF-2025-2615)
✅ 合同初始化完成!
📋 数据提供合同 填写进度:已填 0/189 项(0%)
接下来需要了解 **合同基本信息** :
请提供合同编号、签订日期(年月日)和签署地点(城市、区县)。
用户:合同编号是2025-DATA-001,2025年3月15日在北京市海淀区签
AI:
✅ 已提取以下信息:
- 合同编号:2025-DATA-001
- 签订日期:2025年3月15日
- 签署地点:北京市海淀区
📋 填写进度:已填 6/189 项(3.2%)
接下来需要了解 **甲方信息**:
请提供甲方(接收方)的信息:公司名称、证件类型及号码、注册地址、法定代表人、联系人等。