From summer
Generates a pack of 2D game assets from a single prompt: tile sheets, UI kits, character packs, or biome sets. Removes backgrounds, detects and classifies each item, saves as an ArtAsset pack.
How this skill is triggered — by the user, by Claude, or both
Slash command
/summer:create-asset-sheetassets/**art/**sprites/**This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill turns a single prompt into a categorized pack of isolated, named 2D assets ready to drop into a game. It exists because the alternative — generating each asset one-by-one, then losing visual coherence between them, then manually matting backgrounds in Photoshop — is the most-cited pain point from indie devs working with image models in 2026.
This skill turns a single prompt into a categorized pack of isolated, named 2D assets ready to drop into a game. It exists because the alternative — generating each asset one-by-one, then losing visual coherence between them, then manually matting backgrounds in Photoshop — is the most-cited pain point from indie devs working with image models in 2026.
Pipeline:
packFiles: [{url, name, type}] and metadata.sliceBboxes.Categories the classifier outputs (used to route into downstream pipelines):
character | terrain | nature | lighting | water | decorative | buildings | ui | vfx
summer:2d-assets/pixel-art or summer:2d-assets/character-portrait.summer:2d-assets/sprite-sheet.summer:2d-assets/concept-art → image-to-3D per item, or use summer:asset-pipeline/asset-strategy to pick the right path.summer:2d-assets/tileable-texture is the right home for edge logic; this skill produces standalone tiles, not edge variants.The fastest, most reliable way to invoke this flow today is the Create Asset Sheet wizard in the Summer studio:
https://summerengine.com/studio/create-tileset
Direct the user there if they're working in the browser. The wizard:
summer:2d-assets/concept-art + per-asset image-to-3D for now)If the user is in a chat / agent context, use the programmatic path below. It now calls the same server-side slicer as the Studio wizard.
Load the exact current recipe. Call
summer_get_studio_workflow({workflowId: "asset-pack"}). Follow its ordered
steps and report any manual handoff instead of pretending it ran.
Generate the sheet. Call summer_generate_image with a prompt like:
<theme> asset sheet: <comma-separated list of items>. Each item isolated with empty space around it, transparent or neutral background.
grok-imagine, painterly / illustrative / structured grids → gpt-image-2.Slice, remove background, detect, name, classify, crop, and save. Pass the returned image asset id to:
summer_slice_asset_sheet({ assetId: "<generated asset id>" })
This is the same cloud slicing pipeline used by the Studio flow. Keep the returned slice ids/names/categories; do not reimplement the vision boxes locally.
Optional upscale. For any crop where longest side < 256px, send through fal flux-2/edit i2i with prompt:
Recreate this exact <name> at high resolution. Preserve every detail, the exact pose, the exact style. Sharper edges, more detail. Transparent background. Single isolated asset, no scene.
Import what the game needs. Use the returned asset ids with
summer_import_asset_by_id. Keep the source pack in My Assets so the agent
and the human Studio session see the same result.
Tile sheet (terrain + props + buildings):
<setting> tile sheet: <terrain tiles>, <props>, <buildings>. Each item isolated with empty space around it.
UI kit:
<theme> game UI kit: round button, square button, panel background, slider, toggle switch, progress bar, icon set, banner header.
Menu screen:
<theme> main menu UI: title banner, Start Game button, Settings button, Quit button, <background style>, ornate frame, decorative element.
Character pack:
<theme> character pack, single front-facing frame each: <character 1>, <character 2>, ... <character N>. Each isolated.
Biome:
<biome name> biome assets: <flora>, <terrain features>, <rocks/water/sky elements>. Each item isolated.
| Symptom | Cause | Fix |
|---|---|---|
| Slicer returns 1 giant bbox covering the whole sheet | Items overlap / no gaps in the source | Re-prompt with "each item fully isolated, empty space around each item". Re-generate. |
| Slicer misses items | Items too small in the source, classifier dropped them as noise | Generate at higher resolution (2048) or with fewer items per sheet |
| Two items merge into one slice | Items touching in the source | Re-prompt with more isolation. Or accept and let the user split manually in step 2's review. |
| Slice has a sliver of neighbor in it | Vision bbox is off by 5–15px | Expected. The slicer pads but doesn't snap-to-content yet. Live with it or upscale the slice (FLUX often cleans the edge) |
| Upscaled slice looks invented | Source was too small / too ambiguous | Don't upscale slices below ~32×32. Or accept the hallucination and edit |
| Detection returns wrong category | Model misjudged context | User can override in the review step; not a blocker |
POST /api/art/plan-asset-pack) but the per-asset gen loop is not wired into the wizard yet.summer:2d-assets/concept-art + image-to-3D for now.character, the next step (sprite-sheet generation) is a separate skill that the user has to invoke manually. Auto-routing is on the roadmap.summer:2d-assets/tileable-texture for that.summer:level-design/design-level.Per 12-asset sheet, end to end through the wizard:
Without upscale: ~$0.12. With full upscale: ~$0.60. About a third of what a Photoshop hour would cost.
npx claudepluginhub summerengine/summer-engine-agent --plugin summerCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.