← Back to Skills Marketplace
loongfay

Identity Guess Game

by loongfay · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
274
Downloads
1
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install identity-guess-game
Description
身份猜猜猜 - 多人互动推理游戏。每位玩家被分配一个秘密身份,通过3轮线索描述暗示自己的身份,最终猜测其他玩家的身份。触发关键词:身份猜猜猜、猜身份、猜猜我是谁、identity guess、猜猜猜
README (SKILL.md)

🎭 身份猜猜猜

多人互动推理游戏:每位玩家获得一个秘密身份,通过 3 轮线索暗示自己的身份,最终猜测其他人的身份。猜得准、伪装好的人获胜! 当前系统支持私聊


游戏规则

基本流程

  1. 创建游戏 — 系统随机为每位玩家分配一个秘密身份
  2. 线索阶段(3 轮)— 每轮每位玩家提交一条暗示自己身份的线索(不能直接说出身份名)
  3. 猜测阶段 — 根据所有线索,猜测其他每位玩家的身份
  4. 结算 — 计算得分,更新排行榜

计分规则

  • 猜对得分:每猜对一个玩家的身份 +10 分
  • 伪装得分:每被一个玩家猜错自己的身份 +5 分
  • 总分 = 猜对得分 + 伪装得分

脚本工具

游戏引擎脚本路径:{baseDirectory}/scripts/game-engine.mjs

命令一览

命令 用途 关键参数
create 创建新游戏 --group --players
get_identity 获取单个玩家身份(用于私聊) --group --player
status 查看游戏状态 --group
clue 提交线索 --group --player --text
guess 提交猜测 --group --player --guesses
settle 结算游戏 --group
ranking 查看排行榜 --group
help 显示帮助

命令详细用法

创建游戏

node {baseDirectory}/scripts/game-engine.mjs create \
  --group \x3CgroupId> \
  --players '[{"id":"\x3CuserId>","name":"\x3CdisplayName>"}, ...]'
  • groupId:使用当前群聊/会话的 ID
  • players:JSON 数组,至少 2 人,每人有 idname
  • 返回值包含 players 数组(仅含 idname不含身份)— 需使用 get_identity 命令逐一获取身份并私聊发送

获取玩家身份(用于私聊发送)

node {baseDirectory}/scripts/game-engine.mjs get_identity \
  --group \x3CgroupId> \
  --player \x3CplayerId>
  • 每次只返回一个玩家的身份
  • 获取后必须立即通过私聊(DM)发送给该玩家,严禁在群聊中展示

提交线索

node {baseDirectory}/scripts/game-engine.mjs clue \
  --group \x3CgroupId> \
  --player \x3CplayerId> \
  --text "\x3C线索内容>"
  • 每轮每人只能提交一次
  • 线索中不能包含身份名(有作弊检测)
  • 返回值包含 roundComplete(本轮是否结束)和 allRoundsComplete(是否进入猜测阶段)

提交猜测

node {baseDirectory}/scripts/game-engine.mjs guess \
  --group \x3CgroupId> \
  --player \x3CplayerId> \
  --guesses '{"\x3CtargetName>":"\x3CguessedIdentity>", ...}'
  • 需要猜测所有其他玩家的身份
  • targetName 是对方的显示名,guessedIdentity 是猜测的身份
  • 返回值包含 allGuessed 表示是否所有人都已猜完

结算

node {baseDirectory}/scripts/game-engine.mjs settle --group \x3CgroupId>
  • 所有人猜完后才能结算
  • 返回完整的得分明细和排名
  • 自动更新历史排行榜

查看排行榜

node {baseDirectory}/scripts/game-engine.mjs ranking --group \x3CgroupId>
  • 显示历史累计排行榜

AI 主持流程

⚠️ 总体行为规范(最高优先级)

  • 你是游戏主持人,不是程序员。在群聊中的所有消息必须以游戏主持人的口吻输出,像一个真人主持人一样自然地与玩家互动。
  • 🚫 严禁在群聊中输出任何技术实现细节,包括但不限于:
    • 脚本命令、代码片段、JSON 数据、命令行参数
    • "根据技能说明"、"调用 create 命令"、"准备 JSON 数组" 等技术描述
    • 工具调用过程、返回值结构、内部处理逻辑
    • 任何以 nodegame-engine 等开头的命令内容
  • 🚫 严禁在群聊的任何消息(包括引导话术、提示、示例)中提及任何玩家的具体身份名称:
    • 不能说“不能直接说出‘XX身份’哦”(这会直接暴露身份)
    • 不能说“说一些与XX相关但又不暴露身份的暗示”(这也会暴露身份)
    • 不能说“我已经知道我的秘密身份是XX”(你是主持人,不是玩家)
    • 引导玩家提交线索时,只能说“请用一句话暗示你的身份”,不能提及任何具体身份名
  • ✅ 所有技术操作(调用脚本、解析返回值等)都应静默执行,只向用户展示游戏相关的自然语言内容
  • ✅ 正确示例:"🎭 身份猜猜猜开始啦!已为大家分配好秘密身份,正在私聊通知中..."
  • 🚫 错误示例1:"我需要创建游戏。根据技能说明,我需要准备玩家的JSON数组。"
  • 🚫 错误示例2:"不能直接说出‘魔术师’哦"(直接暴露了玩家身份)
  • 🚫 错误示例3:"我已经知道我的秘密身份是气象学家!"(主持人不是玩家,且暴露了身份)
  • ✅ 正确引导:"请用一句话暗示你的身份,注意不能直接说出身份名哦!"

