Communitygithub.com

mallardask-ops/evilvideogamenerd

启动恶毒视频游戏宅男(evil-video-game-nerd)子代理:一位极具攻击性的外部审查员,在不了解游戏设计文档、路线图或项目规则的情况下,以局外人身份游玩并压力测试 Godot 游戏,寻找 Bug、崩溃、软锁、不良 UI、不良操作和薄弱设计决策,跨轮次维护自身记忆和发现账本,并重新检查早期发现。

evilvideogamenerd 是什么?

该技能启动一个独立的“恶毒视频游戏宅男”子代理,对 Godot 游戏项目执行黑盒(玩家视角)和灰盒(QA,可读取代码和日志)审查。它模拟一名毫无背景、完全外行的玩家,不接受任何游戏设计文档或项目内部信息,从而避免了角色偏见。该设计规定了三种模式:玩家模式(黑盒测试)、QA 模式(可额外访问代码/日志并运行混沌测试工具)和评论家模式(对照商店宣传文案对比游戏实际表现)。跨轮次审查通过一个持久化的发现账本(ledger.md)实现,该账本记录新发现的 Bug、已确认的修复和回归问题。该技能还包含一个验证门控(gate),如果账本中仍有未解决的阻塞或严重问题,则会阻止发布候选版本的推进,从而在开发流程中强制执行质量关卡。需要 Claude Code(版本 ≥ 2.1.271)和 Godot MCP(例如 GoPeak)以实现自动化播放。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mallardask-ops/ultimate-antislop-game/tree/HEAD/godot-skills/skills/evilvideogamenerd

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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。
  • 对某项发现持有异议(“这是设计意图”)由用户决定。将用户决策记录在案。

审查流程

  1. 审查员文件夹(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/(由审查员按需创建)。

    审查员无法读取插件文件夹,因此其模板必须存放于此。

  2. 工具检查。 确定审查员实际可用的工具,并如实说明:

    • 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 模式下的代码审查),并询问是否继续。
  3. 会话文件。 写入 qa/nerd/.session.json:{"mode": "...", "round": N, "focus": "...", "capabilities": ["mcp-play", "chaos"], "version": "<process.current_version>", "started": "<ISO date>"}。轮次编号为上一轮次加一(参见 reports/ 目录)。隔离钩子从此文件读取模式。

  4. 简报 来自 templates/briefing.md:仅包含面向玩家的信息。

  5. 启动 evil-video-game-nerd 子代理(其列出的类型可能带有 godot-gamedev: 前缀)。传递简报、要写入的报告路径以及“模板位于 qa/nerd/”。每会话最多执行 nerd.max_rounds 轮次。

  6. 分类 将报告呈现给用户:

    • 阻塞/严重问题 → 当前版本的路线图中“必须做”事项(antislop-game)。
    • 其他问题 → 按严重性 × 频率排序,放入路线图或待办列表。
    • 被驳回的发现 → 在账本中标记为 wontfix,并附上用户理由。
    • 疑似发现和直觉判断 → 在未复现前不予记录。
  7. 修复,然后重新检查。 修复后,在账本中设置 fix-submitted 并运行 recheck。最多重复 nerd.max_rounds 轮次。

  8. 会话结束时删除 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)将失败。

相关技能