/gm-asset
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
$ npx -y skills add RandallLiuXin/GodotMaker --skill gm-asset --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/gm-asset
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
gm-asset.SKILL.mdname: 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
GodotMaker Asset
$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`.
Session Setup
Write `asset` to `.godotmaker/current_role` before any other action.
Resume Check
Asset is re-runnable per tag. Use the current state of `ASSETS.md`, `SCENES.md`, `references/`, and `.godotmaker/asset-generation/`.
Stop when any required input is missing:
1. `project.godot`: tell user to run `/gm-scaffold`. 2. `ROADMAP.md`, `STYLE.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 either check has current-tag work:
1. Any current-tag `ASSETS.md` row, including an Audio table row, with status `MISSING`. Under Manager Rule 9, mark unavailable audio rows `deferred` before considering the no-work path; only explicitly deferred audio is exempt from this check. 2. Current-tag scene references whose `references/scene_{name}.png` or report is missing or stale against `SCENES.md` and the Visual Asset Contract.
If neither check has work — no current-tag row is `MISSING`, unavailable audio is explicitly `deferred`, and all current-tag scene references are current — record the completed asset stage before stopping:
python tools/append_stage_event.py asset
Then stop with:
No MISSING assets and no missing scene references for the current tag. Recommended next: /gm-build.
If you've added new art files or scenes since last run, just tell me and I'll re-scan.
Manager Rules
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 `STYLE.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.
Provider Selection
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` |
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.
Asset Producer Model
Read `asset_producer_model` from `.godotmaker/config.yaml` and include it as `model:` in every `asset-producer` Agent call.
Production Unit Entry Points
Use `references/asset-planner.md` for production-unit selection.
| Production unit | First entry document | | --- | --- | | `screen-reference` | First-class `screen-reference` Asset Skill | | `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 | | `scene-prop-set` | First-class `scene-prop-set` Asset Skill | | `tileset` | First-class `tileset` Asset Skill |
Process
Step 1 - Inventory Current-Tag Work
1. Read `ASSETS.md`. 2. Read `PLAN.md`, `STYLE.md`, `SCENES.md`, and `STRUCTURE.md`. 3. Build a current-tag missing list. 4. Split the list into audio, user-provided candidates, scene references, and generated visual production units. 5. Keep prior-tag rows unchanged.
Step 2 - Detect User-Provided Files
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`.
Step 3 - Build Production Plan
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.
Apply the Visual Anchor Gate from `references/asset-planner.md` before dispatching generated visual work.
Step 4 - Dispatch Asset Producers
Dispatch `asset-producer` for every generated visual production unit.
Agent call shape:
Agent({
subagent_type: "asset-producer",
description: "Asset Producer: {unit_id}",
model: "{asset_producer_model from .godotmaker/config.yaml, defaultRead more
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
GodotMaker Asset
$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`.
Session Setup
Write `asset` to `.godotmaker/current_role` before any other action.
Resume Check
Asset is re-runnable per tag. Use the current state of `ASSETS.md`, `SCENES.md`, `references/`, and `.godotmaker/asset-generation/`.
Stop when any required input is missing:
1. `project.godot`: tell user to run `/gm-scaffold`. 2. `ROADMAP.md`, `STYLE.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 either check has current-tag work:
1. Any current-tag `ASSETS.md` row, including an Audio table row, with status `MISSING`. Under Manager Rule 9, mark unavailable audio rows `deferred` before considering the no-work path; only explicitly deferred audio is exempt from this check. 2. Current-tag scene references whose `references/scene_{name}.png` or report is missing or stale against `SCENES.md` and the Visual Asset Contract.
If neither check has work — no current-tag row is `MISSING`, unavailable audio is explicitly `deferred`, and all current-tag scene references are current — record the completed asset stage before stopping:
python tools/append_stage_event.py asset
Then stop with:
No MISSING assets and no missing scene references for the current tag. Recommended next: /gm-build. If you've added new art files or scenes since last run, just tell me and I'll re-scan.
Manager Rules
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 `STYLE.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.
Provider Selection
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` |
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.
Asset Producer Model
Read `asset_producer_model` from `.godotmaker/config.yaml` and include it as `model:` in every `asset-producer` Agent call.
Production Unit Entry Points
Use `references/asset-planner.md` for production-unit selection.
| Production unit | First entry document | | --- | --- | | `screen-reference` | First-class `screen-reference` Asset Skill | | `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 | | `scene-prop-set` | First-class `scene-prop-set` Asset Skill | | `tileset` | First-class `tileset` Asset Skill |
Process
Step 1 - Inventory Current-Tag Work
1. Read `ASSETS.md`. 2. Read `PLAN.md`, `STYLE.md`, `SCENES.md`, and `STRUCTURE.md`. 3. Build a current-tag missing list. 4. Split the list into audio, user-provided candidates, scene references, and generated visual production units. 5. Keep prior-tag rows unchanged.
Step 2 - Detect User-Provided Files
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`.
Step 3 - Build Production Plan
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.
Apply the Visual Anchor Gate from `references/asset-planner.md` before dispatching generated visual work.
Step 4 - Dispatch Asset Producers
Dispatch `asset-producer` for every generated visual production unit.
Agent call shape:
Agent({
subagent_type: "asset-producer",
description: "Asset Producer: {unit_id}",
model: "{asset_producer_model from .godotmaker/config.yaml, defaultAutonomous text-to-game pipeline for Godot, powered by Claude Code,Codex,Opencode
Repo: RandallLiuXin/GodotMaker
Other skills on godotmaker.
- /background-map
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Open skill - /card-kit
Produce reusable card art sources and native Godot card UI resources.
Open skill - /character-bundle
Produce one illustrated character SpriteFrames resource from high-level body-action intent, optional character and style references, and a resolved animation plan.
Open skill - /compact-prop-pack
Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for every declared prop.
Open skill - /fx-bundle
Produce a standalone static Texture2D effect or one explicitly timed animated SpriteFrames effect.
Open skill - /platform-strip
Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture regions.
Open skill

