Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Analyzes game balance data files, formulas, and configuration to identify outliers, broken progressions, degenerate strategies, and economy imbalances. Use after modifying any balance-related data or design. Use when user says 'balance report', 'check game balance', 'run a balance check'.
.claude/skills/bilal140202-gamedev-balance-check/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | 173% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-11 | ✓→✗ | ▼ Worse | -58% | 0% |
| case-12 | ✓→✗ | ▼ Worse | -64% | 0% |
| case-13 | ✓→✗ | ▼ Worse | -61% | 0% |
Determine the balance domain from $ARGUMENTS[0]:
If no argument, ask the user which system to check.
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.
Read the GDD for the system from design/gdd/ to understand intended design targets, tuning knobs, and expected value ranges. This is the baseline for "correct" behaviour.
Run domain-specific checks:
Combat balance:
Economy balance:
Progression balance:
Loot balance:
## Balance Check: [System Name]
### Data Sources Analyzed
- [List of files read]
### Health Summary: [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]After presenting the report, ask:
> "Would you like to fix any of these balance issues now?"
If yes:
assets/data/ or formula in design/balance/> "This value is defined in a design document. Run /propagate-design-change [path] on the affected GDD to find downstream impacts before committing."
If no:
design/balance/balance-check-[system]-[date].md for laterEnd with: > "Re-run /balance-check after fixes to verify."
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 28,992 | 3,066 | -89% | 1 | 1 | 0% | 4,891 | 1,161 | -76% | 0 | 0 | — |
case-02 | fail→fail | 23,293 | 5,778 | -75% | 1 | 1 | 0% | 3,347 | 1,049 | -69% | 0 | 0 | — |
case-03 | fail→fail | 22,163 | 32,682 | +47% | 1 | 1 | 0% | 3,476 | 4,656 | +34% | 0 | 0 | — |
case-04 | pass→pass | 12,946 | 11,800 | -9% | 1 | 1 | 0% | 2,496 | 2,927 | +17% | 0 | 0 | — |
case-05 | pass→pass | 17,119 | 24,648 | +44% | 1 | 1 | 0% | 2,705 | 3,817 | +41% | 0 | 0 | — |
case-10 | fail→fail | 15,990 | 8,013 | -50% | 1 | 1 | 0% | 2,643 | 1,048 | -60% | 0 | 0 | — |
case-06 | pass→pass | 18,394 | 25,318 | +38% | 1 | 1 | 0% | 3,159 | 5,027 | +59% | 0 | 0 | — |
case-07 | pass→pass | 9,300 | 2,863 | -69% | 1 | 1 | 0% | 1,516 | 1,177 | -22% | 0 | 0 | — |
case-08 | fail→fail | 9,820 | 5,970 | -39% | 1 | 1 | 0% | 1,929 | 1,112 | -42% | 0 | 0 | — |
case-09 | fail→fail | 14,731 | 6,379 | -57% | 1 | 1 | 0% | 2,512 | 1,127 | -55% | 0 | 0 | — |
case-11 | pass→fail | 15,023 | 6,650 | -56% | 1 | 1 | 0% | 2,651 | 1,107 | -58% | 0 | 0 | — |
case-12 | pass→fail | 18,024 | 4,911 | -73% | 1 | 1 | 0% | 3,043 | 1,084 | -64% | 0 | 0 | — |
case-13 | pass→fail | 18,311 | 7,220 | -61% | 1 | 1 | 0% | 2,978 | 1,149 | -61% | 0 | 0 | — |
case-14 | fail→fail | 9,883 | 6,195 | -37% | 1 | 1 | 0% | 1,368 | 1,175 | -14% | 0 | 0 | — |
case-15 | pass→fail | 23,596 | 6,165 | -74% | 1 | 1 | 0% | 3,876 | 1,147 | -70% | 0 | 0 | — |
case-16 | pass→fail | 10,591 | 6,569 | -38% | 1 | 1 | 0% | 1,961 | 1,122 | -43% | 0 | 0 | — |
case-17 | fail→pass | 4,386 | 5,691 | +30% | 1 | 1 | 0% | 679 | 1,852 | +173% | 0 | 0 | — |
case-18 | fail→fail | 3,442 | 2,354 | -32% | 1 | 1 | 0% | 487 | 1,131 | +132% | 0 | 0 | — |
case-19 | fail→pass | 8,170 | 5,113 | -37% | 1 | 1 | 0% | 1,257 | 1,653 | +32% | 0 | 0 | — |
case-20 | pass→fail | 13,178 | 5,219 | -60% | 1 | 1 | 0% | 2,179 | 1,171 | -46% | 0 | 0 | — |
case-21 | pass→fail | 14,278 | 5,379 | -62% | 1 | 1 | 0% | 2,370 | 1,132 | -52% | 0 | 0 | — |
case-22 | pass→fail | 16,555 | 7,527 | -55% | 1 | 1 | 0% | 1,943 | 1,193 | -39% | 0 | 0 | — |
case-23 | pass→fail | 14,024 | 6,335 | -55% | 1 | 1 | 0% | 2,334 | 1,172 | -50% | 0 | 0 | — |
case-24 | pass→fail | 19,619 | 6,377 | -67% | 1 | 1 | 0% | 3,550 | 1,223 | -66% | 0 | 0 | — |
case-25 | fail→fail | 10,193 | 6,518 | -36% | 1 | 1 | 0% | 1,468 | 1,192 | -19% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 8 counted toward the lift figure. The other 17 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -32 percentage points is the difference between those two pass rates over the 8 comparable cases. 13 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.