ワンクリックで
agent-command
Rules and examples for using execute_command with Lua and Git safely inside the Dora Agent runtime.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Rules and examples for using execute_command with Lua and Git safely inside the Dora Agent runtime.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | agent-command |
| description | Rules and examples for using execute_command with Lua and Git safely inside the Dora Agent runtime. |
| always | true |
| requiredTools | ["execute_command"] |
Use execute_command only for short engine-side Lua snippets or supported Git operations. Prefer normal file tools for deterministic file edits.
mode: "lua" runs raw Lua code in the Dora engine.mode: "git" runs a supported Git command through the engine Git client.git -C.Lua command code runs in a temporary environment:
projectDir is the current project directory.print(...) is the only output captured into the tool result.Content:copyAsync(...), Content:zipAsync(...), and Content:unzipAsync(...) may be called directly.After file changes, refresh the Web IDE resource tree:
refreshTree() reloads the full asset tree.refreshTree("relative/file.ext") refreshes one project-relative file.Lua examples for common file operations that are not covered by the normal Agent file tools:
Move a file without overwriting an existing target:
local sourceRel = ".temp/source.txt"
local targetRel = ".temp/archive/source.txt"
local source = Path(projectDir, sourceRel)
local target = Path(projectDir, targetRel)
local function ensureDir(dir)
if Content:exist(dir) then
return Content:isdir(dir)
end
local parent = Path:getPath(dir)
if parent ~= dir and parent ~= "" then
assert(ensureDir(parent), "failed to create parent directory")
end
return Content:mkdir(dir)
end
assert(ensureDir(Path:getPath(target)), "failed to create target directory")
assert(Content:exist(source), "source file does not exist")
assert(not Content:exist(target), "target already exists")
assert(Content:move(source, target), "failed to move file")
refreshTree()
print("moved", sourceRel, "to", targetRel)
Copy a file or directory asynchronously:
local sourceRel = "AssetsTemplate"
local targetRel = ".temp/AssetsTemplate"
local source = Path(projectDir, sourceRel)
local target = Path(projectDir, targetRel)
local function ensureDir(dir)
if Content:exist(dir) then
return Content:isdir(dir)
end
local parent = Path:getPath(dir)
if parent ~= dir and parent ~= "" then
assert(ensureDir(parent), "failed to create parent directory")
end
return Content:mkdir(dir)
end
assert(Content:exist(source), "source does not exist")
assert(not Content:exist(target), "target already exists")
assert(ensureDir(Path:getPath(target)), "failed to create target directory")
assert(Content:copyAsync(source, target), "failed to copy")
refreshTree()
print("copied", sourceRel, "to", targetRel)
Remove a generated file or directory:
local targetRel = ".temp/generated"
local target = Path(projectDir, targetRel)
if Content:exist(target) then
assert(Content:remove(target), "failed to remove target")
refreshTree()
print("removed", targetRel)
else
print("target not found", targetRel)
end
Create a zip archive, then unzip it into a project folder:
local sourceRel = ".temp/package-src"
local zipRel = ".temp/package.zip"
local outRel = ".temp/package-unzipped"
local sourceDir = Path(projectDir, sourceRel)
local zipFile = Path(projectDir, zipRel)
local outDir = Path(projectDir, outRel)
local function ensureDir(dir)
if Content:exist(dir) then
return Content:isdir(dir)
end
local parent = Path:getPath(dir)
if parent ~= dir and parent ~= "" then
assert(ensureDir(parent), "failed to create parent directory")
end
return Content:mkdir(dir)
end
if Content:exist(sourceDir) then
assert(Content:remove(sourceDir), "failed to remove existing source directory")
end
assert(ensureDir(sourceDir), "failed to create source directory")
assert(Content:save(Path(sourceDir, "a.txt"), "alpha"), "failed to create source file")
if Content:exist(zipFile) then
assert(Content:remove(zipFile), "failed to remove existing zip file")
end
assert(Content:zipAsync(sourceDir, zipFile), "failed to zip archive")
assert(Content:exist(zipFile), "zip file was not created")
assert(ensureDir(Path:getPath(outDir)), "failed to create output parent directory")
if Content:exist(outDir) then
assert(Content:remove(outDir), "failed to remove existing output directory")
end
-- Content:unzipAsync expects paths under Content.writablePath. Project files
-- are valid when projectDir is inside the writable project workspace.
assert(Content:unzipAsync(zipFile, outDir, function(filename)
return not filename:match("^__MACOSX/")
and filename ~= ".DS_Store"
and not filename:match("/%.DS_Store$")
end), "failed to unzip archive")
refreshTree()
print("zipped and unzipped", zipRel, "to", outRel)
Git mode uses the Dora engine Git client, not a shell. Use it for repository operations such as clone, status, diff, add, commit, fetch, pull, and push when those operations are appropriate for the task.
Rules:
cwd as a project-relative directory.git -C; use the tool's cwd parameter instead.git clone target paths are project-relative and are not affected by cwd.Git examples:
git status
git diff -- init.ts
git clone https://example.com/owner/repo.git .temp/repo
Run status inside that cloned sub-repository with:
{"mode":"git","cwd":".temp/repo","command":"git status"}
git add init.ts
git commit -m "Update init script"
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.
Use when developing the Dora-SSR engine itself, including C++ engine code, Lua/YueScript dev services, generated bindings, DoraX runtime, Web IDE integration, docs, tests, local validation, and release-facing engine changes.
Dora SSR coding rules for game/workspace projects; prevents browser DOM/Canvas/Node.js code in Dora engine scripts and forces Dora API lookup before using unfamiliar engine APIs.
Use this skill when designing, creating, or polishing UI/screens/HUDs/menus so the result is visually refined, coherent, responsive, and implemented with the correct Dora UI APIs.
Guide the agent to create a new project skill with correct placement, required metadata, and a practical SKILL.md template.
Agent memory files with grep-based scoped recall.