skills/mercury-api.wepieoa.com/weplay_go_adventure

weplay_go_adventure

SKILL.md

威仔GO奇遇记活动配置生成器

根据运营需求文档,自动生成威仔GO奇遇记活动的 JSON 配置。


必要信息收集

启动时检查以下信息,缺少则询问:

信息 说明 获取方式
活动ID (act_id) 后台创建活动后获得的数字ID 必须由用户提供
所属区服 决定 region、project_id、碎片名称翻译 优先从文档标题/内容推断,推断不到再询问
飞书需求文档 包含活动期数、时间、奖励的运营文档 飞书链接或直接粘贴内容

区服推断规则: 文档标题或内容通常包含区服标识(如"华服第X期"、"韩服第X期"),可直接推断。若文档中无法确认,再询问用户。

询问话术(一次性问完缺少的项):

请提供以下信息以生成威仔GO奇遇记配置:
1. 活动ID(act_id):后台创建活动后的数字ID
(如文档中能看出区服则无需额外提供,否则请说明区服)
2. 活动需求文档:飞书链接或直接粘贴文档内容

区服映射表

区服名称 region project_id 碎片1名称(奇遇幣)
华服 C 323 奇遇幣
日服 J 323 アドベンチャーコイン
韩服 K 323 모험코인
越南服 V 323 Xu Đụng Độ
马尼服 M 323 Coin Lucky Chest
泰服 T 323 เหรียญมหัศจรรย์
菲律宾服 P 323 Adventure Coin
俄语服 R 323 Монета приключений

⚠️ 如果区服不在上表中,或碎片名称有误,请告知用户补充 region、project_id 和碎片名称。


文档解析 —— 必须从文档提取的所有字段

原则:凡是和活动内容相关的 ID、数量、时间、名称,全部从文档提取,不硬编码。

