Claude Code refuse de créer des jeux : ce que permet la règle

Anthropic indique que Claude Code doit continuer à aider pour les jeux originaux, les projets d’un genre donné et les jeux fondés sur vos propres designs et ressources. Vérifiez le périmètre confirmé pour Opus 5.5, précisez les droits, signalez les refus injustifiés et préparez un test de régression. Inclut le suivi du 4 novembre de l’issue #106167 et une comparaison contrôlée avec un second modèle.

Sommaire
Claude Code refuse de créer des jeux : ce que permet la règle

Si Claude Code refuse de créer un jeu, vérifiez d’abord si votre demande vise à recréer un titre précis déjà existant. Pour un projet original, précisez vos droits sur le design et les ressources, réessayez une petite tâche et signalez tout refus injustifié reproductible. Selon Anthropic, les jeux originaux et les projets d’un genre donné doivent rester pris en charge.

Conservez le texte exact du refus avant de modifier le prompt, le modèle ou la configuration. Il vous aidera à distinguer un malentendu sur les droits d’un changement de comportement plus général.

Qu’est-ce qui a changé et qu’est-ce que tengu_heron_brook ?

Au 2026-11-05, Anthropic a confirmé l’ajout de deux phrases au prompt de Claude Code pour Opus 5.5. Cela ne démontre pas que tous les modèles Claude ou tous les appels directs à l’API reçoivent la même instruction.

Le texte de la règle, repris dans l’article de Game Developer du 30 octobre, se traduit ainsi :

Créez des jeux originaux, des jeux d’un genre donné et des jeux fondés sur les designs et ressources propres à l’utilisateur. Ne recréez pas un jeu existant précis, même s’il est renommé ou présenté comme original.

Dans sa déclaration du 30 octobre, Addy Osmani, d’Anthropic, a confirmé le changement du prompt. Il a expliqué que celui-ci vise à éviter les atteintes à la propriété intellectuelle.

Selon lui, les jeux originaux, les jeux d’un genre donné et ceux utilisant les designs et ressources propres à l’utilisateur doivent rester possibles. Game Developer précise qu’un porte-parole d’Anthropic a orienté sa rédaction vers cette déclaration.

Le premier message de Chasm attribue ce changement à un champ nommé tengu_heron_brook, envoyé par le serveur vers le 27 octobre. Chasm indique aussi qu’aucun réglage ne permet de désactiver la règle.

Ces détails techniques restent attribués aux sources citées. Mentionnez tengu_heron_brook pour contextualiser un rapport d’erreur, sans le considérer comme une clé de configuration prise en charge. La déclaration d’Osmani confirme l’objectif et le modèle concernés. Elle ne fournit ni réglage de désactivation ni procédure détaillée pour obtenir une exception.

Quels projets restent dans le périmètre annoncé ?

Identifiez le travail demandé et les droits qui le couvrent avant de modifier votre prompt. La déclaration décrit le comportement prévu ; elle ne garantit pas la réussite de chaque demande correspondante.

ProjetCe qu’indique la déclarationProchaine étape utile
Un jeu original avec votre propre design et vos ressourcesL’aide doit rester possibleFournissez une description concrète du design et une tâche technique délimitée.
Un prototype de genre, comme un jeu de plateforme ou de construction de deckL’aide doit rester possibleDéfinissez vos propres mécaniques, niveaux, textes et ressources visuelles.
Le développement d’un jeu existant de votre studioÀ rapprocher de la précision sur vos propres designs et ressourcesExpliquez votre rôle et identifiez les ressources contrôlées par votre studio.
Une adaptation, un portage ou un mod pour un clientAucune exception générale n’est décrite dans la déclarationExpliquez l’autorisation, sa portée et les ressources tierces utilisées.
La recréation d’un jeu existant précis, y compris sous un autre nomLa règle rapportée rejette explicitement cette catégorieClarifiez le périmètre et les droits du projet ; changer son nom ne résout pas le problème.

Décrivez le genre, puis rédigez vos propres spécifications. Demander les niveaux et la présentation d’un autre jeu sous un nouveau nom décrit toujours une recréation.

Pour un projet original délimité, le guide de création d’un niveau jouable dans Unreal fournit un point de départ utile. Précisez le design, l’origine des ressources et les critères de validation.

Que faire si votre propre jeu est refusé ?

Expliquez d’où viennent le design et les ressources, puis demandez une petite tâche technique. Une description claire aide à distinguer votre projet d’une demande visant à reproduire le jeu de quelqu’un d’autre.

Pour le développeur qui a créé le design ci-dessous, une demande adaptée serait :

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.

