Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
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…
$ npx skills add freestylefly/wesight --skill develop-web-game -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install freestylefly/wesight develop-web-game --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "develop-web-game" agent skill from https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-game into .claude/skills/develop-web-game/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "develop-web-game", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-gameType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add freestylefly/wesight --skill develop-web-game -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install freestylefly/wesight develop-web-game --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/freestylefly/wesight.git skills-src && mkdir -p .agents/skills && cp -r skills-src/SKILLs/develop-web-game .agents/skills/develop-web-game && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "develop-web-game" agent skill from https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-game into .agents/skills/develop-web-game/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "develop-web-game", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add freestylefly/wesight --skill develop-web-game -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install freestylefly/wesight develop-web-game --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/freestylefly/wesight.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/SKILLs/develop-web-game .cursor/skills/develop-web-game && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "develop-web-game" agent skill from https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-game into .cursor/skills/develop-web-game/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "develop-web-game", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/freestylefly/wesight.git --path SKILLs/develop-web-game--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add freestylefly/wesight --skill develop-web-game -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install freestylefly/wesight develop-web-game --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/freestylefly/wesight.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/SKILLs/develop-web-game .gemini/skills/develop-web-game && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "develop-web-game" agent skill from https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-game into .gemini/skills/develop-web-game/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "develop-web-game", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install freestylefly/wesight develop-web-gameInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add freestylefly/wesight --skill develop-web-game -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/freestylefly/wesight.git skills-src && mkdir -p .github/skills && cp -r skills-src/SKILLs/develop-web-game .github/skills/develop-web-game && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "develop-web-game" agent skill from https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-game into .github/skills/develop-web-game/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "develop-web-game", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add freestylefly/wesight --skill develop-web-game -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install freestylefly/wesight develop-web-game --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/freestylefly/wesight.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/SKILLs/develop-web-game .opencode/skills/develop-web-game && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "develop-web-game" agent skill from https://github.com/freestylefly/wesight/tree/main/SKILLs/develop-web-game into .opencode/skills/develop-web-game/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "develop-web-game", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
develop-web-gameA 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.
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.
12 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c913cd9. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodenpmFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from freestylefly/wesight at commit c913cd9, republished under its Apache-2.0 licence (© freestylefly). 1,059 words, ~2,340 tokens.
.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.Build games in small steps and validate every change. Treat each iteration as: implement → act → pause → observe → adjust.
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).
window.render_game_to_text so the test loop can read state.window.advanceTime(ms). Strongly prefer a deterministic step hook so the Playwright script can advance frames reliably; without it, automated tests can be flaky.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.playwright is available (local dependency or global install). If unsure, check npx first.$WEB_GAME_CLIENT after each meaningful change; do not invent a new client unless required.$WEB_GAME_ACTIONS to avoid guessing keys.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.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 250Example actions (inline 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 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:
render_game_to_text JSON output.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:
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.
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:
window.advanceTime = (ms) => {
const steps = Math.max(1, Math.round(ms / (1000 / 60)));
for (let i = 0; i < steps; i++) update(1 / 60);
render();
};f) to toggle fullscreen on/off.Esc to exit fullscreen.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 dependency if the project already has it.npx:command -v npx >/dev/null 2>&1npx is missing, install Node/npm and then install Playwright globally:npm install -g @playwright/mcp@latest@playwright/test unless explicitly asked; stick to the client script.$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.$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
SKILL.md and 6 other files (scripts, references, assets) in SKILLs/develop-web-game of freestylefly/wesight.
Open the folder on GitHubat commit c913cd9
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Develop Web Game this skillfreestylefly/wesight | 943 | 1 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Playwright CLIsanity-io/sanity | 6.4k | 18 repos | ~1.9k | Automated safety check: Pass | MIT | |
| playwright-cli Browser Automationgithub/gh-aw | 5.3k | 23 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Write and Verify Playwright Testsappsmithorg/appsmith | 41k | — | ~2.9k | Automated safety check: Notes | Apache-2.0 | |
| Cucumber and Playwright E2E Testslanggenius/dify | 158k | — | ~682 | Automated safety check: Pass | Custom licence |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
sanity-io/sanity
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
github/gh-aw
Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.
appsmithorg/appsmith
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.
langgenius/dify
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.
langflow-ai/langflow
Write and review Playwright E2E tests for Langflow. An agent skill from langflow-ai/langflow.
freestylefly/wesight
Real-time web search using Playwright-controlled browser. An agent skill from freestylefly/wesight.
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.
freestylefly/wesight
WeChat Official Account topic planning and content calendar management.
freestylefly/wesight
Search cloud drives for downloadable film and TV resources (movies, TV series, anime).
freestylefly/wesight
Create a concise plan. An agent skill from freestylefly/wesight.
freestylefly/wesight
Access local system resources including Calendar on macOS and Windows.
Works with
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.