Communitygithub.com

EVILVIDEOGAMENERD — l'extérieur qui casse votre jeu

Lance le sous-agent evil-video-game-nerd : un relecteur externe agressif qui joue et stresse le jeu Godot en tant qu'extérieur, sans accès au GDD, à la feuille de route ni aux règles du projet, traque les bugs, plantages, soft-locks, mauvaise UI, mauvais contrôles et mauvaises décisions de jeu, conserve sa propre mémoire et un registre de constats entre les rounds, et revérifie les constats antérieurs. Modes : player (black box, par défaut), qa (lit aussi le code et les logs, exécute le chaos runner), critic (compare le jeu avec ce que promet le texte du store).

Qu'est-ce que EVILVIDEOGAMENERD — l'extérieur qui casse votre jeu ?

Ce skill transforme votre assistant IA en un testeur de jeux vidéo impitoyable et impartial, spécialisé pour les projets Godot. Il lance un sous-agent dédié (evil-video-game-nerd) qui agit comme un joueur externe n'ayant aucune connaissance interne du projet — pas de document de conception (GDD), pas de feuille de route, pas de règles de projet. Cela garantit une perspective fraîche et agressive pour trouver des bugs, plantages, soft-locks, problèmes d'interface, de contrôles ou de conception qui pourraient passer inaperçus aux yeux de l'équipe de développement. Le skill propose trois modes distincts : `player` (test en boîte noire, par défaut), `qa` (accès au code source et aux logs, exécution d'un chaos runner pour des tests de résistance), et `critic` (comparaison du jeu avec les promesses du texte de vente). De plus, un mode `recheck` permet de revérifier les bugs déjà signalés une fois qu'ils sont marqués comme corrigés. Le sous-agent tient à jour un registre des constats (ledger) et conserve sa propre mémoire, ce qui permet un suivi rigoureux sur plusieurs sessions de test. L'isolation est un aspect clé : le sous-agent ne peut pas lire le GDD, la feuille de route, les décisions de conception ni les fichiers de configuration sensibles. Cela empêche les biais et garantit que les retours sont purement basés sur l'expérience d'un utilisateur externe. Le skill est conçu pour fonctionner avec Claude Code, et nécessite l'installation préalable du skill `devinit` pour la configuration. Il s'intègre avec des outils MCP (comme GoPeak) pour interagir avec le jeu Godot, et peut exécuter un chaos runner si un script dédié est installé dans le projet.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait EVILVIDEOGAMENERD — l'extérieur qui casse votre jeu ?

Paramètres du relecteur (en direct)