Présentez votre projet fidèlement. N’utilisez pas cette déclaration pour des ressources que vous n’avez pas créées et que vous n’avez pas le droit d’utiliser.

Pour une mission client, identifiez le titulaire des droits et l’autorisation qui couvre la tâche demandée. Précisez quelles ressources elle couvre, si elle autorise l’adaptation et comment le résultat sera distribué. Un reçu d’achat et l’autorisation d’un éditeur établissent des faits différents. Par exemple, la loi américaine distingue la propriété d’une copie physique de celle des droits d’auteur.

L’issue #106167 sur GitHub, souvent citée, doit se lire avec cette distinction. Son auteur, lerugray, de Conflict Simulations LLC, a corrigé la description initiale le 30 octobre. Les missions n’étaient initialement pas couvertes par une licence des éditeurs ; les clients possédaient des copies des jeux et fournissaient les ressources.

Le 4 novembre, l’auteur a indiqué avoir obtenu l’autorisation écrite des éditeurs pour les deux missions. Dans ce suivi, il a déclaré que Claude Code avait levé le blocage de la seconde mission. Il a aussi indiqué que le problème était résolu pour les deux missions.

Il s’agit du récit d’un développeur qui a pu reprendre ses travaux après avoir fourni des autorisations supplémentaires. Ce récit ne démontre pas l’existence d’un programme officiel d’exceptions et ne garantit pas le même résultat ailleurs.

Si vos droits sont clairs, réessayez la tâche délimitée dans une nouvelle session avec la même description exacte du projet. Conservez les informations pertinentes sur la titularité et les licences. Si le refus persiste, gardez la réponse et signalez le cas. Si la tâche réussit, poursuivez avec un travail représentatif du projet et vérifiez le résultat avant d’élargir le périmètre.

Comment signaler un refus injustifié ?

Préparez un exemple minimal sans données sensibles, puis utilisez /bug dans la session concernée. La référence actuelle des commandes explique comment choisir la quantité d’historique à inclure. Un écran de consentement demande aussi une confirmation avant tout envoi.

Sur une connexion directe authentifiée auprès d’Anthropic, le rapport est envoyé à Anthropic. Avec un fournisseur tiers, ou sans identifiants Anthropic, Claude Code crée une archive locale dans ~/.claude/feedback-bundles/. Vous devez transmettre cette archive vous-même.

Incluez assez d’informations pour reproduire le problème :

  • La date et l’heure en UTC, la sortie de claude --version, le modèle demandé, le compte et le chemin d’accès au fournisseur.
  • Le prompt et le refus exacts, ainsi que le plus petit exemple pertinent du projet.
  • Un résumé des droits distinguant les ressources originales, celles sous licence et l’autorisation du client.
  • Le résultat attendu et l’éventuelle reproduction du refus dans une nouvelle session.

Ne publiez pas de contrats, d’identifiants ni de ressources identifiant un client dans une issue publique. Pour les éléments confidentiels, utilisez un canal privé de support adapté.

Si votre exemple correspond à l’issue #106167, ajoutez-y les éléments pertinents. Sinon, créez un rapport ciblé avec le modèle de signalement du dépôt.

Osmani invite aussi à lui transmettre les refus portant sur les créations appartenant à l’utilisateur. Sa déclaration du 30 octobre contient cette invitation à le contacter. Elle ne promet ni délai de traitement ni approbation automatique.

Comment détecter un changement sans mise à jour de la CLI ?

Exécutez une petite évaluation reproductible et comparez les résultats dans le temps. Une version inchangée de la CLI ne prouve pas que le comportement reste identique.

Maintenez constants le compte, le chemin d’accès au fournisseur et la révision du projet. Conservez aussi les instructions, les autorisations et les réglages pertinents. Enregistrez le modèle demandé et les métadonnées de modèle renvoyées. Utilisez un ID complet, tel que claude-opus-5-5, pour éviter qu’un alias change la version demandée. Le guide de sélection d’Opus 5.5 détaille cette configuration.

Le script Bash suivant compare une petite demande liée à un jeu original avec une demande similaire sans contexte de jeu. Il enregistre le prompt, la réponse, les erreurs, le code de sortie, la version de la CLI et l’heure de début.

Utilisez une installation de Claude Code dont l’authentification est déjà configurée et installez jq avant le test. Exécutez le script dans le dossier d’un projet de test contrôlé, après vérification de sa configuration. L’option de blocage empêche le modèle d’appeler les outils. Les actions de démarrage configurées, ou hooks, peuvent toutefois encore s’exécuter.

Enregistrez cet exemple dans game-probe.sh, puis lancez 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"