基本信息

  • 活动期数 Nactivity_namedesc、message_config_key 后缀(period{N}
  • 区服 → 从文档推断,用于填充 regionproject_idcollect_chip[0].name(见区服映射表)
  • 活动开始/结束时间start_time / end_time(格式:YYYY-MM-DD HH:mm:ss,结束时间为当天 00:00:00)
  • 常驻礼盒名称desc(如 "华服第20期威仔GO常驻礼盒-提線木偶")
  • 活动文档链接doc_url

活动礼物(gift)

  • 活动礼物 gift_idcollect_gifts[0].gift_idgift_list[0]、rank 条件、task send_gift 条件、send_gift_hooker_v2 的键

3个英雄皮肤(king_of_impact)

  • 新期英雄(有 reward_message 广播)→ reward_id、female_reward_id
  • 旧期英雄1 → reward_id、female_reward_id
  • 旧期英雄2 → reward_id、female_reward_id
  • 每个英雄的附赠道具(prop)→ reward_id、female_reward_id(reward_val 通常为 7,以文档为准)

兑换商店(exchange_store)

  • 英雄兑换条目(fe_id 1-3):英雄 ID、附赠道具 ID、消耗奇遇幣数量(以文档为准)
  • 小道具兑换条目(fe_id 4+):每个小道具的 reward_id、消耗奇遇幣数量、reward_val,全部从文档提取

抽奖概率池(lottery)

  • 礼盒连击概率池(gift_box_lot_1 / gift_box_lot_2)
    • 3个英雄的 reward_id、权重(lot_1 通常10,lot_2 通常20,以文档为准)
    • 所有公共道具的 reward_id、reward_val、reward_weight,全部从文档提取
  • 奇遇幣抽奖(gift_lottery):guarantee 值(通常5,以文档为准)

任务配置(tasks)

所有任务的条件阈值、奖励 ID、奖励数量全部从文档提取:

  • task1 送礼返奖:各阶段送礼数量阈值(1/10/30/50 或文档定义的值)、各阶段奖励 reward_id 和 reward_val
  • task2 访问活动页面:奖励类型(固定为 collect_chip chip_id=2,即 flag)
  • task3 首次获得碎片提醒:无奖励(none),结构固定
  • task4 送礼增加榜单分no_send_board_trigger: true,score_rule 用 gift_coin.divisor=1(按金币价值计分,无需区服隔离),reward_type=weplay_go_rank,reward_val 固定为 1
  • task5 登录app:无奖励(none),结构固定

奖励类型识别规则

文档表格中的奖励 ID 通常带有链接,以链接 URL 路径后缀判断 reward_type 和 reward_id

链接格式 reward_type 说明
.../global/title/detail/{id} "title" 称号(无论1级/2级/3级,均为 title)
.../global/prop-manage/detail/{id} "prop" 道具

URL 中最后的数字即为 reward_id。未带链接时,根据奖励名称常识判断(如"礼物卡"为 prop)。

排行榜(rank)

  • 排名奖励:各名次段的 reward_id、reward_val(以文档为准);奖励类型按上方"奖励类型识别规则"从链接判断
  • 排行榜计分倍数score_rule.gift.list[0].multiple(以文档为准)

关键字段类型规范

生成 JSON 时必须严格按照以下类型,否则配置无法解析:

字段 类型 说明
顶层 act_id int 888,不加引号
chip_notify[].chip_num_meta_list[].act_id int 同上
exchange_store[].exchange[].cost_chip_meta[].act_id int 同上
lottery[].reward_config.random_rewards[].act_id int 同上
send_gift_hooker_v2 各 hooker 的 act_id int 同上
tasks[].stages[].reward_config.rewards[].act_id int 同上
tasks[].condition_configchip.list[].act_id int 同上
collect_gifts[].gift_id int 1209218,不加引号
gift_list[] 元素 int 1209218
score_rule.gift.list[].gift_id(tasks/rank) int 同上
reward_id / female_reward_id int 1720688
chip_num / reward_val / reward_weight int 数值均不加引号
project_id int 323
exchange_type string 始终加引号,如 "1720688"
rules[].act_id.data / rules[].gift_id.data string condition rules 中的 data 始终加引号
send_gift_hooker_v2 的 map key(gift_id) string JSON key 始终是 string

结构固定字段(不依赖文档,直接使用)

仅以下框架性字段固定不变:

字段 固定值
name "威仔GO!奇遇記"
act_type "营收活动"
open "2"
offset 0
level "B"
version 1
template_list ["weplay_go_box"]
is_resident_act false
join_act_crowd {crowd_type_ids:[1], is_multiple:true}
collect_chip 结构 2个chip:奇遇幣(chip_id=1) + flag(chip_id=2)
special_info.weplay_go_box_config.limit_times 10
special_info.weplay_go_box_config.limit_lottery_types ["gift_box_lot_1","gift_box_lot_2"]
send_gift_hooker_v2 连击阈值 lot_1: 0-9,lot_2: 10+
chip_notify[1].message.message_config_key "chip_notify_key"
tasks[0].message.message_config_key "level_msg"
tasks[2].message.message_config_key "recv_chip_msg"
rank[0].checkout_configs[].message.message_config_key "rank_msg"
task_groups id:1,task_ids:[1,2,3,4,5]
fe_config {}
redis_cmd_list []

act_id 替换位置清单

以下所有位置必须填入新 act_id(字符串或数字按原格式):

  • 顶层 act_id
  • act_url 中的两处 act_id 参数
  • chip_notify[0/1].chip_num_meta_list[0].act_id
  • exchange_store[0].exchange[0-2].cost_chip_meta[0].act_id(英雄兑换3个)
  • lottery[0].reward_config.random_rewards[0].act_id(奇遇币抽奖)
  • send_gift_hooker_v2 键下3个 hooker 的 act_id
  • tasks[1].condition_config rules 中的 act_id.data
  • tasks[1].stages[0].reward_config.rewards[0].act_id
  • tasks[2].condition_config rules 中的 act_id.datachip.list[0].act_id
  • tasks[3].stages[0].reward_config.rewards[0].act_id

message_config_key 期数后缀规则

位置 格式
chip_notify[0].message.message_config_key last_12h_msg_period{N}
lottery[1/2].reward_config.random_rewards[0].reward_message.message_config_key new_hero_period{N}
tasks[4].message.message_config_key login_msg_period{N}

执行步骤

Step 1: 检查必要信息是否齐全(act_id、区服、文档),缺少则询问
Step 2: 读取飞书文档(使用 feishu2stdout skill)
Step 3: 从文档提取所有字段(见"文档解析"章节)
Step 4: 以 references/template.json 为结构骨架,填入提取的值
Step 5: 判断调用模式,写入文件或直接返回 JSON

调用模式判断(Step 5 执行前)

通过检查远程服务器路径是否存在来判断:

test -d /usr/local/wejoy/src/repo_for_aicr && echo "remote" || echo "local"

本地模式(路径不存在)

使用 Write 工具将 JSON 写入:

./workspace/weplay_go_configs/weplay_go_{区服}_{期数}_act{act_id}.json

示例:./workspace/weplay_go_configs/weplay_go_华服_第18期_act888.json

写入完成后告知用户:

✅ 配置已生成:./workspace/weplay_go_configs/weplay_go_华服_第18期_act888.json

远程模式(路径存在)

直接将完整 JSON 输出到对话中返回给调用方,不写文件。


输出格式

1. 完整 JSON 配置(远程模式直接返回,本地模式写文件)

2. 待确认清单

列出所有从文档中提取但不确定是否正确的字段,例如:

⚠️ 以下字段请人工核对:
- [ ] gift_id: XXXX(活动礼物)
- [ ] 英雄1 reward_id / female_reward_id
- [ ] 英雄2 reward_id / female_reward_id
- [ ] 英雄3 reward_id / female_reward_id
- [ ] 各英雄附赠道具 prop_id
- [ ] 兑换商店小道具 ID 列表
- [ ] 概率池道具 ID 和权重
- [ ] 送礼返奖各阶段奖励
- [ ] 排名奖励 ID

参考模板

参见本 skill 目录下 references/template.json。该文件仅作为 JSON 结构骨架参考,所有带 [PLACEHOLDER] 的字段必须替换为从文档提取的实际值。

Installs
1
First Seen
Apr 13, 2026