develop-web-game/SKILL.md
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.
npx skillsauth add lidge-jun/cli-jaw-skills develop-web-gameInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build games in small steps: implement → act → pause → observe → adjust.
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export WEB_GAME_CLIENT="$CODEX_HOME/skills/develop-web-game/scripts/web_game_playwright_client.js"
export WEB_GAME_ACTIONS="$CODEX_HOME/skills/develop-web-game/references/action_payloads.json"
window.render_game_to_text, and window.advanceTime(ms) (deterministic stepping prevents flaky tests).Original prompt: at top, note prior TODOs. If missing, create with Original prompt: <prompt>.npx playwright availability before first run.$WEB_GAME_CLIENT after each meaningful change. Base actions on $WEB_GAME_ACTIONS.render_game_to_text matches screen state.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):
{
"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 new features and any areas affected by logic changes:
render_game_to_text output: Verify it matches what screenshots show.Fix-and-rerun in a tight loop until screenshots, text state, and controls are all correct. Re-test all interactions after fixes to catch regressions.
Return a concise JSON of current game state — enough to play without visuals.
```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;
Include: coordinate system, player state, active entities, score, mode flags. Prefer current/visible data over history.
Expose window.advanceTime(ms) for deterministic frame stepping during Playwright tests.
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, Esc to exit. Resize canvas/rendering on toggle so visuals and input mapping stay correct.Update progress.md after each meaningful chunk of work. Preserve the Original prompt: line at top. Leave TODOs and suggestions for the next agent.
playwright dependency if already in project.npm install -g @playwright/mcp@latest$WEB_GAME_CLIENT), not @playwright/test.$WEB_GAME_CLIENT — Playwright action loop with time-stepping, screenshots, console error capture. Pass actions via --actions-file, --actions-json, or --click.$WEB_GAME_ACTIONS — Example action payloads (keyboard + mouse, per-frame capture).development
Goal execution guidelines with PABCD integration, verification tiers, documentation workflow, and AI-driven planning
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
development
Use this skill any time a spreadsheet file is the primary input or output (.xlsx, .xlsm, .csv, .tsv). This includes: creating, reading, editing, analyzing, or formatting spreadsheets; cleaning messy tabular data; converting between formats; and data visualization with charts. Also use for pandas-based data analysis when the deliverable is a spreadsheet. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration.
tools
Use this skill when the user wants to build a financial model, 3-statement model, DCF valuation, cap table, scenario analysis, or financial projections in Excel. Trigger on: 'financial model', '3-statement model', 'DCF', 'cap table', 'pro forma', 'projections', 'sensitivity analysis', 'waterfall', 'debt schedule', 'break-even', 'discounted cash flow', 'capitalization table', 'fundraising model', 'WACC calculation', 'scenario analysis model'. Input is a text prompt with assumptions. Output is a single .xlsx file with formula-driven, interconnected statement sheets.