background-map
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Asset stage manager. Reads current-tag ASSETS.md gaps, accepts user-provided assets, plans visual production units, dispatches asset-producer subagents, collects validated Asset Skill results, updates ASSETS.md directly, and emits minimal worker runtime snapshots from that one
Claude Code
$ npx -y skills add RandallLiuXin/GodotMaker --skill gm-asset --agent claude-code
Codex
$ npx skills add RandallLiuXin/GodotMaker --skill gm-asset -a codex -y
Cursor
$ npx skills add RandallLiuXin/GodotMaker --skill gm-asset -a cursor -y
Gemini CLI
$ npx skills add RandallLiuXin/GodotMaker --skill gm-asset -a gemini-cli -y
GitHub Copilot
$ npx skills add RandallLiuXin/GodotMaker --skill gm-asset -a github-copilot -y
OpenCode
$ npx skills add RandallLiuXin/GodotMaker --skill gm-asset -a opencode -y
Windsurf
$ npx skills add RandallLiuXin/GodotMaker --skill gm-asset -a windsurf -y
name: gm-asset description: | Asset stage manager. Reads current-tag ASSETS.md gaps, accepts user-provided assets, plans visual production units, dispatches asset-producer subagents, collects validated Asset Skill results, updates ASSETS.md directly, and emits minimal worker runtime snapshots from that one authority. Explicit invocation only - use /gm-asset. disable-model-invocation: true
$ARGUMENTS
You manage the asset stage for the current tag. Read the tag from `PLAN.md`'s `**Tag:**` header. Process only `ASSETS.md` rows whose `Tag` matches the current tag and whose `Status` is `MISSING`.
Write `asset` to `.godotmaker/current_role` before any other action.
Asset is re-runnable per tag. Use the current state of `ASSETS.md`, `SCENES.md`, and `.godotmaker/asset-generation/`.
Stop when any required input is missing:
1. `project.godot`: tell user to run `/gm-scaffold`. 2. `ROADMAP.md`, `DESIGN.md`, `ASSETS.md`, `SCENES.md`, or `PLAN.md`: tell user to run `/gm-gdd`. 3. Missing `**Tag:**` header in `PLAN.md`: tell user to re-run `/gm-gdd`.
Proceed when any current-tag `ASSETS.md` row, including an Audio table row, has status `MISSING`. Under Manager Rule 9, mark unavailable audio rows `deferred` before considering the no-work path; only explicitly deferred audio is exempt.
If no current-tag row is `MISSING`, unavailable audio is explicitly `deferred`, and no other work remains, record the completed asset stage before stopping:
python tools/append_stage_event.py asset
Then stop with:
No MISSING assets for the current tag. Recommended next: /gm-build. If you've added new art files since last run, just tell me and I'll re-scan.
1. Write directly only to project-root `ASSETS.md` and `.godotmaker/`. 2. Do not read image binaries from `assets/` or `references/`. 3. Dispatch `analyst` for user-provided asset inspection. 4. Dispatch `asset-producer` for generated visual production units. 5. Do not generate raw visual art in the manager context. 6. Do not write generated image files with direct Write/Edit. 7. Do not modify `GDD.md`, `PLAN.md`, `GAP.md`, `STRUCTURE.md`, `SCENES.md`, or `DESIGN.md`. 8. Do not write game code. 9. Mark audio rows `deferred` unless the user provided matching files. 10. Do not modify prior-tag rows.
Read `.godotmaker/config.yaml` and use `asset_image_model`.
| `asset_image_model` | Provider doc | | --- | --- | | `native` | `references/providers/native.md` | | `codex` | `references/providers/codex.md` | | `gemini:<model>` or `gemini` | `references/providers/gemini.md` | | `openai:<model>` or `openai` | `references/providers/openai.md` | | `grok:<model>` or `grok` | `references/providers/grok.md` | | `wan:<model>` or `wan` | `references/providers/wan.md` |
If the configured provider is unavailable, stop and ask the user to choose another `asset_image_model`.
Include the selected provider doc in every `asset-producer` brief.
Read `asset_producer_model` from `.godotmaker/config.yaml` and include it as `model:` in every `asset-producer` Agent call.
Use `references/asset-planner.md` for production-unit selection.
| Production unit | First entry document | | --- | --- | | `character-bundle` | First-class `character-bundle` Asset Skill | | `fx-bundle` | First-class `fx-bundle` Asset Skill | | `ui-kit` | First-class `ui-kit` Asset Skill | | `card-kit` | First-class `card-kit` Asset Skill | | `compact-prop-pack` | First-class `compact-prop-pack` Asset Skill | | `background-map` | First-class `background-map` Asset Skill | | `platform-strip` | First-class `platform-strip` Asset Skill | | `portrait` | First-class `portrait` Asset Skill | | `scene-prop-set` | First-class `scene-prop-set` Asset Skill | | `tileset` | First-class `tileset` Asset Skill |
1. Read `ASSETS.md`. 2. Read `PLAN.md`, `DESIGN.md`, `SCENES.md`, and `STRUCTURE.md`. 3. Build a current-tag missing list. 4. Split the list into audio, user-provided candidates, and generated visual production units. 5. Keep prior-tag rows unchanged.
Read `references/analyst-dispatch.md`.
Run:
python tools/asset_user_preflight.py --project-root .
When image candidates exist:
1. Dispatch `analyst` with only the candidate paths. 2. Use the analyst report and `assets/manifest.json`. 3. Update high-confidence `direct_runtime` current-tag rows to `provided`, and fill `Runtime Type` and the `res://` `Runtime Path` of the accepted file in the same edit. A `provided` row with incomplete runtime columns cannot be resolved into a worker snapshot. 4. Keep `source_for_processing` rows in the generated visual production plan. 5. Leave uncertain files unchanged.
For audio candidates:
1. Match exact paths first. 2. Use clear filename or asset-id matches only. 3. Update matching current-tag rows to `provided`.
Read:
1. `references/asset-planner.md` 2. `references/asset-runtime-pipeline.md`
Write plan artifacts under `.godotmaker/asset-generation/work/`.
Use `references/asset-planner.md` for grouping, dependencies, batch rules, and plan artifact fields.
For a `ui-kit` unit, complete the **UI-kit pre-dispatch planning** procedure in `references/asset-planner.md` first. The manager owns those planning artifacts, derives the complete `spec.styleboxes`, `spec.atlas_regions`, and Theme declaration from them, and only then writes the canonical request. Do not dispatch a producer with an incomplete UI-kit request and do not ask the producer to repair or fill one.
For every production unit, write its complete generic Asset Skill request to `.godotmaker/asset-generation/<asset_id>-request.json`. Validate it with `python tools/asset_skill_contract_check.py --kind request <request-pat
Autonomous text-to-game pipeline for Godot, powered by Claude Code,Codex,Opencode
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Produce reusable card art sources and native Godot card UI resources.
Produce one illustrated character SpriteFrames resource from high-level body-action intent, optional character and style…
Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for…
Produce a standalone static Texture2D effect or one explicitly timed animated SpriteFrames effect.
Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture…
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…