Agent skill

Game Balance Check

by Donchitos in Donchitos/Claude-Code-Game-Studios

Checks game data and formulas for balance outliers, broken progression, degenerate strategies and economy problems, and answers 'could not run' when the data is missing.

MITAuto-check passedGame Development

Install Game Balance Check

skills CLI
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill balance-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Donchitos/Claude-Code-Game-Studios balance-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/balance-check .claude/skills/balance-check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
balance-check
GitHub stars
26k
Token cost
~2.2k tokens
SKILL.md length
1,121 words
Files
1
Skills in repo
73
Repo updated
First seen
Licence
MIT

At a glance

Checks game data and formulas for balance outliers, broken progression, degenerate strategies and economy problems, and answers 'could not run' when the data is missing.

  • Works in 6 steps: Identify Balance Domain → Read Data Files → Read Design Document → …
  • Checking weapon or ability numbers for outliers and broken damage output
  • SKILL.md covers Insufficient input — check…, Phase 1: Identify Balance Domain, Phase 2: Read Data Files and Phase 3: Read Design Document, plus 3 more sections
  • Calls bash

What it does

This skill audits game balance in one domain at a time: combat (DPS, time to kill, damage type interactions), economy (resource faucets and sinks, acquisition rates, item pricing), progression (XP and power curves, dead zones, power spikes) or loot (rarity distribution, pity timers, inventory pressure). The domain comes from the arguments, a data-file path is loaded directly and the domain inferred from its content, and with no argument the agent asks which system to check.

Before any report it lists the inputs it needs and marks each as found or absent. A section with missing inputs is marked NOT ASSESSED, with no estimate, and when every input is absent the whole verdict is NOT ASSESSED. The skill treats that as a correct result, because a scan with nothing to scan is not a clean pass. It follows the repo's automation mode settings for how often it asks you questions.

When your agent uses it

  • Checking weapon or ability numbers for outliers and broken damage output
  • Finding dead zones or power spikes in an XP or progression curve
  • Reviewing an in-game economy for faucets and sinks that do not balance
  • Looking at loot rarity tables and pity timers

Example prompts

  • “Check game balance for the economy data in design/economy.csv.”
  • “Run a combat balance check on the weapons table and flag degenerate strategies.”
  • “Check the progression curve in data/xp_levels.json for dead zones and spikes.”

Requirements

  • Game data files or design formulas to analyze
  • Pre-approved tools (allowed-tools): Read, Glob, Grep, Write, AskUserQuestion, Bash(bash "*/.claude/skills/balance-check/../../hooks/yaml-helper.sh" resolve_config *)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Identify Balance Domain
  2. Read Data Files
  3. Read Design Document
  4. Perform Analysis
  5. Output the Analysis
  6. Fix & Verify Cycle

What it can do on your machine

