Claude Codeがゲーム作成を拒否:許可範囲と対処法

Anthropicは、オリジナルのゲーム、特定のジャンルのゲーム、自分の設計と素材を使ったゲームの開発支援を継続する想定だと説明しています。Opus 5.5で確認された範囲を押さえ、権利を明示し、誤った拒否を報告する手順をまとめます。issue #106167の11月4日の更新、挙動の変化を検出する小さな検証スクリプト、同じ課題で別モデルを比較する方法も含みます。

目次
Claude Codeがゲーム作成を拒否:許可範囲と対処法

Claude Codeがゲーム作成を拒否したら、まず特定の既存ゲームの再現を求めていないか確認してください。オリジナルの作品なら、設計と素材の権利を明確にして小さな作業を再依頼し、再現できる誤った拒否を報告します。Anthropicは、オリジナルのゲームや特定のジャンルのゲームについて、開発支援を継続する想定だと説明しています。

プロンプト、モデル、設定を変える前に、実際に返された拒否の文面を保存してください。権利関係の誤解による拒否なのか、より広い挙動の変化なのかを区別するために必要な記録です。最初の拒否文と、権利を説明した後の応答を別々に残せば、何を変えたか追跡できます。

何が変わり、tengu_heron_brookは何を指すのか

2026-11-05時点でAnthropicが確認したのは、Opus 5.5で使うClaude Codeのプロンプトに追加した2文です。すべてのClaudeモデルや、APIを直接呼び出す場合にも同じ指示が適用されると確認されたわけではありません。

報告されたルールは、Game Developerの10月30日の記事に掲載されています。日本語に訳すと、次の内容です。

オリジナルのゲーム、特定のジャンルのゲーム、ユーザー自身の設計と素材を使ったゲームを作成してください。名前を変えたりオリジナルと呼んだりしても、特定の既存ゲームを再現してはいけません。

AnthropicのAddy Osmaniは、10月30日の声明でプロンプトの変更を認めました。目的は、Claudeを使った知的財産権の侵害を防ぐことだと説明しています。

Osmaniは、オリジナルのゲーム、特定のジャンルのゲーム、自分の設計と素材を使ったゲームへの支援は継続する想定だと述べています。Game Developerによると、Anthropicの広報担当者も同誌にこの声明を案内しました。

Chasmの最初の報告では、10月27日ごろからサーバー配信のフィールドtengu_heron_brookを通じて変更が届いたとされています。Chasmは、このルールを無効にする設定はないとも報告しました。

これらの実装上の詳細は、各発信者による報告として扱う必要があります。tengu_heron_brookは不具合報告の背景情報として使い、正式にサポートされた設定キーだとは考えないでください。Osmaniの声明は目的と対象モデルの文脈を確認するものです。ユーザー向けの無効化スイッチや、例外を認めてもらうための詳しい手順は示していません。

どのようなゲーム開発が想定範囲に入るのか

プロンプトを変える前に、実際の作業内容と、それを行う権利を整理してください。声明は想定する動作を説明したものであり、条件に合う依頼が必ず成功するという保証ではありません。

プロジェクト声明から確認できること次に行うこと
自分の設計と素材を使うオリジナルのゲーム支援を継続する想定です具体的な設計内容と、範囲を絞った開発作業を提示します。
プラットフォームゲームやデッキ構築ゲームなど、特定ジャンルの試作支援を継続する想定です独自の仕組み、レベル、文章、視覚素材を具体的に示します。
自分のスタジオが持つ既存ゲームの開発自分の設計と素材に関する説明が参考になります自分の役割と、スタジオが管理する素材を説明します。
顧客向けの改変、移植、MOD声明には一律の例外は記されていません許諾の内容、範囲、第三者の素材の有無を説明します。
特定の既存ゲームの再現。名前を変えた場合も含みます報告されたルールが明示的に拒否する区分です作業範囲と権利を整理します。呼び方を変えるだけでは解決しません。

ジャンルを指定したうえで、自分の作品の仕様へ落とし込んでください。他のゲームのレベルや表現を、新しい名前を付けて再現する依頼は、依然として既存ゲームの再現に当たります。

範囲を絞ったオリジナル作品なら、Unrealでプレイ可能なレベルを作る手順が出発点になります。設計、素材の出所、完成を判断する確認項目を明確にしてください。

自分のゲームが拒否されたらどうするか

