Launch Ready logo

Launch Ready

Organization
SummerEngine
launch-ready

Get a game ready to launch on Summer Games and take it live: upload, real screenshots, store art and listing, gathered and filled in.

Overview

PublisherSummerEngine
Repositorysummer
Skill namelaunch-ready
Stars
91
Forks
8
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by SummerEngine on GitHub. Read the source before you install it.

Installation

Install the Launch Ready AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/SummerEngine/summer/tree/main/library/skills/launch-ready
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/SummerEngine/summer.git /tmp/summer
mkdir -p .claude/skills
cp -r /tmp/summer/library/skills/launch-ready .claude/skills/launch-ready
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Launch Ready in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Launch Ready on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Launch Ready is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

/launch-ready: gather everything the game needs, then take it live

The release-checklist skill checks a game before launch and reports what is missing. This skill makes it pass: it exports and uploads the build, captures real gameplay screenshots, makes the key art and icons, writes the store page from the project, fills in every listing detail, shows the creator the result and takes the game live with one confirmation.

The checklist is the source of the rules. Read it first (summer_docs_read with id skill/release-checklist); this skill names its rules by number (1.1 to 4.14) and says how to make each one pass.

A call written area.action is the tool summer_area_action when your client lists it, else summer_call with op: "area.action". Engine tools keep their summer_* names.

Rules that never bend

  • Never invent a fact. Every feature, mode, player count, language, rating answer and AI answer comes from something you saw in the project or in play, or from the creator. When you can't tell, ask.
  • Screenshots are real gameplay. Frames from the running game, unedited: no captions, no overlays, no mockups, no AI edits. The game's own HUD may show.
  • Key art may be generated, but it shows this game: its characters, its world, its art style, and nothing it doesn't have. Start from a real capture.
  • Tags, genres and features describe the game. They are not keywords for reach. Pick only what is true; never add a popular tag the game doesn't earn.
  • The content rating, the content questionnaire and the AI disclosure are statements the creator makes. Draft them from evidence, show the evidence, and have the creator confirm them. Parents' controls use the rating, so when in doubt pick the stricter answer.
  • Ask the creator for what the project can't tell you: the price, the support contact, the developer name, the release stage, and anything legal or factual you could not see.
  • Say what you will generate before you spend credits. Every generation call takes dryRun: true for the estimate.
  • Nothing goes live before the creator's yes to the summary in step 6.

The flow

  1. Find the game and run the checklist, changing nothing.
  2. Gather the facts from the project.
  3. Ask the creator once: the questions and the plan.
  4. Fix each failure: build, screenshots, art, listing.
  5. Run the checklist again until it passes.
  6. Show the creator everything and get one confirmation.
  7. Go live, and report live or the exact blocker.

1. Find the game and run the checklist

  1. summer_get_project_context: binds the project and returns the main scene and project memory (GameSoul, decisions).
  2. games.list finds the store game by name. When there is none, plan games.create with the title and targets (it makes a draft; nothing is published).
  3. Read the state: store.get_listing with previews: true (text, art per slot, checklist, readyToPublish, availableTags), store.status (every upload, its version, state and checks, and what is live) and pricing.get.
  4. Mark every checklist rule pass, fail, not applicable or not run. Rules 1.x and 2.x stay not run until step 4 exports and uploads.

2. Gather the facts from the project

Read before you write. Keep each fact with where you found it; the summary in step 6 shows the source.

FactWhere
What the game is, its genre, its core loop, its look.summer/GameSoul.md, .summer/memory/, .summer/build-plan.md, README.md, project.godot (application/config/name, description)
The gameplay scene and how to reach itThe main scene, the title screen's buttons, the game's command-line flags (OS.get_cmdline_user_args)
Online playsummer.build.json names a server; Summer.client matchmaking or join code
Saves that follow the playerSummer.authority.player_data commits
Purchasessummer.items.json, Summer.client.store calls
Controller supportJoypad events in the InputMap: every action (full) or some (partial)
Languagesinternationalization/locale/translations, .po or .csv files; voiced lines and their subtitles
Renderer and sizerendering/renderer/rendering_method; the export's file size
Phone orientationdisplay/window/handheld/orientation
Mature contentWhat you see in play, the dialogue and text files, the art
AI useAssets generated with Summer (assets.get says aiGenerated), .summer/ generation records, code an agent wrote (git history, .summer/ records, and you if you wrote any), AI that runs inside the game

