Agent skill

Develop Web Game

by freestylefly in freestylefly/wesight

A skill your agent uses when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with…

Apache-2.0Auto-check passedTesting & QA

Install Develop Web Game

skills CLI
$ npx skills add freestylefly/wesight --skill develop-web-game -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install freestylefly/wesight develop-web-game --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/freestylefly/wesight.git skills-src && mkdir -p .claude/skills && cp -r skills-src/SKILLs/develop-web-game .claude/skills/develop-web-game && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
develop-web-game
GitHub stars
943
Used in
1 other repo
Token cost
~2.3k tokens
SKILL.md length
1,059 words
Files
7 (incl. scripts, references, assets)
Skills in repo
17
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with…

  • Works in 12 steps: Pick a goal. Define a single feature or… → Implement small. Make the smallest… → Ensure integration points. Provide a… → …
  • Codex is building
  • SKILL.md covers Skill paths (set once), Workflow, Test Checklist and Test Artifacts to Review, plus 5 more sections
  • Runs JavaScript scripts from its folder; calls node and npm

What it does

Develop Web Game is an agent skill from freestylefly/wesight. Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with rendergametotext.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `references/action_payloads.json` and `scripts/web_game_playwright_client.js`).

It sits in Testing & QA, covering Browser testing. It works with Playwright. The repository describes itself as: Open-source desktop AI agent workspace with one-click Claude Code, Codex, OpenClaw, Hermes Agent setup and custom LLM model routing. The licence is Apache-2.0.

When your agent uses it

  • Codex is building
  • Iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes
  • Run a Playwright-based test script with short input bursts and intentional pauses
  • Inspect screenshots/text

Example prompts

  • “/develop-web-game”

