[ PROMPT_NODE_23214 ]
develop-web-game
[ SKILL_DOCUMENTATION ]
# 开发 Web 游戏
分小步构建游戏并验证每次变更。将每次迭代视为:实现 → 执行 → 暂停 → 观察 → 调整。
## 技能路径(设置一次)
bash
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"
用户范围的技能安装在 `$CODEX_HOME/skills` 下(默认:`~/.codex/skills`)。
## 工作流
1. **确定目标。** 定义要实现的单个功能或行为。
2. **小步实现。** 进行推动游戏进展的最小变更。
3. **确保集成点。** 提供单个画布和 `window.render_game_to_text`,以便测试循环可以读取状态。
4. **添加 `window.advanceTime(ms)`。** 强烈建议使用确定性的步骤钩子,以便 Playwright 脚本可以可靠地推进帧;否则,自动化测试可能会不稳定。
5. **初始化 progress.md。** 如果 `progress.md` 存在,先阅读它并确认原始用户提示词记录在顶部(前缀为 `Original prompt:`)。同时记录前一个智能体留下的任何 TODO 和建议。如果不存在,创建它并在顶部写入 `Original prompt: `,然后再追加更新。
6. **验证 Playwright 可用性。** 确保 `playwright` 可用(本地依赖或全局安装)。如果不确定,先检查 `npx`。
7. **运行 Playwright 测试脚本。** 每次有意义的变更后,必须运行 `$WEB_GAME_CLIENT`;除非必要,否则不要发明新的客户端。
8. **使用有效载荷参考。** 基于 `$WEB_GAME_ACTIONS` 进行操作,避免猜测键名。
9. **检查状态。** 在每次突发操作后捕获截图和文本状态。
10. **检查截图。** 打开最新的截图,验证预期的视觉效果,修复任何问题,并重新运行脚本。重复直到正确。
11. **验证控制和状态(多步聚焦)。** 详尽地测试所有重要的交互。对于每一个交互,思考它所暗示的完整多步序列(原因 → 中间状态 → 结果),并验证整个链条是否端到端工作。确认 `render_game_to_text` 反映的状态与屏幕上显示的一致。如果有任何偏差,修复并重新运行。
重要交互示例:移动、跳跃、射击/攻击、交互/使用、菜单中的选择/确认/取消、暂停/恢复、重启,以及请求定义的任何特殊能力或谜题动作。多步示例:射击敌人应该