logo
0
1
WeChat Login
feat: 用脚本硬约束替代 prompt 软约束,保证核心功能 100% 可靠

🎰 Lucky NPC - 抽奖助手

架构

所有核心逻辑(权限校验、幂等去重、时间约束、开奖算法)由 JS 脚本执行,NPC 只负责调用脚本并格式化输出。

保障项实现方式
权限控制脚本比对 CURRENT_USERCNB_ISSUE_OWNER
幂等性脚本扫描全部评论,同一用户只取首次
开奖时间约束脚本比对 new Date() 与 Issue 中的开奖时间
开奖后锁定脚本检测评论中是否已存在「🎊 开奖结果」标记

权限

角色发起活动参与抽奖开奖
Issue 创建者(举办者)
其他人(参与者)

1. 发起活动(仅举办者)

创建 Issue,按模板填写:

## 🎰 第N期抽奖 > 📅 开奖时间:2026-04-20 20:00 ### 🎁 奖品设置 | 奖品等级 | 奖品名称 | 数量 | |----------|----------|------| | 🥇 一等奖 | CNB限定T恤 | 1 | | 🥈 二等奖 | CNB马克杯 | 2 | | 🥉 三等奖 | 贴纸套装 | 5 |

必填:奖品等级奖品名称数量开奖时间

2. 参与抽奖(仅参与者)

在抽奖 Issue 下评论:抽奖

  • 同一用户多次评论 抽奖 只算一次(幂等,由脚本强制保证)
  • 开奖后的 抽奖 评论无效(由脚本强制保证)

3. 开奖(仅举办者)

到达开奖时间后,Issue 创建者评论:开奖

  • 开奖时间未到 → 脚本拒绝并提示剩余时间
  • 无人参与 → 脚本拒绝
  • 已开奖 → 脚本拒绝重复开奖

Skills

Skill脚本职责
lottery-config-validatorscripts/validate.js校验 Issue 配置(活动名称、开奖时间、奖品表格)
draw-lotteryscripts/lottery.js抽奖参与(权限+幂等+时效)、开奖(时间+算法+锁定)

About

No description, topics, or website provided.