設計と素材の出所を具体的に伝え、小さな開発作業を依頼してください。依頼内容が明確なら、自分のプロジェクトと、他者のゲームを再現する依頼との違いを説明しやすくなります。

次の設計を実際に自分で考えた開発者なら、このような依頼文を使えます。雨水を六角形の区画へ分配するゲームについて、関数とテストだけを求める例です。

Project: Lantern Orchard, an original browser game.
Design: players route rainwater between hexagonal garden plots.
Task: write a pure JavaScript function that distributes water equally
between connected plots, with tests for empty and single-plot inputs.
Assets: use colored geometric placeholders only.
Rights: I created this design; no third-party game assets are required.
Scope: return the function and tests as text.
If a rights detail is unclear, ask a specific question.

この例では、関数とテストをテキストで返すところまでに作業を限定しています。表示用の素材は色付きの幾何学図形だけにし、第三者のゲーム素材は必要ないと明示しています。自分のプロジェクトに使う場合は、実際の設計、素材、権利に合う依頼内容にしてください。

プロジェクトの説明には事実を書いてください。自分で作成しておらず、利用する権利も取得していない素材に、この所有権の説明を当てはめてはいけません。

顧客の作業を請け負っているという説明だけで済ませず、誰が権利を持ち、どの作業まで許可されているかを書いてください。許諾の対象となる素材も特定します。素材の利用だけでなく改変も認められているか、完成物を誰に配布する予定なのかも説明してください。

購入の領収書とパブリッシャーの許諾は、証明する内容が異なります。たとえば、米国著作権法は物理的な複製物の所有と著作権の所有を区別しています。

よく参照されるGitHub issue #106167も、この区別を踏まえて読む必要があります。投稿者であるConflict Simulations LLCのlerugrayは、10月30日に最初の説明を訂正しました。当初の受託案件はパブリッシャーのライセンスを受けていませんでした。顧客は購入したゲームを所有し、素材を提供していました。

11月4日、投稿者は両方の案件についてパブリッシャーから書面の許諾を得たと報告しました。その更新では、Claude Codeが2件目の案件の作業停止を解除したと述べています。また、両案件で拒否の問題が解決したとも説明しています。

これは、追加の許諾を提示した後に作業を再開できたという開発者本人の報告です。公式な例外制度の存在を示すものではなく、別のプロジェクトでも同じ結果になる保証はありません。

権利が明確なら、同じ正確なプロジェクト説明を使い、新しいセッションで範囲を絞った作業を再依頼してください。所有者やライセンスに関する重要な情報は残します。まだ拒否される場合は、その応答も保存して報告してください。成功したら実際のプロジェクトを代表する作業に進み、結果を確認してから対象範囲を広げます。

誤った拒否はどう報告するか

機密情報を含まない最小限の再現例を用意し、問題が起きたセッションで/bugを実行してください。現在のコマンドリファレンスには、セッション履歴をどこまで含めるか選べると記載されています。送信前には、同意画面で確認する必要もあります。

Anthropicへ直接接続し、Anthropicの認証を済ませている場合、報告はAnthropicに送信されます。第三者のプロバイダーを使っている場合や、Anthropicの認証情報がない場合は、動作が異なります。Claude Codeは~/.claude/feedback-bundles/にローカルのアーカイブを作成します。そのアーカイブは自分で転送する必要があります。

再現に必要な情報を含めてください。

  • UTCでの発生日時、claude --versionの出力、要求したモデル、アカウントとプロバイダーの接続経路。
  • 実際に使ったプロンプトと拒否文、それに関連する最小限のプロジェクト例。
  • オリジナル素材、ライセンスを取得した素材、顧客の許諾を区別した、簡潔な権利の説明。
  • 期待する成果物と、新しいセッションでも同じ依頼が失敗するかどうか。

契約書、認証情報、顧客を特定できる素材を公開issueに掲載しないでください。公開できない証拠は、適切な非公開のサポート窓口で共有します。

再現例がissue #106167と一致するなら、そのissueに関連する記録を追加してください。別の問題なら、リポジトリのissueテンプレートを使って、対象を絞った報告を作成します。

Osmaniも、ユーザー自身の作品に関する依頼が拒否された場合は知らせてほしいと呼びかけています。上記の10月30日の声明が、その連絡の手掛かりになります。ただし、確認期限や自動的な承認を約束したものではありません。

