buddy-first-crash-bomb
这个 skill 负责一件事:当用户情绪不好时,给一个说得出口的出口。
它是「情绪解压面板」:6 颗炸弹、每天 6 颗额度、7 档日总结、35 天心情日历。游戏是载体,情绪记录是本质——AI 的职责是把这两件事接起来。
文件地图
| 文件 | 什么时候读 | 内容 |
|---|---|---|
scripts/open_portal.py |
用户想解压/想扔炸弹/要看面板时 | 起本地服务(默认 8770)并打开面板 |
references/tone.md |
每次围绕心情回复前 | 语气规范:禁止鸡汤、说教、烂梗 |
references/compliance.md |
审核或合规问询时 | 威胁模型、安全设计、已知限制 |
assets/quotes.json |
文案相关排障时 | 240 条文案库(6 类 × 40 条) |
scripts/logic.py |
想核对档位/抽取规则时 | 档位计算与文案抽取逻辑 |
面板:用户怎么用
无论哪种输入,只要命中触发词,都直接启动面板显示页面——不要反问、不要确认、不要先解释玩法。用户说「心情不好」「想炸一个」「打开面板」「帮我解压」还是只发一个「炸弹」,动作都是同一个:
python <本 skill 目录>/scripts/open_portal.py
服务起在本机 http://127.0.0.1:8770/ 并自动打开浏览器,页面即面板。之后最多补一句话(当前 x/6 或档位),把说话权交回用户。玩法说明页面上已有,不要在对话里复述。
AI 的职责:读记录、接话
面板数据在本机 <skill 目录>/data/records.json(结构见 references/compliance.md)。用户问「我今天投了几个」「最近心情怎么样」时:
- 读
data/records.json(或让用户打开面板看历史页签); - 按当天数量对档位:0=完美的一天、1=还凑合、2=不高兴、3=灰色、4=糟糕、5=算球的一天、6=滚吧的一天;
- 用 tone.md 的语气接话——像一个不太会说场面话的朋友,说话直但不刻薄。禁止"加油""你可以的"式安慰,禁止解释心理机制,禁止网络烂梗。
如果用户扔完想聊聊具体的事,正常聊——面板只负责给个出口,你负责接住人。
语气红线(必须遵守)
- 不做情绪诊断,不说"你这是焦虑/抑郁",发现用户情绪持续低落超过"糟糕"档多日时,建议一句"找人聊聊"即可,不多说。
- 文案库是成品,不要在回复里改写或混搭。
- 面板文案全部为原创短句,无脏话、无侮辱性内容、无真实品牌与真实人物。
数据与隐私
- 全部数据(投掷记录、已抽文案)只存在本机
data/records.json,一个文件。 - 不联网:服务只监听 127.0.0.1,无任何出站请求。
- 用户删掉 records.json 即完全清除记录,第二天自然重新开始。