activity-config-migrator
活动配置迁移工具
基于源活动的需求文档和配置,结合目标活动的需求文档,智能生成满足新需求的 JSON 配置。
核心功能
- 需求对比分析 - 识别源活动和目标活动的需求差异
- 配置结构理解 - 解析源配置的结构和各字段含义
- 智能配置生成 - 根据差异分析,调整配置以满足新需求
- 验证与建议 - 提供配置验证检查清单和优化建议
适用场景
- 迁移活动配置到新活动
- 复用已有活动配置并适配新需求
- 批量创建相似活动配置
- 活动配置模板化
🤖 AI 执行指令
当用户调用此 skill 时,请按照以下步骤执行:
步骤 1:收集必要信息
首先询问用户提供三个必要信息(如果用户已经提供,则跳过询问):
请提供以下信息以进行活动配置迁移:
1. **源活动需求文档**
- 飞书文档链接,或
- Markdown 文件路径,或
- 直接粘贴需求文档内容
2. **源活动配置 JSON**
- 配置文件路径,或
- 直接粘贴 JSON 内容
3. **目标活动需求文档**
- 飞书文档链接,或
- Markdown 文件路径,或
- 直接粘贴需求文档内容
处理用户输入:
- 如果用户一次性提供了所有信息,直接进入下一步
- 如果用户分多次提供,记录已提供的内容
- 验证提供的信息是否完整
步骤 2:读取源数据
根据用户提供的信息类型,采取相应的读取策略:
2.1 处理飞书文档
如果用户提供飞书文档链接,使用 feishu2md skill 转换:
# 调用 feishu2md skill
/feishu2md <飞书文档链接>
注意事项:
- 确保环境变量
FEISHU_APP_ID和FEISHU_APP_SECRET已设置 - 如果转换失败,提示用户提供 Markdown 格式或文本内容
2.2 读取本地文件
如果用户提供文件路径,使用 Read 工具读取:
# 读取需求文档
Read tool: /path/to/requirement.md
# 读取配置文件
Read tool: /path/to/config.json
2.3 处理直接文本
如果用户直接粘贴内容,直接使用该内容进行分析。
数据验证:
- 验证配置 JSON 格式是否正确
- 验证需求文档是否包含足够的信息
- 如果数据不完整或格式错误,要求用户补充或修正
步骤 3:需求差异分析
对比源活动需求和目标活动需求,识别关键差异:
3.1 分析维度
基本信息对比:
- 活动名称、活动 ID、活动时间
- 活动类型(任务、抽奖、排行榜、签到等)
- 活动周期(单次、每日、每周、多阶段等)
玩法规则对比:
- 参与条件变化(等级限制、VIP限制、地区限制等)
- 任务/目标差异(任务类型、完成条件、数量要求等)
- 奖励机制变化(奖励类型、数量、发放方式等)
- 计算逻辑差异(积分计算、进度计算、排名规则等)
配置结构对比:
- 新增的配置项
- 删除的配置项
- 修改的配置项(字段名、类型、含义变化)
- 嵌套结构变化
业务逻辑对比:
- 触发条件变化
- 流程节点差异
- 状态管理变化
- 数据统计差异
3.2 输出分析结果
以结构化方式输出分析结果:
## 需求差异分析
### 1. 基本信息变化
| 项目 | 源活动 | 目标活动 | 影响 |
|------|--------|----------|------|
| 活动名称 | [源] | [目标] | 配置中需更新名称字段 |
| 活动时间 | [源] | [目标] | 需调整时间配置 |
| 活动类型 | [源] | [目标] | 可能需要调整配置结构 |
| ... | ... | ... | ... |
### 2. 玩法规则变化
#### 参与条件
- **源活动**:[描述源活动的参与条件]
- **目标活动**:[描述目标活动的参与条件]
- **影响配置**:需要调整 `xxx` 字段
#### 任务/目标
- **源活动**:[描述源活动的任务目标]
- **目标活动**:[描述目标活动的任务目标]
- **影响配置**:需要修改 `tasks` 数组配置
#### 奖励机制
- **源活动**:[描述源活动的奖励机制]
- **目标活动**:[描述目标活动的奖励机制]
- **影响配置**:需要调整 `rewards` 配置
### 3. 配置结构变化
#### 新增字段
- `field1`: [用途说明]
- `field2`: [用途说明]
#### 删除字段
- `old_field1`: [原用途]
- `old_field2`: [原用途]
#### 修改字段
- `field3`: [变化说明]
- `field4`: [变化说明]
### 4. 迁移策略
#### 保留配置(无需修改)
- `基础结构字段`
- `通用逻辑字段`
- ...
#### 调整配置(需要修改)
- `活动基本信息` → 更新为目标活动信息
- `任务配置` → 根据新需求调整
- ...
#### 新增配置(需要添加)
- `新功能配置` → 根据目标活动新增需求添加
- ...
#### 删除配置(不再需要)
- `废弃功能配置` → 移除源活动中已废弃的配置
- ...
步骤 4:配置迁移生成
基于需求分析结果,生成新的配置 JSON。
4.1 迁移原则
-
保留可复用配置
- 对于需求未变化的部分,保留源配置
- 保持配置项的原始结构和格式
-
调整变化配置
- 根据新需求调整配置值
- 处理字段重命名、类型变化
- 更新时间、名称等基本信息
-
添加新增配置
- 为新增需求添加对应配置项
- 使用合理的默认值或示例值
- 添加必要的注释说明
-
移除废弃配置
- 移除不再需要的配置项
- 清理无效的嵌套结构
- 保持配置简洁
-
保持一致性
- 确保配置项之间的关联正确
- 验证依赖关系
- 保持命名风格一致
4.2 配置生成步骤
步骤 4.2.1:解析源配置结构
- 识别配置的层级结构
- 理解各字段的业务含义
- 找出配置项之间的依赖关系
- 识别可重复使用的配置块
步骤 4.2.2:映射配置到需求
- 将源配置项映射到源需求的具体功能点
- 识别哪些配置对应哪些需求
- 建立配置-需求对应表
步骤 4.2.3:应用差异调整
- 根据需求差异,逐项调整配置
- 处理字段重命名:保持语义一致性
- 处理类型变化:确保数据格式正确
- 更新关联值:如 ID、名称等
步骤 4.2.4:补充缺失配置
- 为新增需求添加配置项
- 参考源配置的结构和风格
- 使用占位符标注需要人工确认的值
步骤 4.2.5:清理无用配置
- 移除不再需要的配置项
- 删除无效的注释
- 整理配置结构,保持清晰
步骤 5:输出迁移结果
以清晰的格式输出迁移后的配置和说明:
# 活动配置迁移结果
> **源活动**:[源活动名称]
> **目标活动**:[目标活动名称]
> **生成时间**:[时间]
---
## 一、迁移后的配置 JSON
```json
{
"_comments": "这是迁移后的配置,请仔细检查并根据实际需求调整",
"activity_id": "目标活动ID",
"activity_name": "目标活动名称",
"start_time": "开始时间",
"end_time": "结束时间",
// ... 完整的配置内容
"tasks": [
{
"task_id": 1,
"task_name": "任务名称",
// ... 任务配置
}
],
"rewards": [
{
"reward_id": 1,
"reward_type": "coin",
// ... 奖励配置
}
]
}
二、配置变更说明
1. 保留的配置项
以下配置项从源活动保留,无需修改:
基础结构字段: [说明]通用逻辑字段: [说明]xxx: [说明]
2. 调整的配置项
以下配置项根据新需求进行了调整:
| 配置项 | 原值 | 新值 | 调整原因 |
|---|---|---|---|
activity_id |
[源值] | [新值] | 目标活动的 ID |
activity_name |
[源值] | [新值] | 目标活动的名称 |
start_time |
[源值] | [新值] | 目标活动的时间 |
| ... | ... | ... | ... |
3. 新增的配置项
以下配置项为目标活动新增:
新字段1: [新值] - [用途说明]新字段2: [新值] - [用途说明]新字段3: [新值] - [用途说明]
4. 移除的配置项
以下配置项不再需要,已移除:
废弃字段1: [移除原因]废弃字段2: [移除原因]
三、需要人工确认的配置项
⚠️ 以下配置项使用了占位符或默认值,需要人工确认并调整:
-
activity_id: 请确认目标活动的实际 ID -
reward_id: 请确认奖励物品的实际 ID -
task_target: 请确认任务目标数值是否合理 -
time_config: 请确认时间配置是否符合运营计划 - ...
四、验证检查清单
在使用此配置前,请完成以下检查:
- 活动基本信息已更新(ID、名称、时间)
- 玩法规则配置与目标需求一致
- 奖励配置正确(类型、数量、ID)
- 时间配置合理(开始时间、结束时间、阶段时间)
- 关联配置完整(任务 ID、物品 ID、用户 ID 等)
- 没有遗留的源活动数据
- 所有占位符已替换为实际值
- 配置格式正确(JSON 语法无误)
- 字段类型正确(数字、字符串、数组等)
- 依赖关系正确(如任务依赖、奖励关联等)
五、优化建议
- [建议1]: [具体说明]
- [建议2]: [具体说明]
- [建议3]: [具体说明]
六、风险提示
⚠️ 迁移风险:
- [列出可能的风险点]
- [需要特别注意的地方]
- [可能影响的其他系统]
生成工具:Claude Code /activity-config-migrator skill
### 步骤 6:后续支持
询问用户是否需要额外的支持:
✅ 活动配置迁移完成!
是否需要:
- 保存配置到文件
- 进一步优化某个配置项
- 解释某个配置的作用
- 进行配置验证测试
---
## 特殊情况处理
### 情况 1:飞书文档无法访问
如果飞书文档链接无法访问,提示用户:
⚠️ 无法访问飞书文档
请提供以下替代方式:
- 导出文档为 Markdown 并粘贴内容
- 提供文档的文本内容
- 提供本地 Markdown 文件路径
### 情况 2:配置格式复杂或不规范
如果源配置结构复杂或不规范,询问用户:
⚠️ 源配置结构较为复杂
为确保迁移准确性,请确认:
- 配置的顶层结构含义是什么?
- 关键字段的业务含义是什么?
- 是否有隐藏的依赖关系或特殊逻辑?
- 是否有部分配置是冗余的或已废弃的?
### 情况 3:需求差异过大
如果源活动和目标活动差异很大,提示用户:
⚠️ 检测到源活动和目标活动差异较大
相似度评估:约 [X]%
建议:
- 仅复用通用配置(如基础结构、时间配置等)
- 手动编写核心玩法配置
- 或选择更相似的源活动进行迁移
是否继续迁移?
### 情况 4:配置项含义不明确
如果遇到难以理解的配置项,询问用户:
⚠️ 发现以下配置项含义不明确:
field_xxx: [当前值]unknown_config: [当前值]
请说明这些配置项的用途,以便正确迁移。
---
## 使用场景示例
### 场景 1:迁移相似活动配置
**用户输入**:
源活动:2025年春节活动 目标活动:2025年情人节活动 两个活动的玩法类似,都是任务+抽奖
**AI 执行流程**:
1. 收集源活动需求、配置和目标需求
2. 识别差异(主要是时间、主题、奖励)
3. 保留任务结构和抽奖逻辑
4. 更新活动信息和奖励配置
5. 输出迁移后的配置和检查清单
### 场景 2:复用活动模板
**用户输入**:
我有一个通用的签到活动配置 想基于它创建一个新的签到活动 新活动增加了连续签到奖励
**AI 执行流程**:
1. 读取通用签到配置
2. 分析目标活动的连续签到需求
3. 保留基础签到逻辑配置
4. 新增连续签到奖励配置
5. 输出完整的配置和使用说明
### 场景 3:批量创建地区活动
**用户输入**:
源活动:美国地区活动 目标活动:欧洲地区活动(5个国家) 玩法相同,只需调整时间和地区限制
**AI 执行流程**:
1. 读取美国地区活动配置
2. 识别需要调整的地区相关配置
3. 保留玩法和奖励配置
4. 批量生成5个国家的配置
5. 输出所有配置和差异说明
---
## 工具使用说明
在执行迁移过程中,你可以使用以下工具:
### 必须使用的工具
- **Read**: 读取本地配置文件或需求文档
- **Write**: 保存生成的配置文件(可选)
- **Skill: feishu2md**: 转换飞书文档为 Markdown
- **AskUserQuestion**: 需要用户确认或补充信息时询问
### 可选使用的工具
- **Grep**: 搜索配置文件中的特定字段(当配置文件很大时)
- **Bash**: 执行 JSON 格式验证(如 `jq` 命令)
### 禁止使用的工具
- **Edit**: 不要直接编辑用户的源配置文件
- **Task**: 不需要启动其他 agent
- **Explore**: 配置迁移不需要探索代码库
---
## 注意事项
### 数据安全
- 不要在配置中包含敏感信息(密钥、密码等)
- 如果源配置包含敏感信息,在输出时用占位符替换
- 提醒用户检查配置中是否有需要保密的数据
### 配置验证
- 生成的配置必须是有效的 JSON 格式
- 所有必需字段都应该有值(或占位符)
- 字段类型应该正确(数字、字符串、数组等)
- 嵌套结构应该完整
### 迁移质量
- 优先保证配置的正确性,其次是完整性
- 对于不确定的配置项,使用占位符并标注
- 提供详细的变更说明,便于用户理解
- 给出明确的检查清单,帮助用户验证
### 用户交互
- 及时向用户反馈进度
- 对于重要决策,询问用户意见
- 用清晰的格式展示分析结果
- 提供可操作的建议和下一步行动
---
## 技术说明
### 支持的配置格式
- ✅ JSON 格式(标准配置格式)
- ✅ 带注释的 JSON(使用 `_comments` 字段)
- ⚠️ YAML 格式(需要转换为 JSON)
- ❌ 其他格式(需要先转换)
### 需求文档格式
- ✅ Markdown 格式
- ✅ 飞书文档(自动转换)
- ✅ 纯文本描述
- ⚠️ Word/PDF(需要用户手动转换)
### 配置复杂度支持
- **简单配置**(< 50 行):完全自动迁移
- **中等配置**(50-200 行):自动迁移 + 少量人工确认
- **复杂配置**(> 200 行):辅助迁移 + 较多人工确认
### 性能说明
- 小配置(< 50 行):10-20 秒
- 中等配置(50-200 行):20-40 秒
- 大配置(> 200 行):40-60 秒
---
## 常见问题
### Q1: 如果源配置和目标需求差异很大怎么办?
**A**: 工具会评估相似度,如果差异超过 50%,会建议:
- 仅复用通用配置部分
- 手动编写差异较大的部分
- 或选择更相似的源活动
### Q2: 生成的配置可以直接使用吗?
**A**: 不建议直接使用,应该:
1. 检查"需要人工确认的配置项"清单
2. 完成"验证检查清单"中的所有项
3. 在测试环境中验证配置
4. 确认无误后再用于生产环境
### Q3: 如何处理配置中的 ID(如活动 ID、物品 ID)?
**A**:
- 如果目标需求中明确了 ID,会自动填充
- 如果未明确,会使用占位符(如 `[ACTIVITY_ID]`)
- 在"需要人工确认的配置项"中会标注所有 ID 占位符
### Q4: 能否一次迁移多个配置?
**A**:
- 当前版本一次只能迁移一个配置
- 如需批量迁移,可以多次调用此 skill
- 未来版本可能会支持批量迁移
### Q5: 如果源配置包含代码逻辑怎么办?
**A**:
- 此 skill 仅处理 JSON 配置
- 代码逻辑部分无法自动迁移
- 会在输出中提示用户需要手动迁移代码
---
🎯 **最终目标**:帮助用户快速、准确地迁移活动配置,减少手动调整工作量,同时确保配置的正确性和完整性。