Requirements

  • Node.js

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Pick a goal. Define a single feature or behavior to implement.
  2. Implement small. Make the smallest change that moves the game forward.
  3. Ensure integration points. Provide a single canvas and window.render_game_to_text so the test loop can read state.
  4. Add window.advanceTime(ms). Strongly prefer a deterministic step hook so the Playwright script can advance frames reliably; without it…
  5. Initialize progress.md. If progress.md exists, read it first and confirm the original user prompt is recorded at the top (prefix with…
  6. Verify Playwright availability. Ensure playwright is available (local dependency or global install). If unsure, check npx first.
  7. Run the Playwright test script. You must run $WEB_GAME_CLIENT after each meaningful change; do not invent a new client unless required.
  8. Use the payload reference. Base actions on $WEB_GAME_ACTIONS to avoid guessing keys.
  9. Inspect state. Capture screenshots and text state after each burst.
  10. Inspect screenshots. Open the latest screenshot, verify expected visuals, fix any issues, and rerun the script. Repeat until correct.
  11. Verify controls and state (multi-step focus). Exhaustively exercise all important interactions. For each, think through the full…
  12. Check errors. Review console errors and fix the first new issue before continuing.

What it can do on your machine

Read from SKILL.md and the folder at commit c913cd9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Develop Web Game loads about 2.3k tokens when it runs, and up to ~2.4k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 1,059 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from freestylefly/wesight at commit c913cd9, republished under its Apache-2.0 licence (© freestylefly). 1,059 words, ~2,340 tokens.

Download SKILL.mdSave it as .claude/skills/develop-web-game/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
develop-web-game
description
Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with render_game_to_text.
official
true

Develop Web Game

Build games in small steps and validate every change. Treat each iteration as: implement → act → pause → observe → adjust.

Skill paths (set once)

bash
export SKILLS_ROOT="${WESIGHT_SKILLS_ROOT:-${SKILLS_ROOT:-$HOME/Library/Application Support/WeSight/SKILLs}}"
export WEB_GAME_CLIENT="$SKILLS_ROOT/develop-web-game/scripts/web_game_playwright_client.js"
export WEB_GAME_ACTIONS="$SKILLS_ROOT/develop-web-game/references/action_payloads.json"

Installed skills resolve from $WESIGHT_SKILLS_ROOT / $SKILLS_ROOT (production default: app userData/SKILLs, macOS usually ~/Library/Application Support/WeSight/SKILLs).

Workflow

  1. Pick a goal. Define a single feature or behavior to implement.
  2. Implement small. Make the smallest change that moves the game forward.
  3. Ensure integration points. Provide a single canvas and window.render_game_to_text so the test loop can read state.
  4. Add window.advanceTime(ms). Strongly prefer a deterministic step hook so the Playwright script can advance frames reliably; without it, automated tests can be flaky.
  5. Initialize progress.md. If progress.md exists, read it first and confirm the original user prompt is recorded at the top (prefix with Original prompt:). Also note any TODOs and suggestions left by the previous agent. If missing, create it and write Original prompt: <prompt> at the top before appending updates.
  6. Verify Playwright availability. Ensure playwright is available (local dependency or global install). If unsure, check npx first.
  7. Run the Playwright test script. You must run $WEB_GAME_CLIENT after each meaningful change; do not invent a new client unless required.
  8. Use the payload reference. Base actions on $WEB_GAME_ACTIONS to avoid guessing keys.
  9. Inspect state. Capture screenshots and text state after each burst.
  10. Inspect screenshots. Open the latest screenshot, verify expected visuals, fix any issues, and rerun the script. Repeat until correct.
  11. Verify controls and state (multi-step focus). Exhaustively exercise all important interactions. For each, think through the full multi-step sequence it implies (cause → intermediate states → outcome) and verify the entire chain works end-to-end. Confirm render_game_to_text reflects the same state shown on screen. If anything is off, fix and rerun. Examples of important interactions: move, jump, shoot/attack, interact/use, select/confirm/cancel in menus, pause/resume, restart, and any special abilities or puzzle actions defined by the request. Multi-step examples: shooting an enemy should reduce its health; when health reaches 0 it should disappear and update the score; collecting a key should unlock a door and allow level progression.
  12. Check errors. Review console errors and fix the first new issue before continuing.
  13. Reset between scenarios. Avoid cross-test state when validating distinct features.
  14. Iterate with small deltas. Change one variable at a time (frames, inputs, timing, positions), then repeat steps 7–13 until stable.

Example command (actions required):

node "$WEB_GAME_CLIENT" --url http://localhost:5173 --actions-file "$WEB_GAME_ACTIONS" --click-selector "#start-btn" --iterations 3 --pause-ms 250

Example actions (inline JSON):

json
{
  "steps": [
    { "buttons": ["left_mouse_button"], "frames": 2, "mouse_x": 120, "mouse_y": 80 },
    { "buttons": [], "frames": 6 },
    { "buttons": ["right"], "frames": 8 },
    { "buttons": ["space"], "frames": 4 }
  ]
}

Test Checklist

Test any new features added for the request and any areas your logic changes could affect. Identify issues, fix them, and re-run the tests to confirm they’re resolved.

Examples of things to test:

  • Primary movement/interaction inputs (e.g., move, jump, shoot, confirm/select).
  • Win/lose or success/fail transitions.
  • Score/health/resource changes.
  • Boundary conditions (collisions, walls, screen edges).
  • Menu/pause/start flow if present.
  • Any special actions tied to the request (powerups, combos, abilities, puzzles, timers).

Test Artifacts to Review

  • Latest screenshots from the Playwright run.
  • Latest render_game_to_text JSON output.
  • Console error logs (fix the first new error before continuing). You must actually open and visually inspect the latest screenshots after running the Playwright script, not just generate them. Ensure everything that should be visible on screen is actually visible. Go beyond the start screen and capture gameplay screenshots that cover all newly added features. Treat the screenshots as the source of truth; if something is missing, it is missing in the build. If you suspect a headless/WebGL capture issue, rerun the Playwright script in headed mode and re-check. Fix and rerun in a tight loop until the screenshots and text state look correct. Once fixes are verified, re-test all important interactions and controls, confirm they work, and ensure your changes did not introduce regressions. If they did, fix them and rerun everything in a loop until interactions, text state, and controls all work as expected. Be exhaustive in testing controls; broken games are not acceptable.

Core Game Guidelines

Show full SKILL.md (427 more words)Show less
Canvas + Layout
  • Prefer a single canvas centered in the window.
Visuals
  • Keep on-screen text minimal; show controls on a start/menu screen rather than overlaying them during play.
  • Avoid overly dark scenes unless the design calls for it. Make key elements easy to see.
  • Draw the background on the canvas itself instead of relying on CSS backgrounds.
Text State Output (render_game_to_text)

Expose a window.render_game_to_text function that returns a concise JSON string representing the current game state. The text should include enough information to play the game without visuals.

Minimal pattern:

js
function renderGameToText() {
  const payload = {
    mode: state.mode,
    player: { x: state.player.x, y: state.player.y, r: state.player.r },
    entities: state.entities.map((e) => ({ x: e.x, y: e.y, r: e.r })),
    score: state.score,
  };
  return JSON.stringify(payload);
}
window.render_game_to_text = renderGameToText;

Keep the payload succinct and biased toward on-screen/interactive elements. Prefer current, visible entities over full history. Include a clear coordinate system note (origin and axis directions), and encode all player-relevant state: player position/velocity, active obstacles/enemies, collectibles, timers/cooldowns, score, and any mode/state flags needed to make correct decisions. Avoid large histories; only include what's currently relevant and visible.

Time Stepping Hook

Provide a deterministic time-stepping hook so the Playwright client can advance the game in controlled increments. Expose window.advanceTime(ms) (or a thin wrapper that forwards to your game update loop) and have the game loop use it when present. The Playwright test script uses this hook to step frames deterministically during automated testing.

Minimal pattern:

js
window.advanceTime = (ms) => {
  const steps = Math.max(1, Math.round(ms / (1000 / 60)));
  for (let i = 0; i < steps; i++) update(1 / 60);
  render();
};
Fullscreen Toggle
  • Use a single key (prefer f) to toggle fullscreen on/off.
  • Allow Esc to exit fullscreen.
  • When fullscreen toggles, resize the canvas/rendering so visuals and input mapping stay correct.

Progress Tracking

Create a progress.md file if it doesn't exist, and append TODOs, notes, gotchas, and loose ends as you go so another agent can pick up seamlessly. If a progress.md file already exists, read it first, including the original user prompt at the top (you may be continuing another agent's work). Do not overwrite the original prompt; preserve it. Update progress.md after each meaningful chunk of work (feature added, bug found, test run, or decision made). At the end of your work, leave TODOs and suggestions for the next agent in progress.md.

