From game-improvement-analysis
Analyze a game's codebase and produce a prioritized, actionable improvement report — concrete problems, ideas, and changes — ranked by player-experience priorities (default Fun > Feel > Performance > Challenge > Consistency, but honor any order the user states). Fan the analysis out across those dimensions with parallel subagents (or a Workflow if available), then synthesize one ranked report. Use this whenever the user wants to improve, review, critique, audit, or "make more fun" a game / prototype / level, asks "what should I build or fix next" for a game, or wants a read on game feel, balance, juice, or progression — even if they don't say the word "analyze". This is read-only analysis; offer to implement the picks afterward, don't change code as part of the analysis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/game-improvement-analysis:game-improvement-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a vague "make my game better" into a concrete, ranked build list. The value
Turn a vague "make my game better" into a concrete, ranked build list. The value comes from three things working together: breadth (cover every axis of player experience, not just the one the dev is staring at), specificity (every finding cites a file/function/constant and a concrete change — not "add more juice"), and prioritization (rank by what actually moves the experience, so the dev knows the single next thing to do).
You do this by fanning the analysis out — one focused analyst per dimension reads the code in parallel — then synthesizing into a single ordered report. Parallel analysts each go deep on their axis without the others' noise, which surfaces far more than one pass trying to hold everything at once.
The ranking is the most important output, so get the lens right before looking at code. Use the order the user gives. If they don't give one, default to:
Fun > Feel > Performance > Challenge > Consistency
Why this default: a game that isn't fun fails no matter how clean the code is, and feel (how it responds to your hands) is what makes fun land; performance protects both; challenge/balance shapes the experience for engaged players; consistency and polish matter but rarely make or break the session. Higher-priority wins outrank lower ones even at equal impact — a high-impact Fun item beats a high-impact Consistency item.
Default dimension meanings (adapt to the specific game):
If the user's game is a genre where a dimension means something specific (e.g. "Feel" for a rhythm game is timing windows), fold that in.
Before fanning out, do a quick read so the analysts get pointed at real files, not made to rediscover the structure five times. Find: the engine/stack, the main loop and state machine, entities/structures, the central config/tuning constants, the render path, and the asset folder. Note anything that looks unfinished or half-wired — art or assets with no code referencing them, sprite sheets that aren't animated, feature flags, TODOs. Those are often the highest-leverage Fun/Feel opportunities (and a perf/consistency cost), so make sure an analyst checks them.
Prefer a Workflow if it's available (parallel analyze phase → synthesis phase);
otherwise spawn the analysts as parallel subagents in a single message. There's a
ready-to-adapt workflow script in references/workflow-template.md — read it and
fill in the game-specific context.
Give every analyst the same shared context and one dimension to own:
Demand findings that are concrete and actionable: each must cite a file/function/constant and give a one-line concrete change. Reject generic advice ("add more polish"). Have each tag impact (high/medium/low) and effort (S < ~1h, M a few hrs, L bigger), and classify as problem / idea / improvement.
Have analysts return structured findings (use a schema if your fan-out supports it):
{
"findings": [
{
"title": "short name",
"kind": "problem | idea | improvement",
"impact": "high | medium | low",
"effort": "S | M | L",
"where": "file / function / constant references",
"detail": "what's going on and why it matters for THIS dimension",
"suggestion": "the concrete change to make"
}
]
}
Suggested analyst set (rename/merge to fit the game): fun, feel, performance,
challenge, consistency. Scale up only if the game is large.
Collect all findings, de-duplicate overlaps (the same issue often surfaces under two dimensions — merge and note both), and resolve contradictions. Rank strictly by the priority order. Then produce the report using this structure:
## Top 5 — do these first
<the highest-leverage changes overall, each one line:>
N. **Title** (dimension · impact · effort) — what to change and why it matters.
## By dimension
### Fun
- **Title** (impact · effort) — concrete suggestion.
### Feel
...
### Performance
...
### Challenge
...
### Consistency
...
## Quick wins
<the S-effort items worth batching into one commit>
## Bigger bets
<the L-effort ideas, each with one sentence on the payoff>
Keep it skimmable — the dev should finish reading and know exactly what to build next. Cut vague or low-value items rather than padding. Preserve file/function refs so each item is directly actionable. When a single change resolves an item that appears as both a cost (perf/consistency) and an opportunity (fun/feel) — e.g. unused art that could become a mechanic — say so and recommend the one resolution.
This skill produces a plan, not a diff. After presenting the report, offer a sensible first move given the priority order — usually: batch the Quick wins into one low-risk commit, then take the top Feel items, then a Top 5 bet. Let the user pick. Only start changing code once they choose.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub jachana/claude-marketplace --plugin game-improvement-analysis