launch-ready is a skill from the Summer skill library: a guide your AI agent reads when the task matches, so it builds the good version on the first try. Get a game ready to launch on Summer Games and take it live: upload, real screenshots, store art and listing, gathered and filled in.
When your agent uses it
- The user says ‘get my game ready to launch’, ‘make my store page’, ‘publish my game to summer.games’ or ‘do everything it needs to go live’
- The release checklist fails and the agent should fix it: upload the game, capture gameplay screenshots, make key art and icons, write the store text
- Filling a whole store page from the project itself: GameSoul and project memory, README, real gameplay captures
- Drafting the content rating, content questionnaire and AI disclosure from the project, for the creator to confirm before launch
Install
summer setup installs every skill for your agent. To add only this one:
claude-code for your agent, such as codex or cursor. See Skills for every option.
The skill
Therelease-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: truefor the estimate. - Nothing goes live before the creator’s yes to the summary in step 6.
The flow
- Find the game and run the checklist, changing nothing.
- Gather the facts from the project.
- Ask the creator once: the questions and the plan.
- Fix each failure: build, screenshots, art, listing.
- Run the checklist again until it passes.
- Show the creator everything and get one confirmation.
- Go live, and report live or the exact blocker.
1. Find the game and run the checklist
summer_get_project_context: binds the project and returns the main scene and project memory (GameSoul, decisions).games.listfinds the store game by name. When there is none, plangames.createwith the title and targets (it makes a draft; nothing is published).- Read the state:
store.get_listingwithpreviews: true(text, art per slot,checklist,readyToPublish,availableTags),store.status(every upload, its version, state and checks, and what is live) andpricing.get. - 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.
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 thedryRuncredit 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.
4. Fix each failure
Build (rules 1.1 to 2.5)
What to upload (rule 1.5): a game with a server, or one for iPhone or Android, needs a store bundle (formatbundle). A game without a server
ships web and desktop as downloads (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).
summer_export_game: formatbundle(a game with a server passes itstargetsandalignDeclaration: true), or formatdownloadwith one target. Read rules 1.1 to 1.5 from the answer.- Run the
release-readinesschecks 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. summer_publish_buildwith thegameId, the nextclientVersion(one past the newest instore.status), theplatformfor a download, andconfirm: true(step 3 approved it). For a bundle, readchecksStateand everychecksentry:owner: "creator"means fix, export again and upload a new version;owner: "summer"means nothing to change;checkingmeans call again. Keep thepublicationId. A download is ready whenstore.statussays so (rule 2.5).
Screenshots (rules 3.4 and 3.7)
- 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.
- Capture them full size with
summer_capture_gameplay: the gameplayscene, or the game’sargsorstepsto get past the title, oneshotstep per moment, up to 10 frames. Useresolution1920x1080for desktop. Phones take the same 1920x1080 frames when the game is landscape, and1080x1920when it is portrait. - 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.
- Keep the best: 4 to 8 for desktop, 3 to 8 for phones, the strongest first.
- Upload each one:
assets.upload_begin, run itsexamplecommand with the file path, thenassets.upload_completewithpublicId,versionanduploadSignature(public_id,versionandsignaturein that command’s answer) andformatpng. You get anassetIdand afileUrl. store.set_artwith slotdesktop.screenshotsormobile.screenshotsand the asset ids. Usemode: "append"to keep good screenshots already on the page. Readplacedandchecklistin the answer.
Key art, icons, tall cover and capsules (rules 3.3, 3.5, 3.6, 3.8, 3.9)
Load thestore-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.
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 thestore-listing skill (summer_docs_read with id
skill/store-listing) for the writing rules. Then fill:
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
Readstore.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
summer_go_livewith thegameId, the bundle’spublicationId(when there is one) and noconfirm: it answers the plan (the platforms, the version, the page).store.preview_linkwith thegameId: a private link to the page as players will see it.- One message:
- the preview link;
- every image with its slot: the local file path of each capture, and the
preview URLs from
store.get_listingwithpreviews: 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.
- 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.waitingwithwaitingOn: "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 usestore.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.
Checklist
- Read
release-checklist,store-artandstore-listingbefore 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_livewithconfirm: trueran 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; whensummer --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.
Related skills
release-checklist: Pre-launch check for Summer Games: export, upload checks, store art, listing fields.store-art: Make Summer Games store art per slot: key art, icons, screenshots, trailer, sizes.store-listing: Write a Summer Games store page: title, tagline, descriptions, tags, what never to write.publish-your-game: Publish a game on Summer Games over MCP: store page, art, build upload, go live.release-readiness: Prove players can play a Summer release: server, online join, progress, files.
Source:
library/skills/launch-ready/SKILL.md, rendered from summer-engine@4.5.0 on npm.
