Peon Ping 会话声音包选择器
为当前聊天会话设置角色声音包,支持 GLaDOS、Peon、Kerrigan 等,通过钩子即时生效。
该技能直接在本地配置文件中修改config.json和.state.json,操作对象明确,且操作局限于设置声音包,不涉及敏感数据。但技能在执行时缺少明确的用户确认步骤(虽然用户主动调用本身即算作确认),且未提及对配置文件的备份或回滚机制。技能描述中未涉及敏感数据外传或恶意行为,风险可见但权限、确认、隔离或恢复不完整,故得12分。
技能提供了清晰的步骤和错误处理,指出了手动回退路径,且仓库包含针对OpenCode适配器的测试套件(但并非直接针对本技能)。但技能本身未经过独立执行验证,且依赖外部脚本,错误信息可能不足以引导用户。按静态评分上限,得8分。
技能明确定义了使用场景(切换声音包)和触发条件(用户输入/peon-ping-use),但技能边界不够清晰,未明确指出不适用的情况(如非Claude Code环境)。对于中国用户,该技能本身不依赖海外服务,但声音包可能托管在海外,存在可访问性问题。总体场景明确但边界证据有限,得10分。
SKILL.md结构清晰,包含安装使用说明、示例和回退方案,但缺少FAQ、版本变更日志和已知限制。仓库有MIT许可证,但发布者未经验证,维护责任不明。文件命名和参数命名稳定,但是否废弃无法确认。得9分。
从说明看,技能能够完成切换声音包的核心任务,但证据仅来自文档描述,未验证实际输出。文档中的示例交互展示了预期输出,但未说明是否直接可用或需要人工调整。边际价值有限,因为该功能也可以通过CLI或手动编辑配置实现。按静态上限,得6分。
仓库包含测试套件(如tests/opencode-peon-ping-internals.test.ts)和CI工作流,但这些测试并非直接针对该技能,而是针对底层适配器逻辑。没有直接证据表明技能本身被测试或可重现。按静态上限,得5分。
- 该技能可能无法在非Claude Code环境中正常工作,因为依赖环境变量CLAUDE_SESSION_ID;对于Cursor用户,文档明确说明回退到default键。
- 声音包可能托管在GitHub等海外服务,中国大陆用户可能无法直接下载,建议考虑镜像或自托管。
- 技能直接修改配置文件,建议用户先备份config.json和.state.json,以防意外。
- 发布者未经验证,使用前请自行审查仓库代码。
这个 Skill 能做什么,适合哪些场景?
该技能允许用户通过 /peon-ping-use <包名> 命令为当前聊天会话指定声音包。它利用 beforeSubmitPrompt 钩子拦截命令,验证包是否存在,启用 session_override 旋转模式,并将会话映射到所选包,全程零 token 消耗。该技能主要面向 Claude Code 和 Cursor 用户,提供手动备用流程以防钩子未安装。
拦截 /peon-ping-use 命令,读取配置文件(config.json 和 .state.json),验证包列表,更新 pack_rotation_mode 为 session_override,并将当前会话 ID 映射到请求的包。在 Cursor 中,如果没有会话 ID,则使用默认键。执行后输出确认消息。
- Claude Code 用户希望为当前会话使用 GLaDOS 声音。
- 正在处理多个项目,希望不同会话使用不同角色声音的开发者。
- Cursor 用户希望为所有会话分配一个默认声音,因为 Cursor 不提供会话 ID。
- 需要快速切换声音包而不消耗 token 的用户。
这个 Skill 有哪些优点和局限?
- 零 token 消耗:钩子处理命令,不消耗模型 token。
- 即时反馈:返回确认消息。
- 支持多种声音包,如 peon、glados、sc_kerrigan 等。
- 提供手动备用流程。
- 仅针对 Claude Code 和 Cursor 有明确文档支持,其他 IDE 未提及。
- 需要安装完整的 peon-ping 集合。
- 对于 Cursor,缺少会话 ID,可能将声音应用到所有会话,而不是特定会话。
- 手动备用流程需要编辑 JSON 文件,可能较繁琐。
如何安装这个 Skill?
此技能是 peon-ping 仓库的一部分。安装 peon-ping 集合(例如通过 curl | bash 或 Windows 安装脚本)后,技能文件位于 skills/peon-ping-use/ 下。确保钩子脚本(scripts/hook-handle-use.sh 或 .ps1)已安装并注册。
如何使用这个 Skill?
在支持的 IDE(如 Claude Code)中,输入 /peon-ping-use 后跟包名,例如 /peon-ping-use glados。如果钩子失败,请遵循 SKILL.md 中的手动备用步骤:检查包列表、获取会话 ID、更新 config.json 和 .state.json。