Playwright Prerequisites

  • Prefer a local playwright dependency if the project already has it.
  • If unsure whether Playwright is available, check for npx:
    command -v npx >/dev/null 2>&1
  • If npx is missing, install Node/npm and then install Playwright globally:
    npm install -g @playwright/mcp@latest
  • Do not switch to @playwright/test unless explicitly asked; stick to the client script.

Scripts

  • $WEB_GAME_CLIENT (installed default: $SKILLS_ROOT/develop-web-game/scripts/web_game_playwright_client.js) — Playwright-based action loop with virtual-time stepping, screenshot capture, and console error buffering. You must pass an action burst via --actions-file, --actions-json, or --click.

References

  • $WEB_GAME_ACTIONS (installed default: $SKILLS_ROOT/develop-web-game/references/action_payloads.json) — example action payloads (keyboard + mouse, per-frame capture). Use these to build your burst.

© freestylefly, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references, assets) in SKILLs/develop-web-game of freestylefly/wesight.

  • SKILL.md
  • LICENSE.txt
  • agents/openai.yaml
  • assets/game-small.svg
  • assets/game.png
  • references/action_payloads.json
  • scripts/web_game_playwright_client.js

Open the folder on GitHubat commit c913cd9

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in freestylefly/wesight, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Develop Web Game next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Develop Web Game compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Develop Web Game this skillfreestylefly/wesight9431 repos~2.3kAutomated safety check: PassApache-2.0
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0
Playwright CLIsanity-io/sanity6.4k18 repos~1.9kAutomated safety check: PassMIT
playwright-cli Browser Automationgithub/gh-aw5.3k23 repos~2.8kAutomated safety check: PassMIT
Write and Verify Playwright Testsappsmithorg/appsmith41k—~2.9kAutomated safety check: NotesApache-2.0
Cucumber and Playwright E2E Testslanggenius/dify158k—~682Automated safety check: PassCustom licence