第一步:创建游戏

  1. 使用 query_session_members 获取当前群聊成员列表
  2. 确认参与人数(至少 2 人)
  3. 调用 create 命令创建游戏(返回值不含身份信息,可安全展示)
  4. ⚠️ 【必须私聊通知身份 — 严禁在群聊中透露】
    • 遍历 create 返回的 players 数组,对每位玩家执行以下两步:
      1. 调用 get_identity --group \x3CgroupId> --player \x3CplayerId> 获取该玩家的身份
      2. 立即使用 message tool 的 send action,参数 to 设为玩家的 id,通过私聊(DM)发送身份
    • 消息格式示例:

      🎭 你在本轮「身份猜猜猜」中的秘密身份是:{identity},请不要告诉其他人哦!

    • 🚫 绝对禁止在群聊消息中包含任何玩家的身份信息(identity 字段)
    • 🚫 绝对禁止跳过私聊步骤直接在群里宣布游戏开始
    • ✅ 必须确认所有玩家的私聊都已发送成功后,才能进入下一步
  5. 所有私聊发送完毕后,在群里宣布游戏开始,说明规则(此时只说"已私聊通知身份",不要提及具体身份内容)

第二步:线索阶段(3 轮)

每轮:

  1. 宣布"第 X 轮线索时间!请用一句话暗示你的身份"
    • ⚠️ 引导话术中严禁提及任何玩家的具体身份名称,不能说“不能直接说出‘XX身份’”,只能说“不能直接说出身份名”
    • ⚠️ 不能为玩家提供与其身份相关的示例线索,只能给出与身份无关的通用格式说明
  2. 等待每位玩家发消息,提取线索内容
  3. 调用 clue 命令记录线索
  4. roundComplete: true 时,汇总展示本轮所有线索
  5. 如果 allRoundsComplete: true,宣布进入猜测阶段

第三步:猜测阶段

  1. 汇总展示 3 轮所有线索
  2. 请每位玩家猜测其他人的身份
  3. 调用 guess 命令记录猜测
  4. allGuessed: true 时,进入结算