CLIの更新なしで起きる変化をどう検出するか

小さく再現可能な検証を繰り返し、時系列で結果を比較してください。CLIのバージョンが同じというだけでは、挙動も変わっていないとは判断できません。

アカウント、プロバイダーへの接続経路、プロジェクトのリビジョン、指示、権限、関連設定を固定します。要求したモデルと、応答に含まれるモデル情報を別々に記録してください。接続経路も残しておけば、同じモデル名を指定していても、異なる環境で実行した結果を混同せずに比較できます。

claude-opus-5-5のような完全なモデルIDを使うと、エイリアスの変更で要求するバージョンが変わることを避けられます。設定方法はOpus 5.5の選択ガイドで説明しています。

次のBashスクリプトは、小さなオリジナルゲームの依頼と、ゲーム以外の似た依頼を比較します。プロンプト、応答、エラー、終了コード、CLIのバージョン、開始時刻を保存します。同じ関数とテストを求め、ゲームという文脈の有無を変えた比較です。

ゲーム側では、自分で設計したオリジナル作品であり、幾何学図形の仮素材だけを使うと説明しています。比較側では、オリジナルのカウンターアプリと説明します。どちらも同じJavaScript関数と同じ入力のテストを求めるため、比較する条件を揃えやすくなります。

認証済みのClaude Code環境を使い、事前にjqをインストールしてください。設定を確認済みの、管理された検証用プロジェクトのディレクトリから実行します。ツール禁止フラグは、モデルからのツール呼び出しを止めます。ただし、設定済みの起動時フック、つまりセッション開始時に動く処理は、引き続き実行される場合があります。

次の例をgame-probe.shとして保存し、bash game-probe.shを実行してください。

#!/usr/bin/env bash
set -eu
umask 077

probe_model="${PROBE_MODEL:-claude-opus-5-5}"
probe_dir=$(mktemp -d "${TMPDIR:-/tmp}/claude-game-probe.XXXXXX")
date -u +%FT%TZ > "$probe_dir/start-utc.txt"
claude --version > "$probe_dir/cli-version.txt"
printf '%s\n' "$probe_model" > "$probe_dir/requested-model.txt"

for probe_case in game control; do
  case "$probe_case" in
    game) probe_context='This is an original game using my own design and geometric placeholder assets.' ;;
    control) probe_context='This is an original counter application.' ;;
  esac
  probe_prompt="$probe_context Write a JavaScript increment(value) function that returns value + 1. Include tests for 0, 1, and -1. Return code as text."
  printf '%s\n' "$probe_prompt" > "$probe_dir/$probe_case.prompt.txt"
  if CLAUDE_CODE_EFFORT_LEVEL=medium claude -p "$probe_prompt" \
    --model "$probe_model" --disallowedTools "*" \
    --output-format json </dev/null \
    > "$probe_dir/$probe_case.json" \
    2> "$probe_dir/$probe_case.stderr.txt"; then
    probe_exit=0
  else
    probe_exit=$?
  fi
  printf '%s\n' "$probe_exit" > "$probe_dir/$probe_case.exit.txt"
done

printf 'Evidence directory: %s\n' "$probe_dir"
jq '{file: input_filename, subtype, is_error, stop_reason, modelUsage, result, errors}' \
  "$probe_dir/game.json" "$probe_dir/control.json"

CLIリファレンスには、モデルの選択とツール制御の設定が記載されています。プログラムからの実行ガイドでは、非対話モード、JSON出力、結果の取得方法を確認できます。

スクリプトが表示する保存先を確認し、ゲーム側と比較側の記録を開いてください。そこにはプロンプト、JSON応答、stderr、終了コードがそれぞれ保存されます。最後のjqは、JSONから判定に使う項目を抜き出して表示する処理です。元の応答も残るため、後日の実行結果と内容を照合できます。

このコマンドには--continueも--resumeも指定していません。CLAUDE_CODE_EFFORT_LEVELの値としてmediumを要求します。組織のポリシーも同じ状態に保ってください。

スクリプトは、記録を保存するための一時ディレクトリを作成します。TMPDIRを設定する場合は、検証用プロジェクト外のディレクトリを指定してください。保存した応答によって、検証対象のリポジトリの内容が変わらないようにするためです。

要求した関数とテストが返った場合にだけ、依頼に応じたと判定してください。期待する計算結果は、0から1、1から2、-1から0です。生成されたコードは、実行前に内容を確認します。