!node ${CLAUDE_SKILL_DIR}/../../scripts/gate.mjs evilvideogamenerd || echo GATE_UNAVAILABLE

  • NO_CONFIG → arrêtez-vous et exécutez d'abord le skill devinit.
  • CONFIG_ERROR → réparez et validez la politique avant de continuer ; ne substituez pas les valeurs par défaut.
  • Copiez un modèle dans le projet avec node ${CLAUDE_SKILL_DIR}/../../scripts/install-template.mjs <skill>/templates/<fichier> <destination> (il n'écrase jamais). Les modèles avec {{placeholders}} sont lus, remplis et écrits à la place.

Modes ($ARGUMENTS)

ArgumentAction à effectuer
player / qa / critic [focus]Un round de relecture (procédure ci-dessous). Mode par défaut : nerd.default_mode
recheckUn round dont le seul but est de revérifier les lignes du registre ayant le statut fix-submitted, still-open ou regressed
statusRésumez qa/nerd/ledger.md par sévérité et statut ; ne lancez pas le relecteur
setupÉtapes 1–2 uniquement : le dossier du relecteur et les outils

Votre rôle (agent principal)

Vous préparez, lancez et triez. Le relecteur travaille seul.

  • Ne mettez jamais d'intention de conception, de contenu du GDD, de chiffres, d'éléments de la feuille de route ou de règles du projet dans son prompt. Rédigez le briefing comme une note destinée au joueur : comment lancer, contrôles, ce qui a changé dans le style d'un patch note.
  • Ne fermez jamais ses constats. Vous pouvez définir fix-submitted (avec un commit ou une note). Seul le relecteur lors d'un recheck, ou un humain, peut définir verified-fixed ; seul un humain définit wontfix.
  • Être en désaccord avec un constat (« c'est voulu ») est la décision de l'utilisateur. Enregistrez-le avec la décision de l'utilisateur.

Procédure d'un round

  1. Dossier du relecteur (paths.nerd, par défaut qa/nerd/). Créez-le s'il manque :

    • 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/ (créés par le relecteur selon les besoins).

    Le relecteur ne peut pas lire le dossier du plugin, donc ses modèles doivent vivre ici.

  2. Outillage. Déterminez ce que le relecteur peut réellement utiliser et dites-le clairement :

    • MCP play : un MCP Godot avec capture d'écran et outils de saisie est disponible (GoPeak recommandé ; configuration dans le skill stopgen, setup-mcp). Nécessaire pour les modes player et critic.
    • Chaos runner : <project_dir>/tools/qa/chaos_runner.gd existe. Si ce n'est pas le cas, proposez de l'installer (avec l'accord de l'utilisateur) : install-template.mjs evilvideogamenerd/templates/chaos_runner.gd <project_dir>/tools/qa/chaos_runner.gd. Il nécessite le binaire Godot, pas un affichage.
    • Aucun : dites à l'utilisateur que le round ne peut être que partiel (relecture de code qa) et demandez s'il souhaite continuer.
  3. Fichier de session. Écrivez qa/nerd/.session.json : {"mode": "...", "round": N, "focus": "...", "capabilities": ["mcp-play", "chaos"], "version": "<process.current_version>", "started": "<date ISO>"}. Le numéro de round est le précédent plus un (voir reports/). Le crochet d'isolation lit le mode à partir de ce fichier.

  4. Briefing à partir de templates/briefing.md : informations destinées au joueur uniquement.

  5. Lancement du sous-agent evil-video-game-nerd (son type listé peut porter un préfixe godot-gamedev:). Passez le briefing, le chemin du rapport à écrire, et « les modèles sont dans qa/nerd/ ». Jusqu'à nerd.max_rounds rounds par session.

  6. Tri du rapport avec l'utilisateur :

    • Bloquant/Critique → éléments Must de la feuille de route pour la version en cours (antislop-game).
    • Autres → feuille de route ou backlog par sévérité × fréquence.
    • Constats rejetés → registre wontfix avec la raison de l'utilisateur.
    • Constats suspectés et intuitions → rien tant qu'ils ne sont pas reproduits.
  7. Correction, puis re-vérification. Après les corrections, définissez fix-submitted dans le registre et exécutez recheck. Répétez jusqu'à nerd.max_rounds.

  8. Supprimez qa/nerd/.session.json lorsque la session se termine.

Ce que l'isolation signifie ici (soyez honnête à ce sujet)

  • Le crochet nerd-guard du plugin s'applique uniquement à ce sous-agent. Il bloque la lecture du GDD, de la feuille de route, des décisions, des playtests, de AGENTS.md, CLAUDE.md et .gamedev/. En mode player/critic, il autorise uniquement docs/player/, qa/nerd/ et sa mémoire, et uniquement les outils de jeu. Il autorise les écritures uniquement dans qa/nerd/ et sa mémoire, et jamais les outils MCP qui modifient le jeu ou appellent des méthodes à l'exécution.
  • omitClaudeMd nécessite Claude Code 2.1.271 ou plus récent. Il ignore les instructions initiales de l'utilisateur/projet/local ; la politique gérée se charge toujours, et les instructions de sous-répertoires peuvent se charger lorsque les fichiers sont accédés. Cela ne garantit pas un contexte sans instructions. Le relecteur conserve la mémoire du projet dans .claude/agent-memory/…evil-video-game-nerd…/, ou qa/nerd/memory.md lorsque la mémoire d'agent n'est pas disponible.
  • Le filtrage Bash est au mieux, pas un bac à sable. Dites-le à l'utilisateur s'il a besoin d'une isolation garantie ; l'alternative est un checkout séparé sans docs/.
  • docs/player/ doit rester exempt d'intention de conception (règle gdddocs) ; sinon l'isolation fuit par la porte d'entrée.

Barrières (Gates)

La barrière de release-candidate (antislop-game gate) échoue tant que le registre contient des lignes Bloquant ou Critique qui ne sont pas verified-fixed ou wontfix.

Skills associés