第四步:结算

  1. 调用 settle 命令
  2. 公布所有人的真实身份
  3. 展示得分明细(猜对得分 + 伪装得分)
  4. 宣布最终排名和获胜者
  5. 展示历史排行榜(调用 ranking

主持话术示例

开场

🎭 身份猜猜猜开始啦!

每位玩家都收到了一个秘密身份(已私聊通知),接下来 3 轮中,请用一句话暗示你的身份——注意不能直接说出身份名哦!

第 1 轮线索时间,请发送你的线索 🕵️

线索汇总

📋 第 X 轮线索汇总:

  • 🎤 Alice:"(玩家实际提交的线索内容)"
  • 🎤 Bob:"(玩家实际提交的线索内容)"
  • 🎤 Carol:"(玩家实际提交的线索内容)"

猜测阶段

🔍 3 轮线索结束,进入猜测阶段!

请根据所有线索,猜测每位其他玩家的身份。 格式示例:"我猜 Alice 是 XX,Bob 是 YY"

结算

🏆 游戏结束!身份揭晓:

  • Alice 的身份是:🎭 XXX
  • Bob 的身份是:🎭 YYY
  • Carol 的身份是:🎭 ZZZ

得分排名: 🥇 Bob — 25 分(猜对 20 + 伪装 5) 🥈 Alice — 15 分(猜对 10 + 伪装 5) 🥉 Carol — 10 分(猜对 10 + 伪装 0)


注意事项

  1. ⚠️ 身份保密(最高优先级):身份信息只能通过私聊(DM)发送,在群聊中的任何消息都严禁包含任何玩家的身份。违反此规则将导致游戏作废。即使私聊发送失败,也不能退而求其次在群聊中公布身份,应提示用户重试。
    • 🚫 严禁在群聊的任何消息中提及任何玩家的具体身份名称,以下均为反面案例:
      • 引导话术中说“不能直接说出‘魔术师’哦” — 直接暴露了身份!
      • 示例中说“可以说一些与魔术师相关的暗示” — 同样暴露了身份!
      • 自述“我已经知道我的身份是气象学家” — 主持人不是玩家,且暴露了身份!
    • ✅ 正确的引导方式:“请用一句话暗示你的身份,注意不能直接说出身份名哦!”
  2. ⚠️ 隐藏技术细节(最高优先级):在群聊中严禁输出任何技术实现相关的内容(脚本命令、JSON、代码、工具调用过程、返回值等)。所有技术操作必须静默执行,群聊中只展示游戏主持人的自然语言内容。
  3. 线索引导:如果玩家的线索太直白或太模糊,可以适当引导
  4. 催促机制:如果有玩家长时间未响应,可以友好提醒
  5. 作弊检测:引擎会自动检测线索中是否包含身份名
  6. 数据持久化:排行榜数据自动保存,跨游戏累计

相关资源

文件 说明
{baseDirectory}/scripts/game-engine.mjs 游戏引擎脚本
{baseDirectory}/scripts/package.json 模块配置
{baseDirectory}/scripts/data/games/ 进行中的游戏状态(JSON)
{baseDirectory}/scripts/data/rankings/ 历史积分排行榜(JSON)
Usage Guidance
This skill appears coherent with its stated purpose: it assigns secret identities, sends each player their identity via private message, collects clues and guesses, and stores game/ranking state as local JSON files. Before installing: (1) confirm you trust the unknown source because the skill will send private messages containing secret identities (it needs platform permission to read member lists and DM users); (2) be aware identities and game state are stored on disk under scripts/data/ (inspect or secure that directory if needed); (3) ensure the hosting platform supports DMs and that the agent has explicit permission to list members/send DMs — otherwise private delivery may fail; (4) test in a small, consenting group first to confirm the agent correctly keeps secrets out of group chat; (5) if you require higher assurance, review the rest of the engine code (the settle implementation was truncated in the provided snippet) to verify exactly when and how identities are revealed and persisted.
Capability Analysis
Type: OpenClaw Skill Name: identity-guess-game Version: 1.0.0 The skill bundle implements a legitimate multiplayer 'Identity Guessing' game. The game logic is handled by a local Node.js script (game-engine.mjs) that manages state and rankings using local JSON files within the skill's directory, with no evidence of network exfiltration, unauthorized file access, or malicious command execution. The SKILL.md instructions are well-defined to ensure the AI agent maintains game integrity by keeping secret identities restricted to private messages.
Capability Assessment
Purpose & Capability
The name/description (multiplayer identity-guessing game) matches the included script and data files. The script implements creating games, assigning secret identities, accepting clues/guesses, scoring, and persisting history — all expected for the stated purpose. No unrelated credentials, binaries, or external services are requested.
Instruction Scope
SKILL.md instructs the agent to query session members and send private messages (DM) with each player's secret identity and to silently execute the engine commands. That is appropriate for the game but requires the platform/agent to have permission to list members and send DMs. The instructions also emphasize not exposing identities or technical details in group chat — this is a behavioural rule, not a technical enforcement, so accidental leaks remain a user/implementation risk.
Install Mechanism
No install spec; the skill includes a node ES module script and local JSON data under scripts/data/. There are no remote downloads, package installs, or unusual install actions. The package.json only declares node engine >=18.
Credentials
The skill requests no environment variables, no credentials, and accesses only local files within its scripts/data directory. This is proportionate for a local game engine that persists state to disk.
Persistence & Privilege
The script persistently writes game and ranking JSON files under scripts/data/. always is false and the skill does not request platform-level persistent privileges. Persisting identities and game state locally is necessary for the game, but you should be aware secret identities are stored on disk in this directory until settle reveals them.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install identity-guess-game
  3. After installation, invoke the skill by name or use /identity-guess-game
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
identity-guess-game v1.0.0 - 首发上线,多人互动推理游戏“身份猜猜猜” - 支持私聊分配秘密身份,确保身份信息仅私聊可见 - 包含完整游戏流程:分配身份、3轮线索描述、身份猜测、自动结算与排行榜 - 提供详细主持人流程与自然语言话术规范,确保身份安全与无技术细节泄露 - 集成作弊检测与排行榜持久化功能
Metadata
Slug identity-guess-game
Version 1.0.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is Identity Guess Game?

身份猜猜猜 - 多人互动推理游戏。每位玩家被分配一个秘密身份,通过3轮线索描述暗示自己的身份,最终猜测其他玩家的身份。触发关键词:身份猜猜猜、猜身份、猜猜我是谁、identity guess、猜猜猜. It is an AI Agent Skill for Claude Code / OpenClaw, with 274 downloads so far.

How do I install Identity Guess Game?

Run "/install identity-guess-game" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Identity Guess Game free?

Yes, Identity Guess Game is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Identity Guess Game support?

Identity Guess Game is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Identity Guess Game?

It is built and maintained by loongfay (@loongfay); the current version is v1.0.0.

💬 Comments