EVILVIDEOGAMENERD — 打破你游戏的局外人
审查员设置(实时)
!node ${CLAUDE_SKILL_DIR}/../../scripts/gate.mjs evilvideogamenerd || echo GATE_UNAVAILABLE
NO_CONFIG→ 停止并先运行 devinit 技能。CONFIG_ERROR→ 在继续之前修复并验证策略;不要替换为默认值。- 使用
node ${CLAUDE_SKILL_DIR}/../../scripts/install-template.mjs <skill>/templates/<file> <destination>将模板复制到项目中(它从不覆盖)。包含{{placeholders}}的模板会被读取、填充并写入,而不是直接复制。
模式($ARGUMENTS)
| 参数 | 操作说明 |
|---|---|
player / qa / critic [focus] | 一轮审查(具体步骤见下文)。默认模式:nerd.default_mode |
recheck | 仅需重新检查账本中状态为 fix-submitted、still-open 或 regressed 的行 |
status | 按严重性和状态汇总 qa/nerd/ledger.md;不启动审查员 |
setup | 仅执行步骤 1-2:创建审查员文件夹和工具配置 |
你的角色(主代理)
你负责准备、启动和分类。审查员独立工作。
- 切勿将设计意图、游戏设计文档内容、数据、路线图事项或项目规则放入其提示中。将简报写成面向玩家的通知:如何启动、操作方法、本次更新的内容(类似补丁说明风格)。
- 切勿自行关闭其发现。你可以设置
fix-submitted(附带提交记录或说明)。只有审查员在重新检查时,或人类操作员,才能设置verified-fixed;只有人类操作员才能设置wontfix。 - 对某项发现持有异议(“这是设计意图”)由用户决定。将用户决策记录在案。
审查流程
-
审查员文件夹(
paths.nerd,默认为qa/nerd/)。如不存在则创建:ledger.md:install-template.mjs evilvideogamenerd/templates/ledger.md qa/nerd/ledger.md;report-template.md:install-template.mjs evilvideogamenerd/templates/report.md qa/nerd/report-template.md;reports/、screens/、logs/、scripts/(由审查员按需创建)。
审查员无法读取插件文件夹,因此其模板必须存放于此。
-
工具检查。 确定审查员实际可用的工具,并如实说明:
- MCP 播放: 提供带有截图和输入工具的 Godot MCP(推荐 GoPeak;配置位于 stopgen 技能的
setup-mcp中)。player和critic模式需要。 - 混沌测试工具: 检查
<project_dir>/tools/qa/chaos_runner.gd是否存在。如果不存在,提供安装选项(需用户确认):install-template.mjs evilvideogamenerd/templates/chaos_runner.gd <project_dir>/tools/qa/chaos_runner.gd。该工具需要 Godot 二进制文件,不需要图形显示器。 - 无可用工具: 告知用户本轮只能进行部分审查(
qa模式下的代码审查),并询问是否继续。
- MCP 播放: 提供带有截图和输入工具的 Godot MCP(推荐 GoPeak;配置位于 stopgen 技能的
-
会话文件。 写入
qa/nerd/.session.json:{"mode": "...", "round": N, "focus": "...", "capabilities": ["mcp-play", "chaos"], "version": "<process.current_version>", "started": "<ISO date>"}。轮次编号为上一轮次加一(参见reports/目录)。隔离钩子从此文件读取模式。 -
简报 来自 templates/briefing.md:仅包含面向玩家的信息。
-
启动
evil-video-game-nerd子代理(其列出的类型可能带有godot-gamedev:前缀)。传递简报、要写入的报告路径以及“模板位于 qa/nerd/”。每会话最多执行nerd.max_rounds轮次。 -
分类 将报告呈现给用户:
- 阻塞/严重问题 → 当前版本的路线图中“必须做”事项(antislop-game)。
- 其他问题 → 按严重性 × 频率排序,放入路线图或待办列表。
- 被驳回的发现 → 在账本中标记为
wontfix,并附上用户理由。 - 疑似发现和直觉判断 → 在未复现前不予记录。
-
修复,然后重新检查。 修复后,在账本中设置
fix-submitted并运行recheck。最多重复nerd.max_rounds轮次。 -
会话结束时删除
qa/nerd/.session.json。
隔离在此的含义(请如实说明)
- 插件的
nerd-guard钩子仅适用于此子代理。它会阻止读取游戏设计文档、路线图、决策记录、玩家测试报告、AGENTS.md、CLAUDE.md和.gamedev/。在player/critic模式下,仅允许访问docs/player/、qa/nerd/和代理自身记忆,以及仅允许使用播放工具。写入操作仅允许写入qa/nerd/和代理记忆,且绝不允许使用 MCP 工具编辑游戏或在运行时调用方法。 omitClaudeMd需要 Claude Code 2.1.271 或更新版本。它会跳过初始的用户/项目/本地指令;托管策略仍然加载,子目录指令可能在文件被访问时加载。这并不能保证一个完全没有指令的上下文。审查员将项目记忆存储在.claude/agent-memory/…evil-video-game-nerd…/中,或者在代理记忆不可用时存储在qa/nerd/memory.md中。- Bash 过滤是尽力而为,不是沙箱。如果用户需要保证隔离,请告知他们;替代方案是创建一个不包含
docs/的独立代码检出。 docs/player/必须保持无设计意图(gdddocs 规则);否则隔离将从前门泄露出去。
门控
当账本中存在未标记为 verified-fixed 或 wontfix 的阻塞或严重行时,发布候选门控(antislop-game gate)将失败。