Official agent skill

Openai Develop Web Game

by trailofbits in trailofbits/skills-curated

A skill your agent uses when the agent 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…

OfficialCC-BY-SA-4.0Auto-check: notesTesting & QA

Install Openai Develop Web Game

skills CLI
$ npx skills add trailofbits/skills-curated --skill openai-develop-web-game -a claude-code

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

GitHub CLI
$ gh skill install trailofbits/skills-curated openai-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/trailofbits/skills-curated.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/openai-develop-web-game/skills/openai-develop-web-game .claude/skills/openai-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
openai-develop-web-game
GitHub stars
512
Token cost
~2.3k tokens
SKILL.md length
1,055 words
Files
3 (incl. scripts, references)
Skills in repo
24
Repo updated
First seen
Licence
CC-BY-SA-4.0

At a glance

A skill your agent uses when the agent 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…

  • Works in 12 steps: Pick a goal. Define a single feature or… → Implement small. Make the smallest… → Ensure integration points. Provide a… → …
  • The agent is building
  • SKILL.md covers Workflow, Test Checklist, Test Artifacts to Review and Core Game Guidelines, plus 6 more sections
  • Runs JavaScript scripts from its folder; calls node and npm

What it does

Openai Develop Web Game is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. Use when the agent 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. Originally from OpenAI's curated skills catalog.

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

It sits in Testing & QA, covering Browser testing. It works with OpenAI and Playwright. The repository describes itself as: Curated, community-vetted Claude Code plugin marketplace. The licence is CC-BY-SA-4.0.

When your agent uses it

  • The agent 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

  • “/openai-develop-web-game”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Write, Edit

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 6d05be4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob
    • Write
    • Edit

    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

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

Always · name and description, kept in context so the agent knows when to use it
~94
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.3k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob, Write, Edit

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 trailofbits/skills-curated at commit 6d05be4, republished under its CC-BY-SA-4.0 licence (© trailofbits). 1,055 words, ~2,264 tokens.

Download SKILL.mdSave it as .claude/skills/openai-develop-web-game/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
openai-develop-web-game
description
Use when the agent 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. Originally from OpenAI's curated skills catalog.
allowed-tools
Bash, Read, Grep, Glob, Write, Edit

Develop Web Game

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

Scripts and references are located under {baseDir}/.

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

Canvas + Layout
  • Prefer a single canvas centered in the window.
Show full SKILL.md (428 more words)Show less
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: {baseDir}/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: {baseDir}/references/action_payloads.json) — example action payloads (keyboard + mouse, per-frame capture). Use these to build your burst.

When to Use

<!-- TODO: review -->

When NOT to Use

<!-- TODO: review -->

© trailofbits, CC-BY-SA-4.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 2 other files (scripts, references) in plugins/openai-develop-web-game/skills/openai-develop-web-game of trailofbits/skills-curated.

  • SKILL.md
  • references/action_payloads.json
  • scripts/web_game_playwright_client.js

Open the folder on GitHubat commit 6d05be4

Compare with similar skills

Openai 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.

Openai Develop Web Game compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Openai Develop Web Game this skilltrailofbits/skills-curated512—~2.3kAutomated safety check: NotesCC-BY-SA-4.0
E2E TestingOpenHands/OpenHands90k—~308Automated safety check: PassMIT
PlaywrightKiln-AI/Kiln5.2k—~1.3kAutomated safety check: PassCustom licence
Create Chatgpt Video Adcriptogus/agent-evolve-network288—~5kAutomated safety check: PassCustom licence
Dev Auth BypassFranciscoMoretti/chat-js1.2k—~141Automated safety check: PassApache-2.0
Render Chatgpt Chatgooseworks-ai/goose-skills1.2k—~2.2kAutomated safety check: PassMIT

