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:審查者的資料夾與工具 |
你的角色(主代理)
你負責準備、啟動與分類。審查者獨立工作。
- 絕對不要 將設計意圖、GDD 內容、數字、路線圖項目或專案規則放入其提示中。請以玩家導向的備註方式撰寫簡報:如何啟動、控制方法、以及以補丁說明風格說明有哪些改變。
- 絕對不要 關閉其發現。你可以設定
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鉤子僅適用於此子代理。它會阻止讀取 GDD、路線圖、決策、遊戲測試、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)會失敗。