La référence de la CLI décrit les options de choix du modèle et de contrôle des outils. Le guide d’utilisation programmatique présente le mode non interactif, la sortie JSON et la lecture du résultat.

La commande n’inclut ni --continue ni --resume. Elle demande un niveau d’effort medium par CLAUDE_CODE_EFFORT_LEVEL. Maintenez aussi les politiques de l’organisation sans changement.

Le script crée un dossier temporaire pour les données du test. Si vous définissez TMPDIR, faites-le pointer vers un dossier extérieur au projet de test. Les réponses enregistrées ne modifieront ainsi pas le contenu du dépôt.

Classez la réponse comme acceptée seulement si elle contient la fonction et les tests demandés. La fonction doit renvoyer 1 pour 0, 2 pour 1 et 0 pour -1. Relisez le code généré avant de l’exécuter.

Interprétez les résultats dans cet ordre :

  1. Vérifiez les erreurs d’exécution. Si le JSON manque ou est invalide, examinez le flux stderr enregistré et le code de sortie. Les échecs d’authentification et les options non prises en charge nécessitent une analyse distincte.
  2. Lisez la réponse. Un code de sortie nul ne prouve pas que la tâche a été acceptée. Consultez stop_reason lorsqu’il est présent, puis lisez result pour repérer un refus en langage courant ou une demande sans réponse.
  3. Vérifiez les métadonnées du modèle. La sortie JSON masque les avertissements de remplacement automatique du modèle. La référence de configuration des modèles recommande donc de consulter modelUsage. Des entrées pour plusieurs modèles méritent un examen. Elles peuvent comptabiliser des appels internes et ne suffisent pas à identifier le modèle à l’origine de la réponse finale.
  4. Comparez avec le résultat de référence. Distinguez les demandes acceptées, les refus, les besoins de précisions et les erreurs d’exécution. Répétez le test avant de faire remonter un nouveau refus.

Une petite équipe peut commencer par une exécution quotidienne. Ajoutez-en une après une modification délibérée de configuration. Analysez les cas où une demande autorisée passe plusieurs fois d’acceptée à refusée alors que la demande témoin fonctionne toujours. Conservez les anciens résultats au lieu de remplacer immédiatement la référence.

Ce test porte sur un cas précis. Il ne prouve pas que tengu_heron_brook a changé, et sa réussite ne valide pas tout un processus de développement de jeux. Ajoutez une tâche représentative avec vos propres designs ou des ressources disposant des licences appropriées. Vérifiez ensuite le résultat dans le moteur ou lors de la compilation. Chaque exécution augmente l’utilisation de votre compte. Gardez donc les tests peu nombreux et limitez leur durée.

Comment valider un second modèle ?

Comparez un second modèle sur le même travail autorisé, avec les mêmes tests d’acceptation. Le fait qu’un autre modèle réponde ne prouve pas que vous avez le droit de reproduire le jeu de quelqu’un d’autre.

Si votre compte, votre fournisseur et votre organisation autorisent Sonnet 5.5, relancez le test enregistré dans Bash :

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

L’aide d’Anthropic sur la configuration des modèles documente les deux IDs. En mode interactif, sélectionnez un modèle disponible avec /model et vérifiez le choix actuel avec /status. Conservez la session initiale et les résultats avant de comparer les modèles.

Pour un autre fournisseur, la documentation de sélection des modèles d’OpenCode décrit la procédure interactive. Exécutez /connect et terminez l’authentification auprès du fournisseur. Choisissez ensuite un modèle disponible avec /models.

Envoyez la même description avec les droits clarifiés et utilisez les mêmes tests. Enregistrez cet essai séparément avec le client et le fournisseur utilisés, car le modèle n’est pas le seul élément modifié.

Pour les équipes qui utilisent déjà BetterToken, son guide de configuration d’OpenCode décrit un fournisseur compatible avec l’API OpenAI à l’adresse https://www.bettertoken.ai/v1. Cet accès par API est distinct d’un abonnement Claude.

Changer uniquement ANTHROPIC_BASE_URL modifie le routage, pas le modèle qui répond. Choisissez le modèle explicitement et vérifiez les métadonnées renvoyées.

Comparez l’utilité du code, les refus injustifiés, le comportement des outils, la latence et la consommation réellement facturée. Adoptez l’alternative seulement après une revue du code et des vérifications représentatives réussies dans le moteur ou lors de la compilation. Continuez à examiner les questions de droits non résolues. Ne redirigez pas automatiquement la demande jusqu’à trouver un modèle qui l’accepte.

Prêt à optimiser votre workflow LLM ?

Connectez vos modèles via une API unique, gérez les clés et maîtrisez vos dépenses d’IA.

Commencer gratuitement