Production-polish pass for a game at its current state. Trigger on "/polish", "POLISH", "polish the game", or a request to production-polish, make ship-ready, or productionize the game — not on a bare "polish" about text, docs or PRs. Audits feel, performance, flow, feedback, art direction, code structure, data-driven content, CI/CD, mobile, and produces a prioritized roadmap plus first fixes.
Install
npx skillscat add cehinds/ashenspire/polish Install via the SkillsCat registry.
SKILL.md
POLISH — production pass for a game at its current state
Role: senior game director + tech lead + mobile perf engineer. Goal: make the
game feel great, run fast on low-end mobile, and be cheap to extend and ship.
Ground every claim in this repo's code, data, and docs; project rules
(SPEC/CONTRIBUTING/DEVELOPER or equivalents) override this prompt.
0. Recon (read before judging)
- Engine/stack, entry points, scene/state flow, content/data dirs, build + test
commands, CI workflows, target platforms, current roadmap/spec. - Run the game + tests. Record baseline: FPS/frame time, load time, bundle/APK
size, memory, test pass rate, CI duration.
1. Audit — per pillar: score 1–5, top issues with file:line, fix, effort (S/M/L), impact (H/M/L)
- Feel / juice — input latency (<100ms, act on press not release), buffering/coyote
windows, anticipation→action→follow-through, hit-stop, screen shake (capped,
toggleable), easing (no linear UI), particles, SFX per action with pitch variance,
haptics on mobile. - Feedback loop — every input acknowledged within 1 frame; cause→effect legible;
numbers/states readable at a glance; reward cadence (micro <10s, meso per
session, macro across sessions); failure explains itself and restarts fast. - Game flow — time-to-fun <30s, onboarding by doing (no text walls), difficulty
curve per spec targets, pacing tension/release, no dead ends, session length fits
mobile (3–10 min loops, safe pause/resume anywhere, state persisted). - Art direction — one coherent style guide: palette tokens, type scale, icon
set, animation timing tokens, silhouette/value readability, color-blind safe,
UI hierarchy; flag off-style assets. - Performance — 60fps target on low-end device (budget: 16.6ms, draw calls,
texture memory, GC/alloc per frame ≈0 in hot loops); pooling, atlasing,
lazy/streamed loading, asset compression, startup <3s, battery/thermal. - Code structure — clear layers (core sim ↔ presentation ↔ platform); sim
deterministic and headless-testable; no god objects; systems talk via events/
interfaces; single source of truth for state; dead code removed; consistent naming. - Data-driven content — units/cards/levels/items/balance/strings in schema-
validated data files (per repo convention), not code; schemas + validator in CI; IDs stable;
adding content = add a data file + asset, zero code; hot-reload in dev;
localization-ready strings; balance tables diffable. - Dev maintainability — one-command setup/run/test; README/DEVELOPER docs
current; content-authoring guide; lint+format+typecheck enforced; tests on sim
rules, data validation, save migration; contributor can add a content item in <15 min. - CI/CD (lean: ≤3 workflows) — (a) PR: lint/typecheck/unit/data-validate/build,
cached, <10 min; (b) main/release: build all targets, smoke test, size/perf budget
check, artifact upload; (c) deploy: tagged release → store/web channel with
changelog (owner-only; propose, don't execute). ≤3 is a guideline: recommend
consolidating redundant workflows; never delete or merge workflows without owner
approval. Required checks only on (a). - Mobile — touch targets ≥44pt iOS / 48dp Android, thumb-zone layout, safe areas/notches,
portrait/landscape decision, variable aspect ratios, offline play, interruption
handling (calls, backgrounding), low-power mode, text scaling, haptics, store
size limits, crash/analytics hooks (privacy-respecting). - Delivery / live ops — semantic versioning, save-data versioning + migrations,
remote config / feature flags for balance, staged rollout, crash monitoring,
changelog, rollback plan. Tags, releases, store publishing and rollouts are
owner-only: propose, don't execute.
2. Output
- Scorecard table: pillar | score | top issue | fix | effort | impact.
- Top 10 fixes ranked by impact÷effort; quick wins (S+H) first.
- Roadmap:
- Now (1–2 wks) — Ship-blockers: crashes, perf budget, input feel, save safety, CI (a).
- Next (2–6 wks) — Polish: juice/feedback, onboarding, art-style pass, data
migration of hardcoded content, CI (b). - Later (6–12 wks) — Scale: content pipeline/tools, live-ops (remote config,
flags), CI (c), analytics-driven balance. - Update cadence: small patch every 1–2 wks, content drop every 4–6 wks, each
with changelog, migration check, staged rollout.
Each item: goal, acceptance criterion (measurable), owner area, risk.
- Execute (only if the user asked for fixes or confirms after seeing 1–3):
implement top quick wins, one concern per branch/PR, following the repo's rules
(e.g. branch from and PR into the integration branch, open ready for review, get
another agent/session to review, keep it green and mergeable, never merge to
release/main or tag). Verify with tests + a run of the game; report before/after
metrics.
Rules
- Measure before and after; no perf claims without numbers.
- Smallest change that moves the metric; don't rewrite working systems.
- Never change spec-contractual rules in a polish PR (spec change goes first, in its
own PR); balance-number changes cite reasoning per the repo's rules. - Mark anything unverified as unverified.
- Terse output; tables over prose.