Skip to content
Automation
Skill

/platform-strip

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

From plugin
godotmaker
55941 skills7 agents15 hooks

Claude Code

$ npx -y skills add RandallLiuXin/GodotMaker --skill platform-strip --agent claude-code

SKILL.md

platform-strip.SKILL.md
name: platform-strip
description: Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture regions.

Platform Strip Asset

Use for collision-aligned floors, bridges, rails, pipes, terrain ledges, and long horizontal hazards. Do not use for characters, UI, compact props, full backgrounds, or pixel art.

Contract

Accept the shared Asset Skill request schema at `.godotmaker/asset-runtime/schema/asset-skill-request.schema.json` with `asset_type: "platform-strip"`. Use the shared result schema and checker. This skill can be invoked directly or by an orchestrator with the same contract. Do not read or write `ASSETS.md`, tags, stage state, or generated manifests.

`spec` must contain exactly:

{
  "kind": "single" | "atlas",
  "grid": {"columns": 3, "rows": 1, "cell_width": 160, "cell_height": 80},
  "segments": [
    {"name": "left_cap", "role": "left_cap", "slot": [0, 0]},
    {"name": "repeat_middle", "role": "repeat_middle", "slot": [1, 0]},
    {"name": "right_cap", "role": "right_cap", "slot": [2, 0]}
  ]
}

The fixed grid dimensions are positive integers. This v1 family is one closed horizontal row: `rows` must be `1`, `columns` must equal `segments.length`, and entries must be declared in left-to-right slot order as `[0, 0]` through `[columns - 1, 0]`. The first entry is the only `left_cap`, the last is the only `right_cap`, and every interior entry is `repeat_middle`. Empty slots, reordered entries, and a request without a repeatable middle segment are unsupported.

Carry every visual rule stated in `brief` into the prompt as written; it is the visual specification for this strip. `references` is optional and conditions those rules rather than replacing them. With references, validate every path is readable, preserve each declared role, and pass the actual images to the selected provider. Do not replace image attachments with prompt text. If the pinned provider cannot accept the supplied images, return STOP. If a supplied reference contradicts a rule stated in `brief`, return STOP with a blocker naming the reference role, its path, and the rule. Without references, generate from the written brief.

Honor the requested provider exactly. `native`, `codex`, `gemini`, `openai`, `grok`, and `wan` never fall back to another provider. For Codex, call the image provider with `referenced_image_paths` containing each readable local reference image. If that attachment cannot be made, STOP. Record the provider, model, prompt, reference paths and roles, provider payload or trace, raw source path, and processing reports under `.godotmaker/asset-generation/` using the provider's controlled report or claim tool; never hand-write provenance JSON.

Produce

1. Reject pixel-art requests. Request non-pixel-art painted, illustrated, or rendered source art. Do not use nearest-neighbor scaling. 2. Create a layout-only guide with `tools/asset_layout_guide.py` using the declared grid. The guide is not art and is not a runtime output. 3. Request one real provider source sheet with one horizontal slot per declared segment. Require a solid `#FF00FF` background, a shared walkable top height, no labels, UI, actors, text, props, or grid lines. Preserve the provider's returned pixels as the raw source even when its raster dimensions differ from the target grid. 4. Store the unmodified provider image at `.godotmaker/asset-generation/sources/<asset_id>_source.png`. For `codex`, follow `skills/core/gm-asset/references/providers/codex.md`: write the planned generated-path record and the runtime generated-path record, then run `python .godotmaker/asset-runtime/tools/codex_image_claim.py --plan <plan.json> --report <generated-paths.json> --project-root . --out-report .godotmaker/asset-generation/reports/<asset_id>_source.json`. Use that claim result as the provenance record. For API-backed providers, use `tools/asset_source_generate.py --spec` with its `report_path`. The report must be generated by those controlled tools, not hand-written. Do not create, draw, or alter visual source art with temporary scripts, Pillow, System.Drawing, ImageMagick, SVG, canvas, Godot drawing, or placeholder generation. 5. Split the raw provider sheet before any crop, resize, or padding. Never normalize the whole sheet as one image: doing so changes the declared grid coordinates. Use the owned deterministic tool with the declared source grid and names in declared slot order. It deterministically covers every source pixel even if the provider raster dimensions are not evenly divisible by the requested grid:

   python tools/asset_sheet_process.py --source <raw-source> --out-dir <sliced-dir> --grid <columns>x1 --names <segment-names-in-slot-order> --background magenta --snap-mode grid --preserve-cell-bounds --report .godotmaker/asset-generation/reports/<asset_id>_sheet.json

Use the report to reject missing art, opaque magenta pixels, edge-touching art that breaks the declared slot, or a cell that does not retain its fixed dimensions.

6. For each already-sliced cell, use `asset_sheet_process.py --grid 1x1 --background transparent --snap-mode grid` without `--preserve-cell-bounds` to crop that cell's visible AABB. Then finalize that cropped cell independently with `asset_image_finalize.py --resize <cell_width>x<cell_height> --no-origin`. Save each output under `<normalized-dir>/<segment>.png` and each finalize report at `.godotmaker/asset-generation/reports/<asset_id>_<segment>_normalize.json`. Do not recombine or resize the raw sheet between slicing and this per-cell finalization.

7. For `kind: "single"`, publish every normalized cell at `res://assets/generated/platform-strip/<asset_id>/<segment>.png` and return it as `Texture2D`. 8. For `kind: "atlas"`, create an explicit fixed-slot declaration from the normalized cells. Assemble it only with `tools/asset_atlas_assemble.py`; publish `<asset_id>.png` and `<asset_id>.

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.

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…

n8n11d209k
@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 platform-strip.

Which coding agents can use platform-strip?
platform-strip 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.