Then play it: summer_play, reach the gameplay with summer_game_input, and look with summer_screenshot (target: "game"). Note the good moments for screenshots (below) and the inputs that reach them, and anything a rating answer depends on: violence, blood, language, flashing lights, other players. summer_get_diagnostics, then summer_stop.

3. Ask the creator once

One message, before anything changes or anything is spent:

  • What is missing: each failed rule, one line.
  • What you will do: export and upload version vX.Y.Z; capture N screenshots; generate key art, icons, tall cover and capsules (with the dryRun credit estimate); write the store text. Their yes approves these; none of it makes the game live.
  • What only they can answer, as choices with your recommendation first:
    • Price: free, or a price. A paid game needs their seller account set up in Studio first; until then it stays free.
    • Support contact: an email address or an https page.
    • Developer name, and the publisher if there is one.
    • Release stage: released, early access, or in development (listed only on the In development page).
    • Anything the evidence did not settle: chat with strangers, content made by players, flashing lights, real-world brands or people.

Wait for the answers.

4. Fix each failure

Build (rules 1.1 to 2.5)

What to upload (rule 1.5): the Summer apps on iPhone, Android, macOS and Windows run a store bundle (format bundle), with or without a server. A web build or a desktop download for the store page is format download, one per platform.

An upload is missing when store.status has none for a target, and stale when the newest one is older than the project's last change (git log -1 --format=%cI, or the newest file outside .godot/ and .summer/), failed, failed a check the creator owns, or carries a Summer version line older than the current release (rule 1.2).

  1. summer_export_game: format bundle (a game with a server may pass its targets and alignDeclaration: true to keep summer.build.json in step), or format download with one target. Read rules 1.1 to 1.5 from the answer.
  2. Run the release-readiness checks an agent can run on a bundle .zip (1, 6, 7, 8 steps 1 to 4, 9). A failure there is a game change: show it to the creator and fix it with their OK before uploading.
  3. summer_publish_build with the gameId, the next clientVersion (one past the newest in store.status), the platform for a download, and confirm: true (step 3 approved it). For a bundle, read checksState and every checks entry: owner: "creator" means fix, export again and upload a new version; owner: "summer" means nothing to change; checking means call again. Keep the publicationId. A download is ready when store.status says so (rule 2.5).

