background-map
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture regions.
Claude Code
$ npx -y skills add RandallLiuXin/GodotMaker --skill platform-strip --agent claude-code
Codex
$ npx skills add RandallLiuXin/GodotMaker --skill platform-strip -a codex -y
Cursor
$ npx skills add RandallLiuXin/GodotMaker --skill platform-strip -a cursor -y
Gemini CLI
$ npx skills add RandallLiuXin/GodotMaker --skill platform-strip -a gemini-cli -y
GitHub Copilot
$ npx skills add RandallLiuXin/GodotMaker --skill platform-strip -a github-copilot -y
OpenCode
$ npx skills add RandallLiuXin/GodotMaker --skill platform-strip -a opencode -y
Windsurf
$ npx skills add RandallLiuXin/GodotMaker --skill platform-strip -a windsurf -y
name: platform-strip description: Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture regions.
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.
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.
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>.
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 and validate one character portrait for a UI display slot as a ready-to-load Texture2D.
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…