Skip to content
Automation
Skill

/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

From plugin
godotmaker
56241 skills7 agents15 hooks

Claude Code

$ npx -y skills add RandallLiuXin/GodotMaker --skill gm-asset --agent claude-code

SKILL.md

gm-asset.SKILL.md
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`, 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.

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 `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.

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` | | `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.

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 | | --- | --- | | `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 |

Process

Step 1 - Inventory Current-Tag Work

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.

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.

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

Read more
@randallliuxin
Ships withgodotmaker

Autonomous text-to-game pipeline for Godot, powered by Claude Code,Codex,Opencode

56241 skills7 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
562
Star history of RandallLiuXin/GodotMaker on GitHub, a chart by star-history.com

Other skills on godotmaker.

platform-strip

platform-strip

Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about gm-asset.

Which coding agents can use gm-asset?
gm-asset installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.