保存した記録は、次の順序で確認してください。

  1. 実行の失敗を確認します。 JSONがない場合や不正な場合は、保存したstderrと終了コードを調べてください。認証の失敗や未対応のフラグは、拒否とは分けて原因を調べる必要があります。両方の依頼が失敗しているなら、ゲームの内容だけに原因を絞らず、共通の認証や実行環境も確認してください。
  2. 応答の内容を読みます。 終了コードが0でも、依頼に応じたことの証明にはなりません。stop_reasonがあれば確認し、resultを読んで、通常の文章での拒否や依頼に答えていない応答がないか調べます。
  3. モデル情報を確認します。 JSON出力では、要求したモデルが別のモデルに置き換わったという警告が表示されません。その場合はmodelUsageを見るよう、モデル設定リファレンスが案内しています。追加のモデル名が記録されていたら調査してください。内部呼び出しが含まれることもあるため、それだけで最終回答を生成したモデルは特定できません。
  4. 基準となる結果と比較します。 依頼に応じた、拒否された、追加の説明が必要、実行エラーという結果を分けて記録します。新たな拒否が出た場合は、問題として報告する前に再実行して確認してください。

小規模なチームなら、毎日の実行と、意図的に設定を変更した後の実行から始めるとよいでしょう。以前は応じていた許容範囲内の依頼を繰り返し拒否する一方、比較用の依頼は動く場合に変化を調べます。変化が出た直後に基準結果を書き換えず、以前の記録を保存してください。

このスクリプトが検出するのは、限定された作業での挙動の変化です。tengu_heron_brook自体が変更されたと証明することはできません。また、この検証に成功しても、ゲーム開発の全工程が問題なく動くと確認したことにはなりません。

自分の設計や適切なライセンスのある素材を使い、実際のプロジェクトを代表する作業も追加してください。その後、ゲームエンジンでの動作確認やビルドの検証を行います。実行するたびにアカウントの利用量が発生するため、検証項目を少なく保ち、実行時間にも上限を設けてください。

別のモデルをどう検証するか

必要な権利を確認した同じ作業を、同じ合格基準で別のモデルに依頼してください。別のモデルが回答するという事実だけで、他者のゲームを再現する許可があるとは判断できません。

アカウント、プロバイダー、組織の設定でSonnet 5.5の利用が認められている場合は、保存した検証をBashで再実行します。

PROBE_MODEL=claude-sonnet-5-5 bash game-probe.sh

Anthropicのモデル設定ヘルプには、両モデルのIDが記載されています。対話形式で作業する場合は、/modelで利用可能なモデルを選び、/statusで現在の選択を確認してください。比較する前に、元のセッションと検証記録を保存します。

別のプロバイダーを使う場合、OpenCodeのモデル選択ドキュメントに対話形式の手順があります。/connectを実行してプロバイダーの認証を完了し、/modelsで利用可能なモデルを選択してください。

権利を明確にした同じ依頼文を送り、同じテストを適用します。この結果は、クライアントとプロバイダーを変えた別の検証として記録してください。モデルだけでなく、利用するソフトウェアや接続先も変わる比較だからです。

すでにBetterTokenを使っているチーム向けには、OpenCode設定ガイドが用意されています。同ガイドでは、https://www.bettertoken.ai/v1を使うOpenAI互換プロバイダーを説明しています。このAPI経由の利用は、Claudeのサブスクリプションとは別です。

ANTHROPIC_BASE_URLだけを変えても、変わるのはリクエストの送信先であり、回答するモデルの選択ではありません。モデルを明示的に指定し、返されたモデル情報を確認してください。

コードが使えるか、誤った拒否がないか、ツールの挙動、応答時間、実際に課金された利用量を比較します。回答を得られたことと、成果物を実際に使えることは分けて確認してください。小さな関数の依頼に応じても、対象エンジンで動くか、ビルドが通るかは、そのプロジェクトの作業で検証します。コードレビューと、代表的な作業でのゲームエンジンやビルドの検証に合格してから、代替手段を採用してください。

権利関係に未解決の点がある場合は、その確認を続けます。回答するモデルが見つかるまで、自動的に依頼を転送し続ける運用にはしないでください。

LLM ワークフローを最適化しませんか?

単一 API でモデルを接続し、キーと AI コストを管理できます。

無料で始める