Similar skills

  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • Playwright CLI

    sanity-io/sanity

    Official

    Automates browser interactions for web testing, form filling, screenshots, and data extraction.

    6.4k GitHub starsUsed in 18 repos~1.9k tokens
    Testing & QAAuto-check passed
  • Official

    Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.

    5.3k GitHub starsUsed in 23 repos~2.8k tokens
    Testing & QAAuto-check passed
  • Writes a Playwright end-to-end test from a prompt, runs it against a live Appsmith deployment and retries with fixes up to three times until it passes.

    41k GitHub stars~2.9k tokensUpdated today
    Testing & QAAuto-check: notes
  • Guides changes and reviews of the Cucumber and Playwright end-to-end suite under `e2e/`: feature files, step definitions, support code, tags, locators and assertions.

    158k GitHub stars~682 tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Testing

    langflow-ai/langflow

    Write and review Playwright E2E tests for Langflow. An agent skill from langflow-ai/langflow.

    156k GitHub stars~3.3k tokensUpdated today
    Testing & QAAuto-check passed

More from freestylefly/wesight

All 17 skills in this repo
  • Web Search

    freestylefly/wesight

    Real-time web search using Playwright-controlled browser. An agent skill from freestylefly/wesight.

    943 GitHub starsUsed in 1 repo~4k tokens
    Auto-check: notes
  • Technology Search

    freestylefly/wesight

    Search tech blogs, developer forums, and IT media (TechCrunch, Hacker News, 36氪, etc.) for software and hardware industry updates with heat ranking and EN↔CN translation.

    943 GitHub stars~3.3k tokensUpdated 5 days ago
    Auto-check passed
  • Content Planner

    freestylefly/wesight

    WeChat Official Account topic planning and content calendar management.

    943 GitHub stars~1.2k tokensUpdated 5 days ago
    Auto-check passed
  • Films Search

    freestylefly/wesight

    Search cloud drives for downloadable film and TV resources (movies, TV series, anime).

    943 GitHub stars~825 tokensUpdated 5 days ago
    Auto-check: notes
  • Create Plan

    freestylefly/wesight

    Create a concise plan. An agent skill from freestylefly/wesight.

    943 GitHub starsUsed in 4 repos~611 tokens
    Auto-check passed
  • Local Tools

    freestylefly/wesight

    Access local system resources including Calendar on macOS and Windows.

    943 GitHub stars~3.4k tokensUpdated 5 days ago
    Auto-check passed

Works with

Categories

Questions about Develop Web Game

What does Develop Web Game do?

A skill your agent uses when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with…. Develop Web Game is an agent skill from freestylefly/wesight. Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with rendergametotext.

When should I use Develop Web Game?

Develop Web Game fits situations like: Codex is building; iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes; run a Playwright-based test script with short input bursts and intentional pauses; inspect screenshots/text.

How do I install Develop Web Game in Claude Code?

Run `npx skills add freestylefly/wesight --skill develop-web-game -a claude-code`. Or copy the skill folder (SKILLs/develop-web-game in freestylefly/wesight) into .claude/skills/develop-web-game in your project. Claude Code loads it when a task matches its description.

How do I install Develop Web Game in Codex?

Run `npx skills add freestylefly/wesight --skill develop-web-game -a codex`. Or copy the skill folder (SKILLs/develop-web-game in freestylefly/wesight) into .agents/skills/develop-web-game in your project. Codex loads it when a task matches its description.

Can I use Develop Web Game in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add freestylefly/wesight --skill develop-web-game -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/develop-web-game, .gemini/skills/develop-web-game, .github/skills/develop-web-game and .opencode/skills/develop-web-game in your project.

What does Develop Web Game need to run?

Going by SKILL.md and its folder, Develop Web Game needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npm). Our summary lists: Node.js.

Does Develop Web Game access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Develop Web Game safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Develop Web Game use?

Develop Web Game is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Develop Web Game use?

About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 36 tokens, read only when the agent opens those files.

What are the alternatives to Develop Web Game?

Skills that share tags, products or a category with Develop Web Game: Web Application Testing (anthropics/skills, 180k stars), Playwright CLI (sanity-io/sanity, 6.4k stars), playwright-cli Browser Automation (github/gh-aw, 5.3k stars) and Write and Verify Playwright Tests (appsmithorg/appsmith, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Develop Web Game?

freestylefly (a GitHub user) maintains it in freestylefly/wesight, which has 943 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 1, 2026.

Source: freestylefly/wesight on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.