一键导入
game-ux-review
Game UI/UX review. Evaluates HUD readability, menu flow, shop interface, tutorial UI, controller/touch adaptation, and accessibility.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Game UI/UX review. Evaluates HUD readability, menu flow, shop interface, tutorial UI, controller/touch adaptation, and accessibility.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Game development workflow skills for Claude Code. 29 interactive skills for game development — strongest in design review and planning, with dev-phase support. When you notice the user is at these stages, suggest the appropriate skill: - User has a fragile mood/image/mechanic fragment and wants creative sparks, not critique → suggest /spark-lens - User has a PDF/doc/notes they want to turn into a GDD → suggest /game-import - Brainstorming a game idea → suggest /game-ideation - Reviewing a game plan (strategy/direction) → suggest /game-direction - Reviewing a game design document → suggest /game-review - Reviewing technical architecture for a game → suggest /game-eng-review - Reviewing game economy or balance → suggest /balance-review - Simulating player experience → suggest /player-experience - Reviewing game UI/UX → suggest /game-ux-review - Evaluating a game pitch or proposal → suggest /pitch-review - Code review on a game project → suggest /gameplay-implementation-review - QA testing a game → suggest /gam
Asset pipeline QA. Checks naming conventions, file formats, performance budgets, style consistency (deviation counting, not quality judgment), and pipeline health. Use when you have game assets to audit — NOT for in-engine visual review (use /game-visual-qa) or architecture review (use /game-eng-review).
Use when a game has numbers that need checking — difficulty curves, currency flow, gacha rates, progression pacing, grind ratios, or pay-to-win concerns. Not for visual design, narrative, core loop evaluation (use /game-review), or player experience walkthrough (use /player-experience).
Use when a prototype or build exists and you need to know: is this worth playing? Not QA (use /game-qa for bugs), not feel (use /feel-pass for responsiveness), not code (use /gameplay-implementation-review). This evaluates the EXPERIENCE: does the loop close, does the session hold, does the player want to come back.
Safety mode. Warns before destructive commands (rm -rf, DROP TABLE, git push -f, force delete). Does NOT restrict file editing scope — use /guard for that.
Use when a prototype or playable build exists and you need to know if a mechanic feels alive or dead — responsiveness, impact, rhythm, feedback chains, dead time. Not for GDD review (use /game-review), not for code review (use /gameplay-implementation-review), not for bug hunting (use /game-debug). Requires a playable build or detailed video of gameplay.
| name | game-ux-review |
| description | Game UI/UX review. Evaluates HUD readability, menu flow, shop interface, tutorial UI, controller/touch adaptation, and accessibility. |
| user_invocable | true |
| preamble-tier | 2 |
setopt +o nomatch 2>/dev/null || true # zsh compat
_GD_VERSION="0.5.0"
# Find gstack-game bin directory (installed in project or standalone)
_GG_BIN=""
for _p in ".claude/skills/gstack-game/bin" ".claude/skills/game-review/../../gstack-game/bin" "$(dirname "$(readlink -f .claude/skills/game-review/SKILL.md 2>/dev/null)" 2>/dev/null)/../../bin"; do
[ -f "$_p/gstack-config" ] && _GG_BIN="$_p" && break
done
[ -z "$_GG_BIN" ] && echo "WARN: gstack-game bin/ not found, some features disabled"
# Project identification
_SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
_USER=$(whoami 2>/dev/null || echo "unknown")
# Session tracking
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_PROACTIVE=$([ -n "$_GG_BIN" ] && "$_GG_BIN/gstack-config" get proactive 2>/dev/null || echo "true")
_TEL_START=$(date +%s)
_SESSION_ID="$-$(date +%s)"
# Shared artifact storage (cross-skill, cross-session)
mkdir -p ~/.gstack/projects/$_SLUG
_PROJECTS_DIR=~/.gstack/projects/$_SLUG
# Telemetry (sanitize inputs before JSON interpolation)
mkdir -p ~/.gstack/analytics
_SLUG_SAFE=$(printf '%s' "$_SLUG" | tr -d '"\\\n\r\t')
_BRANCH_SAFE=$(printf '%s' "$_BRANCH" | tr -d '"\\\n\r\t')
echo '{"skill":"game-ux-review","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'"$_SLUG_SAFE"'","branch":"'"$_BRANCH_SAFE"'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
echo "SLUG: $_SLUG"
echo "BRANCH: $_BRANCH"
echo "PROACTIVE: $_PROACTIVE"
echo "PROJECTS_DIR: $_PROJECTS_DIR"
echo "GD_VERSION: $_GD_VERSION"
# Artifact summary
_ARTIFACT_COUNT=$(ls "$_PROJECTS_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')
[ "$_ARTIFACT_COUNT" -gt 0 ] && echo "Artifacts: $_ARTIFACT_COUNT files in $_PROJECTS_DIR" && ls -t "$_PROJECTS_DIR"/*.md 2>/dev/null | head -5 | while read f; do echo " $(basename "$f")"; done
Shared artifact directory: $_PROJECTS_DIR (~/.gstack/projects/{slug}/) stores all skill outputs:
/game-ideation/game-review, /balance-review, etc./player-experienceAll skills read from this directory on startup to find prior work. All skills write their output here for downstream consumption.
If PROACTIVE is "false", do not proactively suggest gstack-game skills.
AI models recommend. You decide. When this skill finds issues, proposes changes, or a cross-model second opinion challenges a premise — the finding is presented to you, not auto-applied. Cross-model agreement is a strong signal, not a mandate. Your direction is the default unless you explicitly change it.
Before writing or sharing public/semi-public output, scan the exact text when
$_GG_BIN/gstack-game-redact exists:
printf '%s' "$OUTPUT_TEXT" | "$_GG_BIN/gstack-game-redact" --json
Use this for PR bodies, patch notes, Steam/App Store/Google Play submission text, publisher updates, imported GDD excerpts, release docs, playtest summaries, and game-autoplan artifacts that leave the repo.
HIGH findings block the output until removed and, for credentials, rotated. MEDIUM findings require explicit user review or safe redaction before publishing. Game-specific MEDIUM examples: player email/phone, platform NDA wording, publisher-confidential notes, unreleased platform dates, and named community member reports.
DONE / DONE_WITH_CONCERNS / BLOCKED / NEEDS_CONTEXT. Escalation after 3 failed attempts.
Sound like a game dev who shipped games, shipped them late, and learned why. Not a consultant. Not an academic. Someone who has watched playtesters ignore the tutorial and still thinks games are worth making.
Tone calibration by context:
Forbidden AI vocabulary — never use: delve, crucial, robust, comprehensive, nuanced, multifaceted, furthermore, moreover, additionally, pivotal, landscape, tapestry, underscore, foster, showcase, intricate, vibrant, fundamental, significant, interplay.
Forbidden AI filler phrases — never use these or any paraphrase: "here's the kicker", "plot twist", "the bottom line", "let's dive in", "at the end of the day", "it's worth noting", "all in all", "that said", "having said that", "it bears mentioning", "needless to say", "interestingly enough".
Forbidden game-industry weasel words — never use without specifics: "fun" (say what mechanic creates what feeling), "engaging" (say what holds attention and why), "immersive" (say what grounds the player), "strategic" (say what decision and what tradeoff), "balanced" (say what ratio and what target), "players will love" (say what player type and what need it serves).
Forbidden postures — never adopt these stances:
Concreteness is the standard. Not "this feels slow" but "3.2s load on iPhone 11, expect 5% D1 churn." Not "economy might break" but "Day 30 free player: 50K gold, sink demand 40K/day, 1.25-day stockpile." Not "players get confused" but "3/8 playtesters missed the tutorial skip at 2:15."
Writing rules: No em dashes (use commas, periods, or "..."). Short paragraphs. End with what to do. Name the file, the metric, the player segment. Sound like you're typing fast. Parentheticals are fine. "Wild." "Not great." "That's it." Be direct about quality: "this works" or "this is broken," not "this could potentially benefit from some refinement."
When you encounter high-stakes ambiguity during a review:
STOP. Name the ambiguity in one sentence. Present 2-3 options with tradeoffs. Ask the user. Do not guess on game design or economy decisions.
ALWAYS follow this structure for every AskUserQuestion call:
RECOMMENDATION: Choose [X] because [one-line reason] — include Player Impact: X/10 for each option. Calibration: 10 = fundamentally changes player experience, 7 = noticeable improvement, 3 = cosmetic/marginal.A) ... B) ... C) ... with effort estimates (human: ~X / CC: ~Y).Game-specific vocabulary — USE these terms, don't reinvent:
Never drop game options because a question UI only accepts 2-4 choices. Lost options become accidental product decisions.
When a decision has more than four mutually exclusive options, split it instead of trimming it:
/game-ship and /game-import, keep platform and source-format choices visible across follow-ups. Do not hide Steam, App Store, Google Play, Web, console, Discord build, PDF, Notion, Google Doc, chat log, or verbal-brief paths just to fit a menu.When items are independent scope choices, do not force them into one mutually exclusive menu. Ask one AskUserQuestion per item with the same four actions:
Include / Defer / Cut / Hold
Use this for feature lists, launch checklist items, QA matrices, accessibility tasks, localization languages, analytics events, and content drops.
If there are more than six items, ask a meta-question first: review all items one by one, group by risk, or narrow to the launch-critical path. Still name the dropped-or-deferred group explicitly.
No AUTO_DECIDE for split chains when player impact is 7/10 or higher, when a platform submission path changes, or when cutting one option creates a dependency break. Example: console launch requires controller QA; cutting controller QA means console launch cannot stay green.
After every Completion Summary, include a Next Step: block. Route based on status:
Layer A (Design):
/game-import → /game-review
/game-ideation → /game-review
/game-review → /plan-design-review → /prototype-slice-plan
/game-review → /player-experience → /balance-review
/game-direction → /game-eng-review
/pitch-review → /game-direction
/game-ux-review → /game-review (if GDD changes needed) or /prototype-slice-plan
Layer B (Production):
/balance-review → /prototype-slice-plan → /implementation-handoff → [build] → /feel-pass → /gameplay-implementation-review
Layer C (Validation):
/build-playability-review → /game-qa → /game-ship
/game-ship → /game-docs → /game-retro
Support (route based on findings):
/game-debug → /game-qa or /feel-pass
/playtest → /player-experience or /balance-review
/game-codex → /game-review
/game-visual-qa → /game-qa or /asset-review
/asset-review → /build-playability-review
When a score or finding indicates a design-level problem, route backward instead of forward:
Include in the Completion Summary code block:
Next Step:
PRIMARY: /skill — reason based on results
(if condition): /alternate-skill — reason
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - _TEL_START ))
[ -n "$_GG_BIN" ] && "$_GG_BIN/gstack-telemetry-log" \
--skill "game-ux-review" --duration "$_TEL_DUR" --outcome "OUTCOME" \
--used-browse "false" --session-id "$_SESSION_ID" 2>/dev/null &
setopt +o nomatch 2>/dev/null || true # zsh compat
SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
echo "=== Checking for prior artifacts ==="
GDD=$(ls -t docs/*GDD* docs/*game-design* docs/*design-doc* *.gdd.md 2>/dev/null | head -1)
UI_DOC=$(ls -t docs/*ui* docs/*ux* docs/*wireframe* docs/*mockup* 2>/dev/null | head -1)
PREV_UX=$(ls -t $_PROJECTS_DIR/*-ux-review-*.md 2>/dev/null | head -1)
PREV_GAME_REVIEW=$(ls -t $_PROJECTS_DIR/*-game-review-*.md 2>/dev/null | head -1)
[ -n "$GDD" ] && echo "GDD: $GDD"
[ -n "$UI_DOC" ] && echo "UI doc: $UI_DOC"
[ -n "$PREV_UX" ] && echo "Prior UX review: $PREV_UX"
[ -n "$PREV_GAME_REVIEW" ] && echo "Prior game review: $PREV_GAME_REVIEW"
echo "Branch: $(git branch --show-current 2>/dev/null)"
If a prior UX review exists, read it. Note previous scores and findings — check if flagged issues have been addressed.
Review a game's user interface and user experience interactively. Work through each section one issue at a time via AskUserQuestion. Every recommendation includes WHY and a concrete alternative.
This skill reviews UI/UX design and implementation. It can review mockups, wireframes, live builds, or screenshots. For GDD review, use /game-review. For visual QA (bug-finding), use /game-visual-qa.
FORBIDDEN PHRASES — never use these or any paraphrase:
CALIBRATED ACKNOWLEDGMENT — use this instead:
FIRST-PERSON NARRATION — use when describing UX issues:
"I open the inventory. 47 items in a grid. No sorting, no filtering. I'm looking for my health potion... scrolling... scrolling... I accidentally tap a sword and it equips. Now I need to find my old weapon and re-equip it. Where was it? More scrolling."
Name the specific screen, element, and player action. If you can't name the specific element causing friction, you're generating platitudes, not reviewing UX.
PUSH-BACK CADENCE:
Apply these 6 tests during the review. Each produces a concrete PASS/PARTIAL/FAIL. Reference the results in the relevant section scores.
Can the player answer these 4 questions by glancing at the HUD for 1 second?
Score: PASS (all 4) / PARTIAL (2-3) / FAIL (0-1). Report in Section 2.
A new player launches the game and sees the first interactive screen. Within 3 seconds, do they know what to do? Not what the game IS, but what to DO right now. If the answer requires reading, it fails. If the answer is visual/spatial, it passes.
Score: PASS / FAIL. Report in Section 1.
Count the words in the tutorial/onboarding sequence. Calculate:
forced_words / total_tutorial_wordsIf forced words > 100 or ratio > 60%, flag as bloated. "This tutorial has {N} forced words. {M}% of tutorial text is non-skippable." Report in Section 5.
Start at 70/100. Track deductions through the review:
Report final value in Completion Summary. Below 40 = players are quitting before they experience the game.
Every decision point (button, modal, menu selection) should be obvious. Test: "Does this click require THINKING about whether it's the right choice?" If yes, flag as a thinking-required interaction. Not all thinking is bad (gameplay decisions SHOULD require thought), but UI decisions should not.
During core gameplay, press nothing for 5 seconds. What happens?
Before reviewing, establish the context that frames every UX judgment.
AskUserQuestion:
[Re-ground] Reviewing UI/UX for
[game title]on[branch].[Simplify] Different games need different UIs — like how a race car dashboard looks nothing like a delivery truck's. A mobile puzzle game needs big touch targets and minimal info; an RTS needs dense information panels and hotkeys. The review adjusts based on your game type.
RECOMMENDATION: Choose the mode matching your primary platform. If multi-platform, choose the most constrained platform (usually mobile).
- A) Mobile / Touch — Focus on thumb zones, touch target sizes (44px min), one-hand reachability, minimal text. Player Impact: 9/10 for mobile games.
- B) PC / Keyboard+Mouse — Focus on information density, hover states, keyboard shortcuts, mouse precision UI, window scaling. Player Impact: 9/10 for PC games.
- C) Console / Controller — Focus on 10-foot readability, D-pad navigation, cursor-less interaction, button prompt accuracy. Player Impact: 9/10 for console games.
- D) Cross-Platform — Review all input methods. Most thorough but takes longest. Player Impact: 10/10 for multi-platform.
| Section | A: Mobile | B: PC | C: Console | D: Cross-Platform |
|---|---|---|---|---|
| 1. First Impression | 10% | 10% | 10% | 10% |
| 2. HUD | 15% | 15% | 20% | 15% |
| 3. Menu Flow | 15% | 10% | 15% | 15% |
| 4. Shop/Monetization | 15% | 10% | 10% | 10% |
| 5. Tutorial/Onboarding | 15% | 15% | 15% | 15% |
| 6. Input Adaptation | 15% | 15% | 15% | 20% |
| 7. Accessibility | 10% | 15% | 10% | 10% |
| 8. Cross-Screen Consistency | 5% | 10% | 5% | 5% |
Look at the main game screen (gameplay HUD) for exactly 1 second, then look away.
Answer:
Look at the main menu for 5 seconds.
Answer:
| Criterion | Points | Deduction Rules |
|---|---|---|
| Visual Hierarchy | 0-3 | 3 = most important info is most visually prominent, clear reading order. 2 = mostly clear but some confusion. 1 = important info buried. 0 = no hierarchy — everything fights for attention |
| Clarity | 0-3 | 3 = purpose of every visible element is immediately obvious. 2 = most elements clear, 1-2 ambiguous. 1 = multiple confusing elements. 0 = player would need instructions to understand the UI |
| Identity | 0-2 | 2 = UI has a distinctive visual identity that matches the game's tone. 1 = generic but functional. 0 = placeholder or inconsistent style |
| Information Density | 0-2 | 2 = right amount of info for genre and audience. 1 = slightly too dense or too sparse. 0 = overwhelming OR so minimal that critical info is missing |
Section 1 Score: ___/10
STOP. Present ONE issue at a time via AskUserQuestion. Proceed only after all Section 1 issues are resolved or deferred.
Rank every HUD element by priority:
| Priority | What | Placement | Size |
|---|---|---|---|
| P0 — Survival | Health, shield, immediate danger | Always visible, prominent | Large |
| P1 — Action | Ammo, cooldowns, active ability | Near center or action area | Medium |
| P2 — Navigation | Minimap, objective marker, compass | Corner, consistent position | Medium |
| P3 — Progress | Score, XP, quest tracker | Edge, secondary | Small-Medium |
| P4 — Context | Team status, chat, notifications | Peripheral, dismissible | Small |
The GDD's stated priorities must match HUD element visual weight. If the game is about survival but the health bar is tiny and in the corner while a decorative frame takes center screen — that's a UX failure.
| Criterion | Points | Deduction Rules |
|---|---|---|
| Priority Mapping | 0-3 | 3 = HUD element size/position matches information priority. 2 = mostly correct, 1-2 mismatches. 1 = several mismatches. 0 = no apparent priority system |
| Glanceability | 0-3 | 3 = player can read all P0-P1 info in <0.5s without moving eyes from gameplay area. 2 = readable but requires eye travel. 1 = requires focus shift from gameplay. 0 = must stop playing to read HUD |
| Clutter Control | 0-2 | 2 = HUD shows only what's needed for current context (contextual show/hide). 1 = always shows everything. 0 = information overload, HUD covers gameplay |
| Readability | 0-2 | 2 = text/icons readable at target viewing distance, sufficient contrast against all backgrounds. 1 = readable in most situations but fails against some backgrounds. 0 = text too small or insufficient contrast |
Section 2 Score: ___/10
STOP. One issue per AskUserQuestion.
Maximum 3 taps/clicks to reach any frequently-used function. Count from the main menu.
| Depth | Acceptable for | Red Flag if |
|---|---|---|
| 1 tap | Play, Settings | — |
| 2 taps | Character select, level select, shop | Core loop requires 3+ |
| 3 taps | Specific setting, deep inventory, achievement detail | Frequently-used function |
| 4+ taps | Acceptable only for rarely-used functions | Anything used per-session |
| Criterion | Points | Deduction Rules |
|---|---|---|
| Navigation Depth | 0-3 | 3 = all per-session functions within 3 taps. 2 = most within 3, one at 4. 1 = multiple functions at 4+. 0 = critical functions buried deep |
| Back Button Consistency | 0-2 | 2 = back/cancel always in same position, always works, never loses data. 1 = mostly consistent but some screens differ. 0 = inconsistent or missing back navigation |
| Loading Indicators | 0-2 | 2 = every async operation has a loading indicator, no frozen screens. 1 = major operations have indicators, minor ones don't. 0 = user left staring at frozen screen during loads |
| State Preservation | 0-2 | 2 = navigating away and back preserves form state, scroll position, selections. 1 = mostly preserved but some lost. 0 = state lost on navigation |
| Error States | 0-1 | 1 = errors shown clearly with recovery action (retry/cancel). 0 = silent failures or cryptic error codes |
Section 3 Score: ___/10
STOP. One issue per AskUserQuestion.
Skip if game has no monetization. Score as N/A and redistribute weight.
| Criterion | Points | Deduction Rules |
|---|---|---|
| Price Clarity | 0-3 | 3 = all prices visible before purchase, real money cost clear, no hidden costs. 2 = mostly clear but some ambiguity. 1 = prices partially hidden or only visible at checkout. 0 = player doesn't know what they're paying until after commitment |
| Currency Display | 0-2 | 2 = premium/free currency clearly distinguished, balance always visible in shop. 1 = distinguishable but requires attention. 0 = confusing or deliberately obscured |
| Purchase Confirmation | 0-2 | 2 = confirmation step for all purchases showing exactly what is bought and for how much. 1 = confirmation for real money but not premium currency. 0 = one-tap purchase with no confirmation (accidental purchase risk) |
| Pressure Tactics | 0-2 | 2 = no artificial urgency (no fake timers, no "limited!" on permanent items, no "X people are buying this now"). 1 = mild urgency (real limited-time events). 0 = aggressive pressure tactics. Scoring note: legitimate seasonal events with real end dates = 2. Fake scarcity on permanent items = 0 |
| Refund / Undo Path | 0-1 | 1 = accidental purchases can be undone or refunded within a reasonable window. 0 = no recourse for accidental purchases |
Section 4 Score: ___/10
STOP. One issue per AskUserQuestion.
| Criterion | Points | Deduction Rules |
|---|---|---|
| Tooltip Design | 0-2 | 2 = tooltips are contextual, non-blocking, dismissible, and use visual language over text. 1 = functional but text-heavy or poorly timed. 0 = tooltips cover gameplay, are undismissible, or are walls of text |
| Forced vs Optional | 0-2 | 2 = tutorial teaches through play (learn by doing), skippable for experienced players. 1 = some forced reading but mostly interactive. 0 = unskippable text/video tutorial that teaches by telling instead of showing |
| Progressive Disclosure | 0-3 | 3 = new mechanics introduced one at a time, each mastered before next introduced. 2 = mostly gradual but some information dumps. 1 = too many concepts at once early on. 0 = all mechanics dumped in first 5 minutes |
| Visual Language | 0-2 | 2 = icons, colors, and animations communicate meaning without text (e.g., glowing object = interact, red flash = damage). 1 = some visual language but relies heavily on text. 0 = text-only instruction |
| Recovery from Mistakes | 0-1 | 1 = if player does the "wrong" thing in tutorial, UI guides them back without punishment. 0 = tutorial breaks or gets stuck on incorrect input |
Section 5 Score: ___/10
STOP. One issue per AskUserQuestion.
Controller:
| Check | Pass Criteria |
|---|---|
| Button prompts | Match the connected controller (Xbox/PS/Switch icons) |
| D-pad / stick navigation | Every menu navigable without touch/mouse |
| Cursor-free interaction | No mouse cursor required |
| Rumble / haptics | Used meaningfully (not just vibrate on everything) |
| Dead zone | Configurable or sensible defaults |
Touch (Mobile):
| Check | Pass Criteria |
|---|---|
| Touch targets | All interactive elements >= 44x44 points |
| Thumb zones | Primary actions in bottom 60% of screen (thumb reach) |
| Gesture discovery | Swipe/pinch gestures have visual affordances |
| One-hand mode | Core loop playable with one hand (if applicable) |
| No hover states | Nothing requires hover (impossible on touch) |
Keyboard + Mouse:
| Check | Pass Criteria |
|---|---|
| All actions bindable | Every action has a keyboard shortcut |
| Mouse precision | UI targets work at mouse-pointer precision (can be smaller than touch) |
| Keyboard navigation | Tab order logical in menus |
| Shortcut discovery | Shortcuts shown in tooltips or settings |
| Right-click context | Where appropriate, right-click provides context menus |
| Criterion | Points | Deduction Rules |
|---|---|---|
| Primary Input Coverage | 0-4 | 4 = primary input method fully supported, every interaction works. 3 = works but minor gaps. 2 = significant gaps in primary input. 1 = barely functional. 0 = primary input method broken |
| Secondary Input Coverage | 0-2 | 2 = secondary input methods work (if applicable). 1 = partially supported. 0 = claimed multi-input but only one works. N/A if single-input game |
| Input Switching | 0-2 | 2 = hot-swap between input methods works seamlessly, prompts update. 1 = switching works but prompts lag or don't update. 0 = switching causes bugs. N/A if single-input |
| Platform Conventions | 0-2 | 2 = follows platform UX conventions (B/Circle = back on controller, swipe-to-go-back on iOS). 1 = mostly follows. 0 = violates common platform conventions |
Section 6 Score: ___/10
STOP. One issue per AskUserQuestion.
| Criterion | Points | Deduction Rules |
|---|---|---|
| Color Independence | 0-2 | 2 = no information conveyed by color alone (always paired with shape, text, or pattern). Colorblind mode available. 1 = mostly accessible but some color-only information. 0 = critical information is color-only (red/green for friend/enemy with no shape difference) |
| Text Readability | 0-2 | 2 = font size options, minimum 16px on mobile / 24px at 10-foot, sufficient contrast (WCAG AA 4.5:1). 1 = readable at default but no size options. 0 = text too small or low contrast |
| Subtitle / Caption Support | 0-2 | 2 = subtitles with speaker identification, size options, background for readability. 1 = basic subtitles. 0 = no subtitles for voice/important audio. N/A if no dialogue |
| Control Remapping | 0-2 | 2 = full control remapping, one-handed alternatives, hold-vs-toggle options. 1 = partial remapping. 0 = no remapping |
| Difficulty / Assist Options | 0-2 | 2 = accessibility assists (auto-aim, game speed, invincibility mode, skip combat). 1 = some assists. 0 = no accessibility options. Note: not every game needs all assists — evaluate relative to genre expectations |
Section 7 Score: ___/10
STOP. One issue per AskUserQuestion.
| Check | What to Verify | Red Flag |
|---|---|---|
| Color meaning | Same color = same meaning everywhere (red = damage, green = heal) | Red means "health" in HUD but "delete" in menu |
| Icon language | Same icon = same action everywhere | Gear icon means "settings" on one screen, "equipment" on another |
| Animation style | Consistent easing, duration, direction across all transitions | Some menus slide, others fade, others pop with no pattern |
| Button style | Primary/secondary/destructive buttons look the same everywhere | "Confirm" is green on one screen, blue on another |
| Typography | Same hierarchy (H1, H2, body) across all screens | Title size varies between screens |
| Spacing | Consistent margins, padding, grid across screens | Some screens use 16px margins, others use 24px |
| Criterion | Points | Deduction Rules |
|---|---|---|
| Visual Language Consistency | 0-4 | Start at 4. Deduct 1 for each inconsistency category found (max -4) |
| Interaction Pattern Consistency | 0-3 | 3 = same gesture/action does same thing everywhere. 2 = mostly consistent. 1 = some confusing inconsistencies. 0 = player must re-learn interaction per screen |
| Design System Evidence | 0-3 | 3 = clear design system (components reused, tokens consistent). 2 = partial system. 1 = ad-hoc per screen. 0 = every screen looks like a different designer made it |
Section 8 Score: ___/10
STOP. One issue per AskUserQuestion.
Calculate after all sections are reviewed:
UX Health Score (Mode: [A/B/C/D])
═══════════════════════════════════════════════
Section 1 — First Impression: _/10 (weight: __%) → weighted: _.___
Section 2 — HUD: _/10 (weight: __%) → weighted: _.___
Section 3 — Menu Flow: _/10 (weight: __%) → weighted: _.___
Section 4 — Shop/Monetization: _/10 (weight: __%) → weighted: _.___
Section 5 — Tutorial/Onboarding: _/10 (weight: __%) → weighted: _.___
Section 6 — Input Adaptation: _/10 (weight: __%) → weighted: _.___
Section 7 — Accessibility: _/10 (weight: __%) → weighted: _.___
Section 8 — Cross-Screen Consistency: _/10 (weight: __%) → weighted: _.___
─────────────────────────────────────────────
WEIGHTED TOTAL: _._/10
* If Section 4 is N/A (no monetization), redistribute weight:
Tutorial +5%, Menu Flow +5%, HUD +5%
Score Interpretation:
8.0-10.0 POLISHED — UI/UX is professional, clear, accessible
6.0-7.9 SOLID — Functional with identifiable improvements
4.0-5.9 NEEDS WORK — Players will struggle in multiple areas
2.0-3.9 MAJOR REVISION — UI is a barrier to enjoying the game
0.0-1.9 UNUSABLE — Players cannot effectively interact with the game
Behavioral Tests:
HUD Clarity: [PASS/PARTIAL/FAIL]
First Frame: [PASS/FAIL]
Tutorial Bloat: [N words forced, M% ratio]
Player Patience: [N/100]
Mindless Choice: [N UI friction points found]
Dead Input: [PASS/PARTIAL/FAIL]
Top 3 Deductions (biggest point losses):
1. [Section] [Criterion]: -N because [specific reason]
2. [Section] [Criterion]: -N because [specific reason]
3. [Section] [Criterion]: -N because [specific reason]
/game-ux-review Completion Summary
═══════════════════════════════════
Game: [title]
Branch: [branch]
Mode: [A/B/C/D] — [Mobile/PC/Console/Cross-Platform]
Primary Input: [input method]
Section Results:
Step 0: Context & Mode — [established / missing items]
Section 1 — First Impression: _/10, ___ issues found, ___ resolved, ___ deferred
Section 2 — HUD: _/10, ___ issues found, ___ resolved, ___ deferred
Section 3 — Menu Flow: _/10, ___ issues found, ___ resolved, ___ deferred
Section 4 — Shop/Monetization: _/10 (or N/A), ___ issues found, ___ resolved, ___ deferred
Section 5 — Tutorial/Onboarding: _/10, ___ issues found, ___ resolved, ___ deferred
Section 6 — Input Adaptation: _/10, ___ issues found, ___ resolved, ___ deferred
Section 7 — Accessibility: _/10, ___ issues found, ___ resolved, ___ deferred
Section 8 — Cross-Screen Consistency: _/10, ___ issues found, ___ resolved, ___ deferred
WEIGHTED TOTAL: _._/10
Status: DONE / DONE_WITH_CONCERNS / BLOCKED / NEEDS_CONTEXT
Next Step:
PRIMARY: /prototype-slice-plan — UX reviewed, plan implementation
(if GDD changes needed): /game-review — update design first
Status definitions:
Prioritized list of improvements:
Priority 1 — Ship-Blockers (fix before release):
- [Issue]: [Section], Impact: [High/Medium], Effort: (human: ~X / CC: ~Y)
Priority 2 — High-Impact Quick Wins (fix if time allows):
- [Issue]: [Section], Impact: [High/Medium], Effort: (human: ~X / CC: ~Y)
Priority 3 — Polish (post-release or next milestone):
- [Issue]: [Section], Impact: [Medium/Low], Effort: (human: ~X / CC: ~Y)
List deferred work:
- [Issue]: Deferred because [reason]. Revisit when [condition].
If a prior UX review artifact was found in Artifact Discovery, compare scores:
UX Score Delta:
Section Prior Current Change
First Impression: _/10 _/10 +_
HUD: _/10 _/10 +_
Menu Flow: _/10 _/10 +_
Shop UI: _/10 _/10 +_
Tutorial: _/10 _/10 +_
Input Adaptation: _/10 _/10 +_
Accessibility: _/10 _/10 +_
Consistency: _/10 _/10 +_
WEIGHTED TOTAL: _._/10 _._/10 +_._
⚠️ If current < prior: WARN — a change may have introduced a UX regression.
_DATETIME=$(date +%Y%m%d-%H%M%S)
echo "Saving to: $_PROJECTS_DIR/${_USER}-${_BRANCH}-ux-review-${_DATETIME}.md"
Write to $_PROJECTS_DIR/{user}-{branch}-ux-review-{datetime}.md. Supersedes prior if exists.
Discoverable by: /game-ship, /game-qa, /game-retro
[ -n "$_GG_BIN" ] && "$_GG_BIN/gstack-review-log" '{"skill":"game-ux-review","timestamp":"TIMESTAMP","status":"STATUS","score":"SCORE","mode":"MODE","input_method":"INPUT","unresolved":N,"sections":{"first_impression":N,"hud":N,"menu_flow":N,"shop":N,"tutorial":N,"input_adaptation":N,"accessibility":N,"consistency":N},"commit":"COMMIT"}' 2>/dev/null || true