Read from SKILL.md and the folder at commit be8993b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • Write
    • AskUserQuestion
    • Bash(bash "*/.claude/skills/balance-check/../../hooks/yaml-helper.sh" resolve_config *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    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

Game Balance Check loads about 2.2k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 1,121 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~36
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

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.

SKILL.md

The full file from Donchitos/Claude-Code-Game-Studios at commit be8993b, republished under its MIT licence (© Donchitos). 1,121 words, ~2,184 tokens.

Download SKILL.mdSave it as .claude/skills/balance-check/SKILL.md (or your agent's skills folder).
name
balance-check
description
Find balance outliers, broken progressions, degenerate strategies, economy imbalances in formulas and data. 'Check game balance'.
allowed-tools
Read, Glob, Grep, Write, AskUserQuestion, Bash(bash "*/.claude/skills/balance-check/../../hooks/yaml-helper.sh" resolve_config *)
argument-hint
[system-name|path-to-data-file]
user-invocable
true
model
sonnet

!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation

Balance Check

Every AskUserQuestion call follows .claude/docs/automation-modes.md (collaborative asks always · guided major-only · autonomous logs and proceeds; automation_always_ask categories always prompt).

Insufficient input — check this before producing any report

If the inputs this skill needs do not exist, the answer is "could not run" — not a filled-in report. Check first, and stop if the check fails.

  1. List the inputs this skill reads (data files, prior reports, profiler output, test results, registries, source code).
  2. For each, record FOUND or ABSENT — not "assumed present".
  3. If any input required for a section is ABSENT, that section is NOT ASSESSED — NO DATA. Do not estimate it, do not infer it from an adjacent artifact, and do not leave a mandated cell to be filled by whoever reads the template next.
  4. If every required input is ABSENT, stop and report NOT ASSESSED — NO DATA as the whole verdict, naming what was missing and which skill produces it.

A verdict of NOT ASSESSED is a success. It is the correct, useful answer to "what does the data say?" when there is no data. The failure mode this prevents is specific: a report whose verdict enum has no "could not run" state produces false clean passes — an asset audit returning COMPLIANT on a project with no assets and no standards, or a performance profile reporting ">99% headroom against a 16.67ms budget" with zero profiler data and no budget ever set.

Absence of evidence is never evidence of absence. A scan that finds no matches because there are no files to scan has not verified anything. Say which of the two happened — a reader cannot tell from a green result.


Phase 1: Identify Balance Domain

Determine the balance domain from $ARGUMENTS — the whole string, since a data-file path may contain spaces:

  • Combat → weapon/ability DPS, time-to-kill, damage type interactions
  • Economy → resource faucets/sinks, acquisition rates, item pricing
  • Progression → XP/power curves, dead zones, power spikes
  • Loot → rarity distribution, pity timers, inventory pressure
  • File path given → load that file directly and infer domain from content

If no argument, ask the user which system to check.


Phase 2: Read Data Files

Read relevant files from assets/data/ and design/balance/ for the identified domain. Note every file read — they will appear in the Data Sources section of the report.


Phase 3: Read Design Document

Registry first. If design/registry/entities.yaml exists, read it before the GDD. Its constants and formulas sections hold the cross-GDD named values and output ranges — the balance targets — already distilled, each with a source: GDD and any revised: date:

Grep pattern="^  - name:" path="design/registry/entities.yaml" output_mode="content" -A 6

Take the intended values from the registry for any constant or formula it lists (the constants: and formulas: blocks); these are the authoritative cross-doc figures a GDD must not contradict. If design/registry/entities.yaml does not exist or has no entries (it ships as an empty stub until /design-system populates it), skip this and use the GDD alone.

Then read the GDD for the system from design/gdd/ to understand intended design targets, tuning knobs, and expected value ranges — for anything the registry did not already supply. This is the baseline for "correct" behaviour.

If the data files are FOUND but neither source gives targets for this domain, the sections that judge against targets (Outliers Detected, and Progression Analysis where the domain has a curve) are NOT ASSESSED — NO DATA. Each one names what was missing — the GDD it looked for in design/gdd/, and whether the registry was absent or empty — and names /design-system, which writes both.


Show full SKILL.md (543 more words)Show less

Phase 4: Perform Analysis

Every domain: compare each value with its target. For each named value in the data files, take its target from Phase 3 — a registry constant's value, a registry formula's output_range, or the range the GDD states — and compare. A value outside its target is a row in Outliers Detected (player_damage_base 140 against 90–110). A value with no target anywhere is neither in range nor an outlier: list it under Values That Need Attention as no stated range — not judged.

Then run domain-specific checks:

Combat balance:

  • Calculate DPS for all weapons/abilities at each power tier
  • Check time-to-kill at each tier
  • Identify any options that dominate all others (strictly better)
  • Check if defensive options can create unkillable states
  • Verify damage type/resistance interactions are balanced

Economy balance:

  • Map all resource faucets and sinks with flow rates
  • Project resource accumulation over time
  • Check for infinite resource loops
  • Verify gold sinks scale with gold generation
  • Check if any items are never worth purchasing

Progression balance:

  • Plot the XP curve and power curve
  • Check for dead zones (no meaningful progression for too long)
  • Check for power spikes (sudden jumps in capability)
  • Verify content gates align with expected player power
  • Check if skip/grind strategies break intended pacing

Loot balance:

  • Calculate expected time to acquire each rarity tier
  • Check pity timer math
  • Verify no loot is strictly useless at any stage
  • Check inventory pressure vs acquisition rate

Phase 5: Output the Analysis

## Balance Check: [System Name]

### Data Sources Analyzed
- [List of files read]

### Health Summary: [NOT ASSESSED / HEALTHY / CONCERNS / CRITICAL ISSUES]

### Outliers Detected
| Item/Value | Expected Range | Actual | Issue |
|-----------|---------------|--------|-------|

### Degenerate Strategies Found
- [Strategy description and why it is problematic]

### Progression Analysis
[Graph description or table showing progression curve health]

### Recommendations
| Priority | Issue | Suggested Fix | Impact |
|----------|-------|--------------|--------|

### Values That Need Attention
[Specific values with suggested adjustments and rationale]

Choose the Health Summary by the worst finding, first match wins:

  • CRITICAL ISSUES — a degenerate strategy (one choice dominates every alternative), a progression that stalls or cannot be completed, or an economy loop with no sink
  • CONCERNS — outliers or curve problems a tuning pass can fix, with no finding of the critical kind
  • NOT ASSESSED — nothing to analyze (the no-data path above), a section that needs targets is NOT ASSESSED — NO DATA, or a value had no stated range to judge it against; name which. It ranks below the two finding verdicts, because a measured problem is more actionable than a gap, and above HEALTHY
  • HEALTHY — every value judged against a stated target, no outliers, no degenerate strategies, progression within the stated targets

Phase 6: Fix & Verify Cycle

After presenting the report, use AskUserQuestion:

  • Prompt: "Balance check complete. What would you like to do next?"
  • Options:
    • [A] Fix highest-priority issue now — walk me through it
    • [B] Save report to design/balance/balance-check-[system]-[date].md
    • [C] Stop here — I'll review the findings manually

If [A]:

  • Ask which issue to address first (refer to the Recommendations table by priority row)
  • Guide the user to update the relevant data file in assets/data/ or formula in design/balance/
  • After each fix, offer to re-run the relevant balance checks to verify no new outliers were introduced
  • If the fix changes a tuning knob defined in a GDD or referenced by an ADR, remind the user:

    "This value is defined in a design document. Run /propagate-design-change [path] on the affected GDD to find downstream impacts before committing."

If [B]:

  • Write the report to design/balance/balance-check-[system]-[date].md (create the directory if needed). Use the current date for [date] in YYYY-MM-DD format.
  • Confirm the file was written, then end with: "Re-run /balance-check after fixes to verify."

If [C]:

  • Summarize open issues and end with: "Re-run /balance-check after fixes to verify."

© Donchitos, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/balance-check of Donchitos/Claude-Code-Game-Studios.

Open the folder on GitHubat commit be8993b

Compare with similar skills

Game Balance Check 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.

Game Balance Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Game Balance Check this skillDonchitos/Claude-Code-Game-Studios26k—~2.2kAutomated safety check: PassMIT
Threejs Gameplay Systemsvalkor-ai/loom1.2k1 repos~1.4kAutomated safety check: PassApache-2.0
Godot Gdscript Patterns925236118/AlphaAgent10310 repos~5kAutomated safety check: PassMIT
Game Build From Designzenstory-ai/novel-to-game841—~661Automated safety check: PassMIT
Game Experience Density OptimizerDY-2026/GameDesignOS414—~2.1kAutomated safety check: PassMIT
Threejs Gameplay Systemscorosolto/client257—~1.5kAutomated safety check: PassAGPL-3.0

Similar skills

  • Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…

    1.2k GitHub starsUsed in 1 repo~1.4k tokens
    Game DevelopmentAuto-check passed
  • Godot Gdscript Patterns

    925236118/AlphaAgent

    Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization.

    103 GitHub starsUsed in 10 repos~5k tokens
    Game DevelopmentAuto-check passed
  • Game Build From Design

    zenstory-ai/novel-to-game

    Builds a risk-matched whitebox or an approved production game candidate from a game design for its target runtime, with replayable evidence.

    841 GitHub stars~661 tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • 当用户需要把游戏体验浓度、留存、首局节奏、Demo 完成率、单机总旅程、D1/D7、反馈、具身感、氛围、认知负荷、最佳刺激窗口、FEP/free-energy、预测误差、Markov blanket、习惯化或 liveops 参与问题,编译成可上线、可埋点、可复盘、可回滚的一周 ED 实验包时使用。Use when converting game experience-density and…

    414 GitHub stars~2.1k tokensUpdated 1 mo ago
    Game DevelopmentAuto-check passed
  • Threejs Gameplay Systems

    corosolto/client

    Build and iterate playable Three.js game systems. An agent skill from corosolto/client.

    257 GitHub stars~1.5k tokensUpdated today
    Game DevelopmentAuto-check passed
  • Roblox Game

    brockmartin/roblox-game-skill

    Expert Roblox game development companion — Luau, Roblox Studio, MCP integration, simulator, tycoon, obby, RPG, horror, battle royale, game design, security, performance.

    202 GitHub stars~1.3k tokensUpdated 7 mo ago
    Game DevelopmentAuto-check passed

More from Donchitos/Claude-Code-Game-Studios

All 73 skills in this repo
  • Architecture Decision

    Donchitos/Claude-Code-Game-Studios

    Create an ADR documenting a technical decision: context, alternatives considered, consequences.

    26k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Dev Story

    Donchitos/Claude-Code-Game-Studios

    Implement a story: ADR guidelines, right programmer agent, code plus test.

    26k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check: notes
  • Game Asset Audit

    Donchitos/Claude-Code-Game-Studios

    Audits game assets against naming conventions, file size budgets and format standards, and finds orphaned assets and missing references.

    26k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Game Asset Spec Writer

    Donchitos/Claude-Code-Game-Studios

    Writes per-asset visual specs and AI image-generation prompts for a game's characters, enemies and screens, driven by the GDD, art bible and an entity inventory.

    26k GitHub stars~5k tokensUpdated yesterday
    Auto-check passed
  • Structured Bug Reports

    Donchitos/Claude-Code-Game-Studios

    Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes.

    26k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check: notes
  • Bug Triage

    Donchitos/Claude-Code-Game-Studios

    Reviews the open bug backlog, separates severity from priority, assigns fixes to sprints and reports systemic trends, writing a dated triage file.

    26k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Questions about Game Balance Check

What does Game Balance Check do?

Checks game data and formulas for balance outliers, broken progression, degenerate strategies and economy problems, and answers 'could not run' when the data is missing. This skill audits game balance in one domain at a time: combat (DPS, time to kill, damage type interactions), economy (resource faucets and sinks, acquisition rates, item pricing), progression (XP and power curves, dead zones, power spikes) or loot (rarity distribution, pity timers, inventory pressure). The domain comes from the arguments, a data-file path is loaded directly and the domain inferred from its content, and with no argument the agent asks which system to check.

When should I use Game Balance Check?

Game Balance Check fits situations like: checking weapon or ability numbers for outliers and broken damage output; finding dead zones or power spikes in an XP or progression curve; reviewing an in-game economy for faucets and sinks that do not balance; looking at loot rarity tables and pity timers.

How do I install Game Balance Check in Claude Code?

Run `npx skills add Donchitos/Claude-Code-Game-Studios --skill balance-check -a claude-code`. Or copy the skill folder (.claude/skills/balance-check in Donchitos/Claude-Code-Game-Studios) into .claude/skills/balance-check in your project. Claude Code loads it when a task matches its description.

How do I install Game Balance Check in Codex?

Run `npx skills add Donchitos/Claude-Code-Game-Studios --skill balance-check -a codex`. Or copy the skill folder (.claude/skills/balance-check in Donchitos/Claude-Code-Game-Studios) into .agents/skills/balance-check in your project. Codex loads it when a task matches its description.

Can I use Game Balance Check 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 Donchitos/Claude-Code-Game-Studios --skill balance-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/balance-check, .gemini/skills/balance-check, .github/skills/balance-check and .opencode/skills/balance-check in your project.

What does Game Balance Check need to run?

Going by SKILL.md and its folder, Game Balance Check needs the command-line tools its instructions call (bash). Our summary lists: Game data files or design formulas to analyze. Its frontmatter pre-approves these tools: Read, Glob, Grep, Write, AskUserQuestion, Bash(bash "*/.claude/skills/balance-check/../../hooks/yaml-helper.sh" resolve_config *).

Does Game Balance Check 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 Game Balance Check 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 Game Balance Check use?

Game Balance Check 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 Game Balance Check use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Game Balance Check?

Skills that share tags, products or a category with Game Balance Check: Threejs Gameplay Systems (valkor-ai/loom, 1.2k stars), Godot Gdscript Patterns (925236118/AlphaAgent, 103 stars), Game Build From Design (zenstory-ai/novel-to-game, 841 stars) and Game Experience Density Optimizer (DY-2026/GameDesignOS, 414 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Game Balance Check?

Donchitos (a GitHub user) maintains it in Donchitos/Claude-Code-Game-Studios, which has 25,951 GitHub stars. The repository holds 73 skills in this directory. The repository was last updated on October 8, 2026.

Source: Donchitos/Claude-Code-Game-Studios on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.