A skill your agent uses when exporting, packaging, signing, or publishing a game — export presets per engine, macOS notarization, cross-origin isolation for threaded web builds, Android…
Install the "gamedev-shipping" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/gamedev-shipping into .claude/skills/gamedev-shipping/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamedev-shipping", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "gamedev-shipping" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/gamedev-shipping into .agents/skills/gamedev-shipping/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamedev-shipping", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "gamedev-shipping" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/gamedev-shipping into .cursor/skills/gamedev-shipping/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamedev-shipping", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "gamedev-shipping" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/gamedev-shipping into .gemini/skills/gamedev-shipping/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamedev-shipping", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "gamedev-shipping" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/gamedev-shipping into .github/skills/gamedev-shipping/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamedev-shipping", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "gamedev-shipping" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/gamedev-shipping into .opencode/skills/gamedev-shipping/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamedev-shipping", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
gamedev-shipping
GitHub stars
174
Token cost
~3.5k tokens
SKILL.md length
1,473 words
Files
6 (incl. references)
Skills in repo
233
Repo updated
First seen
Licence
MIT
At a glance
A skill your agent uses when exporting, packaging, signing, or publishing a game — export presets per engine, macOS notarization, cross-origin isolation for threaded web builds, Android…
Publishing a game — export presets per engine
SKILL.md covers Version anchors (what…, When NOT to use — and who owns…, Decision rules (settle these… and Export / build per engine, plus 6 more sections
Calls xcrun
MacOS notarization
What it does
Gamedev Shipping is an agent skill from ericrisco/rsc-harness. Use when exporting, packaging, signing, or publishing a game — export presets per engine, macOS notarization, cross-origin isolation for threaded web builds, Android AAB/keystore, iOS provisioning, store submission (Steam, Play, App Store, itch.io), headless build CI. NOT gameplay code inside the artifact (that is godot, unity, unreal), NOT hosting a web app or container (that is deployment).
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/mobile-and-desktop.md`).
It sits in Game Development, covering Game development. It works with macOS, Godot, Android and iOS. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
When your agent uses it
Publishing a game — export presets per engine
MacOS notarization
Cross-origin isolation for threaded web builds
Android AAB/keystore
Example prompts
“/gamedev-shipping”
What it can do on your machine
Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
xcrun
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Gamedev Shipping loads about 3.5k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 105 tokens; SKILL.md has 1,473 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~105
When it runs· the whole SKILL.md, loaded when a task matches
~3.5k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~8.4k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/gamedev-shipping/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
gamedev-shipping
description
Use when exporting, packaging, signing, or publishing a game — export presets per engine, macOS notarization, cross-origin isolation for threaded web builds, Android AAB/keystore, iOS provisioning, store submission (Steam, Play, App Store, itch.io), headless build CI. NOT gameplay code inside the artifact (that is `godot`, `unity`, `unreal`), NOT hosting a web app or container (that is `deployment`).
Ship the game — export, build & release (per engine · per platform)
Take a finished project from editor → signed, correctly-configured artifact → live on the
right target (desktop / web / mobile / store), with the platform gotchas that silently break a
build handled up front. This skill owns the packaging and release boundary; the engine skills
own the code that runs inside the artifact.
Android: tick Build App Bundle (Google Play) for AAB; set the keystore in Publishing Settings.
WebGL: threads ⇒ COOP/COEP; keep decompression fallback for hosts that can't set gzip/br headers.
Unreal — build configurations, not "modes": Debug, DebugGame, Development (test packaged
builds — keeps logs/console), Test, Shipping (release — strips logging, most optimized). Package
via Platforms ▸ <target> ▸ Package Project, the Project Launcher, or UAT for CI:
Android adds -distribution for an AAB; iOS requires a Mac + provisioning. Run the platform
Turnkey/SDK setup once (Android Studio + NDK, or Xcode) or the cook fails.
Desktop (Windows / macOS / Linux) — the simplest path
OS
Sign?
Gotcha
Windows
Optional (Authenticode; EV avoids SmartScreen warm-up)
Unsigned still runs but SmartScreen warns; ship .exe + engine data next to it, or an installer.
Linux
No
Ship binary + data, or wrap as AppImage/Flatpak for a portable single file.
macOS
Required
Must codesign (Developer ID Application) + notarize + staple, or Gatekeeper refuses to open it.
macOS notarization (the step everyone forgets):
bash
codesign --deep --force --timestamp --options runtime \
--sign "Developer ID Application: Studio (TEAMID)" Game.app
ditto -c -k --keepParent Game.app Game.zip
xcrun notarytool submit Game.zip --keychain-profile "AC" --wait # store creds once via store-credentials
xcrun stapler staple Game.app # staple so it verifies offline
--options runtime (Hardened Runtime) is mandatory for notarization. Codesign every bundled
.dylib/helper before the outer .app, inside-out.
Web — the header trap (read this before blaming your build)
Threaded WebAssembly builds (Godot with Thread Support, Unity WebGL with threads) use
SharedArrayBuffer, which browsers gate behind cross-origin isolation. The server must send:
Missing them ⇒ SharedArrayBuffer is not defined, a hang, or a blank canvas — even though the
files are fine. Where to set them:
Netlify_headers, Vercelvercel.json headers, nginxadd_header — set both on the game path.
itch.io — tick "This file will be played in the browser" ▸ SharedArrayBuffer support; itch sets the headers for you.
GitHub Pages — cannot set headers. Use a non-threaded export, or the coi-serviceworker shim (a service worker that re-serves with the headers).
COEP: require-corp also means every cross-origin subresource (fonts, analytics, embeds) must
send CORP/CORS or it's blocked. Godot C#/.NET has no web export at all — use GDScript.
→ per-host configs, the service-worker shim, COEP subresource fallout, a self-test snippet and the
Godot vs Unity web specifics: references/web-export-headers.md.
Mobile
Android — needs JDK 17 and the engine's Gradle build template. Ship AAB to Play
(Google re-signs and generates per-device APKs), APK for sideload/itch/direct. Generate a
release keystore once and reuse it forever (lose it = you can't update the app without Play App
Signing key reset):
Keep the keystore + passwords out of git (CI secret). versionCode must increase every upload.
iOS — Mac + Xcode + Apple Developer account. Bundle ID must match an App ID; pick a
provisioning profile (development / ad-hoc / App Store) and a signing certificate. Archive,
then upload to App Store Connect / TestFlight via Xcode Organizer or Transporter. CFBundleVersion
must increase per upload.
→ full keystore + Play App Signing, provisioning/TestFlight, Windows Authenticode and Linux
AppImage/Flatpak walkthroughs: references/mobile-and-desktop.md.
Show full SKILL.md (564 more words)Show less
Store prep
Assets: platform icons (Android adaptive, iOS icon set, Windows .ico, macOS .icns), splash/launch, store screenshots per device class, a trailer where required.
Metadata: title, short + full description, keywords, category, support/privacy URLs, localized strings.
Age ratings: fill the IARC questionnaire (Play, Microsoft, Nintendo) or ESRB/PEGI/USK; Apple has its own age-rating questionnaire. Wrong answers = removal.
Google Play: AAB + Play App Signing, a recent target API level, content rating, and the Data safety form.
Steam: Steamworks partner + appid; define depots; upload with SteamPipe (steamcmd +run_app_build app_build_APPID.vdf); store page assets; set the branch live.
itch.io: butler push build/ user/game:channel --userversion 1.2.3 — channel name (e.g. windows, html5) picks the platform.
Mac App Store: Apple Distribution cert + App Sandbox entitlements (not Developer ID); notarization is handled by App Store submission.
→ Steamworks/SteamPipe VDF, butler channels, Play/App Store submission checklists:
references/stores-and-ci.md.
CI/CD for builds
Headless export in GitHub Actions; version from the run/commit so every artifact is traceable.
Godot: run in a container that bundles matching export templates (e.g. a barichello/godot-ci-style image), godot --headless --export-release.
Unity: game-ci/unity-builder + a license activation step (secrets); matrix over targets.
Unreal: needs a self-hosted runner with the engine installed (multi-GB); UAT BuildCookRun.
Signing in CI: import the keystore/cert from an encrypted secret at runtime, never commit it. macOS notarization runs on a macos-latest runner with notarytool + an App Store Connect API key.
Versioning: semver tag for releases; a monotonic build number from github.run_number or the git commit count feeds versionCode/CFBundleVersion/Steam build description.
Texture compression per platform: ASTC (mobile), BCn/DXT (desktop), ETC2 (GLES fallback). Set per-platform import overrides — never ship uncompressed PNGs to mobile.
Strip the fat: Unity Managed Stripping Level: High + IL2CPP; Unreal Shipping drops logs/console; Godot — export only used resources and disable unused modules in a custom template.
Startup: small boot scene, stream/preload heavy assets, compress the .pck/data, use Ogg Vorbis over WAV. Web: enable gzip/brotli on .wasm/.pck.
Budgets: set a per-platform size budget (web especially — every MB is download latency) and check the final artifact against it before submitting.
Anti-patterns
Anti-pattern
Do instead
Web build works locally, host it later
Set COOP/COEP now; file:// and simple servers hide the SharedArrayBuffer failure.
Planning a Godot C# web export
It doesn't exist in 4.x. GDScript for web, or no web.
Treating notarization as optional
On macOS, no notarize + staple = Gatekeeper blocks the app for every user.
Shipping an APK to the Play Store
Play requires AAB for new apps and updates.
Committing the keystore so CI can sign
Keystore/cert live in encrypted CI secrets, never in git.
Gamedev Shipping next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
A skill your agent uses when a Godot game stutters, drops frames, hitches when entering new areas, overheats a phone, or must ship: profiling and Performance monitors, CPU or GPU bound, draw calls…
Provides instructions to configure, integrate, and verify third-party mediation networks (AppLovin, Meta Audience Network, Unity Ads, etc.) in GDScript and C.
Expert blueprint for mobile platforms (Android/iOS) covering touch controls, virtual joysticks, responsive UI, safe areas (notches), battery optimization, and app store guidelines.
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
A skill your agent uses when exporting, packaging, signing, or publishing a game — export presets per engine, macOS notarization, cross-origin isolation for threaded web builds, Android…. Gamedev Shipping is an agent skill from ericrisco/rsc-harness.io), headless build CI.
When should I use Gamedev Shipping?
Gamedev Shipping fits situations like: publishing a game — export presets per engine; macOS notarization; cross-origin isolation for threaded web builds; android AAB/keystore.
How do I install Gamedev Shipping in Claude Code?
Run `npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a claude-code`. Or copy the skill folder (skills/gamedev-shipping in ericrisco/rsc-harness) into .claude/skills/gamedev-shipping in your project. Claude Code loads it when a task matches its description.
How do I install Gamedev Shipping in Codex?
Run `npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a codex`. Or copy the skill folder (skills/gamedev-shipping in ericrisco/rsc-harness) into .agents/skills/gamedev-shipping in your project. Codex loads it when a task matches its description.
Can I use Gamedev Shipping in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill gamedev-shipping -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gamedev-shipping, .gemini/skills/gamedev-shipping, .github/skills/gamedev-shipping and .opencode/skills/gamedev-shipping in your project.
What does Gamedev Shipping need to run?
Going by SKILL.md and its folder, Gamedev Shipping needs the command-line tools its instructions call (xcrun).
Does Gamedev Shipping access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Gamedev Shipping safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Gamedev Shipping use?
Gamedev Shipping is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Gamedev Shipping use?
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.9k tokens, read only when the agent opens those files.
What are the alternatives to Gamedev Shipping?
Skills that share tags, products or a category with Gamedev Shipping: Scenario Godot Performance Export (scenario-labs/skills, 931 stars), Godot Export Builds (thedivergentai/GD-Agentic-Skills, 816 stars), Godot Admob Mediation (poingstudios/godot-admob-plugin, 632 stars) and Godot Platform Mobile (thedivergentai/GD-Agentic-Skills, 816 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Gamedev Shipping?
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 174 GitHub stars. The repository holds 233 skills in this directory. The repository was last updated on October 7, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.