ippclub/dora-ssr/dora-cli-game-development
Claude Code and agent skill by ippclub/dora-ssr
- community
Checking that the SKILL.md file is still in the repository.
Use when building, running, testing, or debugging Dora engine games with the Dora CLI, including TypeScript, TSX/DoraX, Lua, YueScript, Teal, XML, Wa, Yarn, Rust WASM, Web IDE service recovery, and in-engine validation.
Install
npx vskill@latest install ippclub/dora-ssr/dora-cli-game-developmentSKILL.md
Dora CLI Game Development
Use this skill for ordinary Dora game/workspace projects driven by the Dora CLI. Dora runtime code runs inside the Dora engine, not a browser or Node.js. Prefer TypeScript/TSX sources when present; generated Lua is the runtime artifact.
First Checks
- Locate the project root and entry file, usually
init.tsorinit.lua. - Check whether the project is TS, TSX/DoraX, Lua, YueScript, Teal, XML, Wa, Yarn, or Rust WASM.
- Use Dora engine APIs and project module paths. Do not write DOM, Canvas, Node.js, npm-only, or browser timer code for runtime scripts.
- For unfamiliar Dora APIs, read the local declarations or use the repo's Dora API search before inventing signatures.
Valid runtime imports use Dora module names such as:
Do not import React from npm for DoraX runtime code.
Dora Command Name
In this skill, Dora means the Dora engine executable. In local development it is often a shell alias or wrapper, not a separate CLI binary.
Example alias with a fake explanatory path:
On Windows or Linux, use the corresponding Dora executable path for that platform. If Dora is not on PATH and no alias exists, replace Dora in examples with the local engine executable path.
Service Health
Most CLI commands call the local Dora/Web IDE HTTP service. Start with:
If the local service or Web IDE is missing, use:
Use status for a short read-only snapshot and doctor for diagnostics. If localhost calls fail with JSON parse errors or empty output, check service health before changing game code:
The local Web IDE service normally uses HTTP 8866. A bad response from that service is often an engine/WebServer health issue, not a compiler bug.
Keep the recovery commands distinct:
statusis terse, read-only, and script-friendly.doctorprints broader CLI/project/service/tooling diagnostics.doctor --fixis the mutating local recovery path.
Do not treat status and doctor as synonyms. A status check should not open the Web IDE or trigger connection side effects.
Project Setup
Install or refresh TypeScript definitions:
Install or refresh Wa support:
Use --asset when the CLI should use a different Dora asset root:
--asset is a lightweight CLI option. It should be accepted before or after cli; CLI-only handling should not require starting full engine content singletons.
Build And Run
Build everything supported in a project:
Build a single file:
Build one language family:
Supported build languages are all, ts, yue, tl, xml, wa, and yarn. Yarn syntax checking is part of the build command.
When build results contain per-file diagnostics, inspect those messages rather than trusting only a top-level success flag. A project build can complete the request but still report a failing file that must be fixed.
Run the project:
Build and run in one step:
Stop the currently running project:
Dora cli stop stops the project running in Dora. It does not necessarily quit the Dora engine process.
TSX And DoraX
Use TSX for declarative Dora node trees.
toNode(element)is for one-shot scene construction.createRoot(parent)plussignal(value)is for dynamic UI or scene fragments.- Use stable
keyvalues for sibling lists that can reorder, insert, delete, or filter. - Call
root.unmount()when a dynamic root is no longer needed. - Keep authored tests and demos in
.tsxwhen validating TSX behavior; generated.luais only the runnable output.
When changing dynamic behavior, validate with an in-engine test, not only a host-side compile.
In-Engine Validation Pattern
For gameplay/runtime behavior, prefer a deterministic marker file over visual inspection or log tailing alone:
A useful runner should:
- Build the changed
.tsor.tsxsource with Dora CLI. - Run the generated Lua in Dora.
- Poll the marker file in Dora's writable path.
- Fail on timeout or any marker value other than
passed.
This is especially important for scheduling, lifecycle, signal/diff rendering, physics, input, and action behavior.
Do not switch a TSX test to Lua just because the TSX build/run path is temporarily unhealthy. Restore the Dora/Web IDE service, build the TSX source, and run the generated Lua artifact.
CLI Feature And Docs Work
Before adding a new CLI feature, inspect the existing command dispatch and service routes:
Assets/Script/Dev/cli.luaAssets/Script/Dev/WebServer.yue
Fold new checks into existing flows when that keeps the CLI smaller. For example, Yarn syntax validation belongs in build through the existing service endpoint, not in a redundant top-level filesystem wrapper.
When editing CLI docs or tutorials, run the current help command first and copy the command shape from it:
Keep docs at the feature/command level. Avoid engine internals unless the user explicitly asks for them.
Rust WASM
Build Rust WASM projects with the CLI:
Build and run a target in the Dora resource tree:
Upload an existing WASM file, optionally running it:
Debugging Failures
- If build output is malformed or empty, verify Dora/Web IDE service health first.
- If a CLI request to localhost fails, clear proxy environment variables and rerun the same command.
- If a CLI command reports a JSON parse error such as
Expecting value, check raw HTTP responses and nearby endpoints such as/assetsand/stop; empty502responses point to service health. - If a TS/TSX build succeeds but behavior is wrong, run the generated artifact in Dora and assert behavior with marker files.
- If runtime code uses browser APIs, rewrite it to Dora APIs instead of trying to polyfill browser behavior.
- If CLI docs or commands seem stale, run
Dora cli --helpand use that as the source of truth.
Before Finishing
Check:
- The project entry actually starts the game or test.
- Runtime code uses Dora APIs, not browser or Node.js APIs.
- TS/TSX source was edited instead of generated Lua when source exists.
Dora cli build,run, orbuildrunwas used with the narrowest useful scope.- In-engine behavior was verified for runtime semantics.
- Service/proxy problems were separated from source problems.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/dora-cli-game-development/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ippclub/dora-ssr/dora-cli-game-development)