Skip to content
Automation
Skill

/ui-kit

Produce a complete reusable flat-first Godot UI Theme from a binding visual reference, with two provider-generated source sheets, fixed square nine-slice patches, stable AtlasTexture icons, and native Theme bindings.

From plugin
godotmaker
55941 skills7 agents15 hooks

Claude Code

$ npx -y skills add RandallLiuXin/GodotMaker --skill ui-kit --agent claude-code

SKILL.md

ui-kit.SKILL.md
name: ui-kit
description: Produce a complete reusable flat-first Godot UI Theme from a binding visual reference, with two provider-generated source sheets, fixed square nine-slice patches, stable AtlasTexture icons, and native Theme bindings.

UI Kit Asset

Produce one reusable visual system, not a page layout. The result gives a worker a complete Godot `Theme`, named `StyleBoxTexture` resources, and named `AtlasTexture` icons. Its reusable art covers button states, panels, tabs, and semantic icons. It does not create a composite screen, readable UI copy, characters, logos, gameplay geometry, or final `Control`/`Container` layout. Do not use it for card frames. Do not use it for portrait frames.

Read [references/theme-baseline.md](references/theme-baseline.md) and [references/source-sheet-scheme.json](references/source-sheet-scheme.json) before planning. They own the baseline controls, stable runtime names, two provider sheets, fixed patch geometry, and source-to-runtime reuse mappings. The caller's brief supplies visual direction; do not make it repeat this contract.

Input gate

Accept the shared Asset Skill request schema at `.godotmaker/asset-runtime/schema/asset-skill-request.schema.json`; require `asset_type: ui-kit`, a pinned `provider` (`native`, `codex`, `gemini`, `openai`, `grok`, or `wan`), and at least one readable image in `references`. Preserve every reference `role`. Missing or unreadable references and pixel-art requests are input-gate STOP conditions.

Validate the returned document with the shared result schema and checker at `.godotmaker/asset-runtime/schema/asset-skill-result.schema.json` before family binding checks.

Attach every reference as real image input to both provider calls. The Codex route uses `referenced_image_paths`; other routes use their declared attachment mechanism. Never reduce a reference to prompt text or silently switch provider. Record provider, image model when exposed, coding model, reasoning, roles, absolute attached paths, call identity, prompt, and attempt in provenance. STOP before generation if the pinned route cannot attach every reference.

This skill can be invoked directly or by an orchestrator with the same contract. Do not read or write `ASSETS.md`, tags, stage state, generated manifests, stable entries, or worker dispatch state.

The caller owns pre-dispatch planning. Before invoking this skill it must write `theme_plan.json`, `source_sheet_plan.json`, `stylebox_plan.json`, and `theme_recipe.json` under `.godotmaker/asset-generation/work/<asset_id>/`, use them to finish the canonical request, and then freeze that request. Under `/gm-asset`, the manager performs this work. The producer consumes all five inputs read-only.

Produce

1. Read the visual rules stated in `brief` — for a UI kit they cover both the image style and the UI visual language — then read the caller-owned `.godotmaker/asset-generation/work/<asset_id>/theme_plan.json`. Do not inspect the references to derive a replacement plan. The plan records how those rules and pre-dispatch reference evidence resolve into this family's required tokens for this one request; it is a production artifact, never a reusable style source, and it never adds a rule the brief did not state. A pre-dispatch finding that a reference contradicts a stated rule is a STOP with a blocker naming the reference role, its path, and the rule. It contains:

  • a positive `rendering_medium` such as `bold comic-book game art`,

`hand-painted fantasy illustration`, or `glossy mobile-game illustration`;

  • exactly the color tokens required by `asset_ui_theme_recipe.py`:

`text`, `text_muted`, `text_outline`, `surface`, `surface_raised`, `input`, `primary`, `secondary`, `danger`, `success`, `border`, `focus`, `selection`, and `shadow`;

  • exactly the geometry tokens `corner_radius_small`,

`corner_radius_medium`, `corner_radius_large`, `border_width`, `content_margin`, `shadow_size`, `shadow_offset`, and `font_size`;

  • concise observations for palette, contrast, shape, outline, shadow, and

material language, plus the `brief` rules and the reference roles and paths each observation was derived from.

Write `rendering_medium` and your own added prompt language positively; do not author a pixel-art negation of your own. This does not license editing the caller's rules: a rule the `brief` states is carried as written even when it names pixel art. The Theme plan is a deterministic visual-system specification, not generated art.

2. Generate the deterministic source plan before dispatch. The caller owns this step with `asset_ui_source_sheet_plan.py`, using its planning request rather than the not-yet-created canonical request. During production, read its result at `.godotmaker/asset-generation/work/<asset_id>/source_sheet_plan.json`; do not regenerate or modify it after dispatch.

Both plan prompts carry the `brief` word for word — every selected design rule, `Do` / `Don't` entry, and UI visual-language rule reaches both provider calls as written. There is no exception: the plan never drops, rewrites, or reweights a carried rule, because a rule the caller selected and the provider never sees is a rule that was not applied. Its line structure is kept too, so a heading and each bullet stay separate rules instead of reflowing into one running sentence.

Naming pixel art in an image prompt can bias a provider toward it, so every carried rule that does so — whatever its phrasing — is recorded under `visual_direction.pixel_art_rule_notes` with `disposition: carried_verbatim`. Report those notes as a residual risk; do not treat them as permission to edit the rule. `rendering_medium` still states the medium positively in the same prompt.

Use the plan prompts unchanged. Make exactly two provider calls, attaching every reference to each call:

  • `surface_pa
Read more
@randallliuxin
Ships withgodotmaker

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

55941 skills7 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
559
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…

n8n13d209k
@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
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install 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 ui-kit.

Which coding agents can use ui-kit?
ui-kit 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.