Similar skills

  • E2E Testing

    OpenHands/OpenHands

    This skill should be used when the user asks to "add an E2E test", "run live E2E", "run mock-LLM tests", "debug Playwright CI", "test the Docker image", or changes tests/e2e, Playwright configs, E2E…

    90k GitHub stars~308 tokensUpdated today
    Testing & QAAuto-check passed
  • Playwright

    Kiln-AI/Kiln

    Look at Kiln's UI in a real browser, and run its end-to-end tests.

    5.2k GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Create Chatgpt Video Ad

    criptogus/agent-evolve-network

    Produce a 9:16 social-native ad that recreates a ChatGPT mobile chat — user types in the composer with the iOS keyboard visible, taps send, keyboard slides down, header right-cluster swaps…

    288 GitHub stars~5k tokensUpdated 28 days ago
    Testing & QAAuto-check passed
  • Dev Auth Bypass

    FranciscoMoretti/chat-js

    Authenticate a browser against a local ChatJS app without OAuth.

    1.2k GitHub stars~141 tokensUpdated today
    Testing & QAAuto-check passed
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…

    1.2k GitHub stars~2.2k tokensUpdated today
    Media & CreativeAuto-check passed
  • Render Apple Notes Chat

    gooseworks-ai/goose-skills

    Assemble an Apple Notes list video ad from a note + end-card JSON — a frame-accurate fake iPhone screen recording of a short list being typed into Apple Notes (character by character, key pops…

    1.2k GitHub stars~1.5k tokensUpdated today
    Media & CreativeAuto-check passed

More from trailofbits/skills-curated

All 24 skills in this repo
  • Openai Security Ownership Map

    trailofbits/skills-curated

    Official

    Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization.

    512 GitHub starsUsed in 5 repos~2.2k tokens
    Auto-check: notes
  • Openai Doc

    trailofbits/skills-curated

    Official

    A skill your agent uses when the task involves reading, creating, or editing .docx documents, especially when formatting or layout fidelity matters; prefer python-docx plus the bundled…

    512 GitHub starsUsed in 5 repos~786 tokens
    Auto-check: notes
  • Openai Jupyter Notebook

    trailofbits/skills-curated

    Official

    A skill your agent uses when the user asks to create, scaffold, or edit Jupyter notebooks (.ipynb) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script…

    512 GitHub stars~1k tokensUpdated 2 mo ago
    Auto-check: notes
  • Openai Playwright

    trailofbits/skills-curated

    Official

    A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…

    512 GitHub stars~945 tokensUpdated 2 mo ago
    Auto-check: notes
  • X Research

    trailofbits/skills-curated

    Official

    Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.

    512 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check: notes
  • Teach

    trailofbits/skills-curated

    Official

    Teaches the user a new skill or concept over multiple sessions, using the current directory as a stateful teaching workspace with lessons, learning records, and reference materials.

    512 GitHub starsUsed in 27 repos~2.6k tokens
    Auto-check: notes

Categories

Questions about Openai Develop Web Game

What does Openai Develop Web Game do?

A skill your agent uses when the agent 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…. Openai Develop Web Game is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. Use when the agent 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 Openai Develop Web Game?

Openai Develop Web Game fits situations like: the agent 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 Openai Develop Web Game in Claude Code?

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

How do I install Openai Develop Web Game in Codex?

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

Can I use Openai 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 trailofbits/skills-curated --skill openai-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/openai-develop-web-game, .gemini/skills/openai-develop-web-game, .github/skills/openai-develop-web-game and .opencode/skills/openai-develop-web-game in your project.

What does Openai Develop Web Game need to run?

Going by SKILL.md and its folder, Openai 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. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Write, Edit.

Does Openai 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 Openai Develop Web Game safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. 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 Openai Develop Web Game use?

Openai Develop Web Game is published under the CC-BY-SA-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Openai Develop Web Game use?

About 2.3k tokens (SKILL.md is roughly 9.1k 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 Openai Develop Web Game?

Skills that share tags, products or a category with Openai Develop Web Game: E2E Testing (OpenHands/OpenHands, 90k stars), Playwright (Kiln-AI/Kiln, 5.2k stars), Create Chatgpt Video Ad (criptogus/agent-evolve-network, 288 stars) and Dev Auth Bypass (FranciscoMoretti/chat-js, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Openai Develop Web Game?

trailofbits (a GitHub organization, an official publisher) maintains it in trailofbits/skills-curated, which has 512 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on July 14, 2026.

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