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が存在するか確認。存在しない場合は、インストールするよう提案(ユーザーOKの場合):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>"}。ラウンド番号は前回のものに1を足したもの(reports/を参照)。隔離フックはこのファイルからモードを読み取ります。 -
ブリーフィング templates/briefing.md から:プレイヤー向け情報のみ。
-
起動
evil-video-game-nerdサブエージェントを起動(リスト上のタイプにgodot-gamedev:プレフィックスが付く場合あり)。ブリーフィング、レポートの書き込み先パス、「テンプレートは qa/nerd/ にあります」を渡します。セッションあたり最大nerd.max_roundsラウンドまで。 -
トリアージ レポートをユーザーと一緒に実施:
- Blocker/Critical → 現在のバージョン(antislop-game)のロードマップ Must 項目に。
- その他 → 重要度×頻度でロードマップまたはバックログに。
- 却下された発見 → 台帳に
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ルール)。そうしないと隔離が正面玄関から漏れます。
ゲート
リリース候補ゲート(antislop-game gate)は、台帳に verified-fixed または wontfix ではない Blocker または Critical 行が存在する場合に失敗します。