Skip to main content

phaser-automation-kit

Quick reference for Phaser game automation with agent-browser. Skip DOM snapshots and use window.__TEST__ directly. Use when automating Phaser 3 games, testing canvas/WebGL applications, or working with game state inspection. Trigger: "phaser automation", "test phaser", "game automation", "window.__TEST__", "skip snapshot".

Informations de source

Dépôt
pmarashian/cursor-agent-skills
Dernière activité de la source
13 février 2026 à 19:51
Langue détectée de SKILL.md
anglais
Étoiles
2
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
phaser-automation-kit
description
Quick reference for Phaser game automation with agent-browser. Skip DOM snapshots and use window.__TEST__ directly. Use when automating Phaser 3 games, testing canvas/WebGL applications, or working with game state inspection. Trigger: "phaser automation", "test phaser", "game automation", "window.__TEST__", "skip snapshot".
# Phaser Automation Kit Quick reference for automating Phaser games with agent-browser. **Skip `snapshot -i`** and use `window.__TEST__` directly. ## Core Principle **For Phaser games, skip DOM snapshots.** The test seam (`window.__TEST__`) provides all necessary access without DOM inspection. ## Quick Start ```bash # 1. Open game with test mode agent-browser open http://localhost:3000?test=1&seed=42 # 2. Wait for ready (skip snapshot -i) agent-browser eval "new Promise(r => { const c = () => window.__TEST__?.ready ? r(true) : setTimeout(c, 100); c(); })" # 3. Use test seam directly agent-browser eval "window.__TEST__.commands.goToScene('GameScene')" agent-browser eval "window.__TEST__.gameState()" ``` ## Common Patterns ### Scene Navigation ```bash # Navigate to scene agent-browser eval "window.__TEST__.commands.goToScene('GameScene', { level: 1 })" # Check current scene agent-browser eval "window.__TEST__.sceneKey" ``` ### State Inspection ```bash # Get full game state agent-browser eval "window.__TEST__.gameState()" # Check specific state agent-browser eval "window.__TEST__.gameState().score" agent-browser eval "window.__TEST__.gameState().player.x" ``` ### Functional Triggers ```bash # Trigger game actions via commands agent-browser eval "window.__TEST__.commands.clickStartGame()" agent-browser eval "window.__TEST__.commands.collectCoin(100, 200)" agent-browser eval "window.__TEST__.commands.reset()" ``` ### Input Simulation ```bash # Keyboard input agent-browser press ArrowRight agent-browser press Space agent-browser press KeyW # Mouse input (for DOM-based UI if needed) agent-browser click 400 300 ``` ### Waiting for State Changes ```bash # Wait for ready agent-browser eval "window.__TEST__.ready" # Wait for specific state agent-browser eval "new Promise(r => { const c = () => window.__TEST__.gameState().score > 0 ? r(true) : setTimeout(c, 100); c(); })" ``` ## Standardized Test Seam Structure All Phaser games should expose: ```javascript window.__TEST__ = { sceneKey: null, // Current active scene ready: false, // true after first interactive frame seed: null, // current RNG seed gameState: () => ({ // JSON-serializable snapshot scene: window.__TEST__.sceneKey, score: gameState.score, // ... scene-specific state }), commands: { // Functional triggers goToScene: (key, data) => {}, clickStartGame: () => {}, collectCoin: (x, y) => {}, reset: () => {}, } }; ``` ## Workflow Comparison ### ❌ Wrong: Using DOM Snapshots ```bash agent-browser open http://localhost:3000 agent-browser snapshot -i # Unnecessary for Phaser agent-browser click @e1 # Brittle, DOM-dependent ``` ### ✅ Correct: Using Test Seam ```bash agent-browser open http://localhost:3000?test=1&seed=42 agent-browser eval "window.__TEST__.ready" agent-browser eval "window.__TEST__.commands.goToScene('GameScene')" agent-browser eval "window.__TEST__.gameState()" ``` ## When to Use DOM Snapshots Only use `snapshot -i` for: - **DOM-based UI**: HTML menus, buttons, forms - **Hybrid games**: DOM menus + canvas gameplay (use snapshot for menus only) For pure Phaser/canvas games, **always use `window.__TEST__`**. ## Direct Scene Access Test specific scenes without full game flow: ```bash # Start directly at scene agent-browser open http://localhost:3000?scene=GameScene&test=1&seed=42 # Or navigate via test seam agent-browser eval "window.__TEST__.commands.goToScene('GameScene', { level: 3 })" ``` ## Error Checking ```bash # Check for console errors agent-browser errors # Verify test seam exists agent-browser eval "typeof window.__TEST__ !== 'undefined'" # Check readiness agent-browser eval "window.__TEST__.ready" ``` ## Screenshot Testing After deterministic setup: ```bash # Set viewport agent-browser set viewport 1280 720 # Wait for stable state agent-browser eval "window.__TEST__.ready && window.__TEST__.frameCount >= 10" # Capture screenshot agent-browser screenshot gameplay-state.png ``` ## Integration with TestManager If using TestManager pattern (see `@phaser-game-testing`): ```bash # TestManager provides consistent structure agent-browser eval "window.__TEST__.gameState()" # Merges base + scene state agent-browser eval "window.__TEST__.commands.goToScene('GameScene')" ``` ## Related Skills - `@phaser-game-testing`: Complete testing guide, TestManager pattern, unit testing - `@vite-agent`: Vite configuration for agent automation ## Remember 1. **Skip `snapshot -i`** for Phaser games 2. **Use `window.__TEST__`** directly 3. **Use commands** for functional triggers 4. **Check state** via `gameState()` 5. **Wait for ready** before interactions
Voir sur GitHub