Screenshots (rules 3.4 and 3.7)

  1. Pick the moments from your play in step 2. Good moments show the core action, different places, enemies or characters, and a reward or upgrade screen. Skip menus, loading, pause, empty rooms, debug text and near-duplicates.
  2. Capture them full size with summer_capture_gameplay: the gameplay scene, or the game's args or steps to get past the title, one shot step per moment, up to 10 frames. Use resolution 1920x1080 for desktop. Phones take the same 1920x1080 frames when the game is landscape, and 1080x1920 when it is portrait.
  3. Look at every frame before you use it. Drop black, blurred, title, paused or repeated ones. A warning that frames are not the size you asked for comes from the project's stretch settings: never upscale; tell the creator and ask before changing the game.
  4. Keep the best: 4 to 8 for desktop, 3 to 8 for phones, the strongest first.
  5. Upload each one: assets.upload_begin, run its example command with the file path, then assets.upload_complete with publicId, version and uploadSignature (public_id, version and signature in that command's answer) and format png. You get an assetId and a fileUrl.
  6. store.set_art with slot desktop.screenshots or mobile.screenshots and the asset ids. Use mode: "append" to keep good screenshots already on the page. Read placed and checklist in the answer.

Key art, icons, tall cover and capsules (rules 3.3, 3.5, 3.6, 3.8, 3.9)

Load the store-art skill first (summer_docs_read with id skill/store-art) and follow it: it has each slot's current rules. Where it and this table differ, it wins.

Start from the strongest capture: assets.edit_image with its fileUrl as imageUrl, the size below, and a prompt that keeps the game's characters, world, colours and art style, recomposes the scene for the slot, removes the HUD and adds no text. When the edit loses the game's look, assets.generate_image with the capture as referenceImageUrl.

SlotSize to ask forText
desktop.keyArt, mobile.keyArt2048x1152 (16:9)None
mobile.tallCover1152x2048 (9:16)None
desktop.icon, mobile.icon1024x1024None; one clear subject that reads small
desktop.capsuleTall1200x1600 (3:4)Only the game's own logo, when the project has one
desktop.capsuleWide1472x688 (460:215)Only the game's own logo, when the project has one

Each size is a multiple of 16 (what assets.edit_image takes) and above the slot's minimum. Both key art slots may use the same image, and both icons too. Never invent a logo.

Look at every result (assets.get, then open its file). It must show this game. Make at most two tries per slot; when neither shows the game, ask the creator. Put each into its slot with store.set_art, with a focalPoint on key art and covers so the store's crops keep the subject. A shape refusal names the slot's rule: make it again at the right size. The page holds at most 20 images and videos (rule 3.10).

Listing details (rules 4.1 to 4.13)

Load the store-listing skill (summer_docs_read with id skill/store-listing) for the writing rules. Then fill:

FieldFromWith
Title (4.1)The current title; else the project's namestore.update_listing
Tagline (4.2), short descriptions (4.3), long description (4.4)GameSoul, README, what you saw in play: what the player does, the modes, the controlsstore.update_listing
Tags (4.5)3 to 8 that are true, from availableTags onlystore.update_listing
Targets (4.7)The platforms the build was exported forstore.update_listing
Support (4.11), release stage (4.12)The creator's answersstore.update_listing
Content rating and descriptors (4.8)The questionnaire below, confirmed by the creatorstore.update_listing
Genres, features (4.6)Genres from availableTags (category genre); features only the project provessummer_store_set_details
Credits, languages, system requirementsThe creator's names; the languages the game ships; for requirements only what you know (operating systems from the targets, graphics from the renderer, storage from the export size, network when it plays online)summer_store_set_details
Content questionnaire (4.9)Belowsummer_store_set_details
AI disclosure (4.10)Belowsummer_store_set_details
Price (4.13)The creator's answerpricing.set_base, only for a price they chose

The content questionnaire. Answer each question from what you saw: violence (none, fantasy, realistic), blood, sexual content, nudity, strong language, substances, gambling (simulated or real money), content players make that others see, playing with others online, and purchases. none is an answer only after you looked. The content rating is the lowest of everyone, everyone10Plus and teen that honestly covers those answers, with every descriptor that applies ([] when none does). If no rating on the list covers the content, stop and ask the creator; never pick a milder one to fit.

The AI disclosure. assets when any image, model, sound or video in the game or on its store page was generated (the art step above counts), code when an AI agent wrote code for it (you count, if you wrote any), generatedGameplay when the running game generates content with AI (describe what it generates and its guardrails). [] only when the creator confirms no AI was used.

These drafts go on the page draft, which players don't see; the creator confirms them in step 6, before anything goes live.

pricing.set_base may answer needs_approval (give the creator the link) or seller_setup_required (the game stays free until they set up selling in Studio; say so). Record the creator's answers and what you made in .summer/build-plan.md.

5. Run the checklist again

Read store.get_listing (checklist, readyToPublish) and store.status, and go through every rule. Fix what still fails and read again. Stop after three rounds that change nothing: report the rule, what you saw and who must act. A rule only the creator can clear (a seller account, a Studio setting) is reported, not retried.

6. Show the creator everything, and get one confirmation

  1. summer_go_live with the gameId, the bundle's publicationId (when there is one) and no confirm: it answers the plan (the platforms, the version, the page).
  2. store.preview_link with the gameId: a private link to the page as players will see it.
  3. One message:
    • the preview link;
    • every image with its slot: the local file path of each capture, and the preview URLs from store.get_listing with previews: true, as images where the chat shows them;
    • all text, word for word: title, tagline, descriptions, tags, genres, features, languages, requirements, support, release stage, price;
    • the content questionnaire, the rating and the AI disclosure, each answer with its evidence;
    • the build version and its checks, and the release-readiness checks only a player can run, marked not run;
    • the credits spent;
    • the go-live plan.
  4. Ask one question: take it live? A change request: make it, run the affected part of the checklist again, show what changed and ask again.

7. Go live

summer_go_live with the gameId, the bundle's publicationId (when there is one) and confirm: true. Report its answer:

  • live: the store URL. Ask the creator to open it as a player on summer.games and in the Summer Games apps, and to run the release-readiness player checks (2, 8 step 5, 9 step 3, 10).
  • blocked: each failure with its fix. Fix them (step 4) and go live again; a fix that changes what the creator saw needs their yes again.
  • waiting with waitingOn: "summer": every check passed and Summer holds the launch on its side. Nothing to fix; it goes live by itself. Call again to keep watching. Never tell the creator to wait for a review.
  • needs_permission: their Agent permissions have Publish off. Ask them to turn it on (Studio > Agent permissions), or use store.publish, which returns a link for them to approve.
  • needs_changes: Summer sent the page back; fix every line of its feedback and go live again.

End with one line: Live with the store URL, or Not live with the exact blocker, who must act, and the next step.

Checklist

  • Read release-checklist, store-art and store-listing before acting.
  • Asked the creator once, before any spend or upload: price, support, developer, release stage, open facts.
  • The build is current, uploaded and every platform check is read.
  • Screenshots are unedited frames of real play, at slot size, looked at one by one.
  • Key art, icons, cover and capsules start from a real capture, carry no text (a capsule at most the game's own logo) and show this game.
  • Every listing fact has a source; tags, genres and features are true.
  • The rating, questionnaire and AI disclosure were confirmed by the creator.
  • The checklist passes, or the remaining blocker is named.
  • The creator saw the preview link, every image and all text, and said yes.
  • summer_go_live with confirm: true ran only after that yes; reported live or the exact blocker.

From a shell

No Summer MCP tools in this session? Run each one as a command; when summer --version is missing or below 4.0, use npx -y summer-engine@latest in place of summer. Fields are flags in kebab-case (--scene-path res://main.tscn) or one --input '<json>', and summer ops describe <op> prints the exact input. The summer-cli skill has the rest.

In this skillCommand
assets.generate_imagesummer assets generate-image
assets.getsummer assets get
assets.upload_beginsummer assets upload-begin
assets.upload_completesummer assets upload-complete
summer_docs_readsummer docs read
summer_capture_gameplaysummer engine capture-gameplay
summer_export_gamesummer engine export-game
summer_game_inputsummer engine game-input
summer_get_diagnosticssummer engine get-diagnostics
summer_get_project_contextsummer engine get-project-context
summer_playsummer engine play
summer_read_filesummer engine read-file
summer_screenshotsummer engine screenshot
summer_stopsummer engine stop
games.createsummer games create
games.listsummer games list
pricing.getsummer pricing get
pricing.set_basesummer pricing set-base
store.get_listingsummer store get-listing
summer_go_livesummer store go-live
store.preview_linksummer store preview-link
store.publishsummer store publish
store.set_artsummer store set-art
summer_store_set_detailssummer store set-details
store.statussummer store status
store.update_listingsummer store update-listing
summer_publish_buildsummer store upload-file

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Launch Ready AI skill do?

Get a game ready to launch on Summer Games and take it live: upload, real screenshots, store art and listing, gathered and filled in.

Why use Launch Ready on TypingMind?

Because you install it once and use it with any model. Launch Ready is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Launch Ready in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/SummerEngine/summer/tree/main/library/skills/launch-ready. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Launch Ready?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Launch Ready?

As many as you like. As long as a model supports skills, you can use Launch Ready with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Launch Ready AI skill free?

Yes. It is published on GitHub by SummerEngine under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