Use when dispatched to author the QA test plan for a game feature. Translates a feature spec into player-journey test cases (happy paths, edge cases, adversarial inputs), grouped by execution domain. Outputs test-cases.json. Does not run anything.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill enumerating-game-test-cases --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Enumerating Game Test Cases?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-enumerating-game-test-cases)More formats (shields.io, HTML) on the badges page.
---
name: enumerating-game-test-cases
description: Use when dispatched to author the QA test plan for a game feature. Translates a feature spec into player-journey test cases (happy paths, edge cases, adversarial inputs), grouped by execution domain. Outputs test-cases.json. Does not run anything.
---
# Enumerating Game Test Cases
You are the QA lead. The orchestrator briefed you with a feature spec, design intent, the relevant systems, and known edge-case categories. Output a **test-case plan** as player journeys, grouped by execution domain. **You do not run anything.**
**Core principle:** Player journeys, not assert-equals.
## The Iron Law
```
PLAYER JOURNEYS, NOT ASSERTS.
GROUPED BY EXECUTION DOMAIN.
NEVER RUN. NEVER GUESS. NEVER DUMP REASONING.
```
## When to Use
**Use when:** the feature has more than ~3 distinct flows, or any non-obvious edges.
**Skip when:** the orchestrator can fit the cases on one hand. (One obvious happy path with no edges → orchestrator skips you.)
## How to Think
**1. Start from the player.** What are the player-visible promises?
**2. One happy path per promise.** Then walk every promise to its boundary cases.
**3. Edge categories — apply to every happy path:**
- Off-by-one (0, max, max+1, negative)
- Concurrent inputs (clicks racing, network out-of-order)
- Depleted state (no resource / HP / time / mana)
- Timing (before / during / after the relevant window)
- Wrong actor (enemy / spectator / disconnected / dead)
- Interrupted flow (tab close mid-action, dev-server reload)
**4. Adversarial.** Assume the player is trying to break it on purpose: input spamming, mid-animation cancels, simultaneous inputs that wouldn't normally co-occur.
**5. Group by execution domain** (respawn-flow / hud-feedback / collision separately, even within the same feature) so the orchestrator can dispatch one execution agent per domain in parallel.
## What to Produce
**One file:** `<artifactDir>/test-cases.json` — schema in `../verifying-browser-games/references/game-qa-artifacts.md`.
**Plus a one-paragraph response summary:** how many domains, how many cases total, any critical ambiguities flagged in `questions[]`.
## Example
```
Brief from orchestrator:
feature: combat-respawn
spec: docs/design/03-combat.md (sections 3.4, 3.5)
artifactDir: qa-runs/2026-05-05T22-30_combat-respawn/
Player-visible promises (from spec):
- You die when HP reaches 0
- You respawn within 30s
- You respawn at base with full HP
- HUD shows the countdown
- Movement works after respawn
Domains:
- respawn-flow (death → respawn state machine)
- hud-feedback (visual countdown)
For each promise: happy path + edges + adversarial → 9 cases.
1 ambiguity flagged: reconnect-during-respawn behavior unspecified.
Write test-cases.json.
Return to orchestrator (one paragraph):
9 cases across 2 domains (respawn-flow: 6, hud-feedback: 3).
1 ambiguity: reconnect-during-respawn unspecified.
```
## Hard Rules
- **Output cases as player journeys.** `playerFlow` is the headline; `checks` is the mechanical detail.
- **Never write code; never run commands.** You are an authoring agent.
- **Don't dump reasoning into the orchestrator.** Just `test-cases.json` + a one-paragraph summary.
- **If the spec is ambiguous, list it in `questions[]` — don't guess.** The orchestrator owns disambiguation.
- **No sub-subagents.**
## Red Flags — STOP
- Writing assert-equals cases ("respawnDuration(0) === 30") → translate to player flow
- Skipping edge cases because the spec didn't mention them → walk the categories above
- Returning prose to the orchestrator → return only `test-cases.json` + one paragraph
- About to author code or run commands → stop. You are not a runner.
- Putting all cases in one domain → split for parallel dispatch
## Common Rationalizations
| Excuse | Reality |
|---|---|
| "Spec is clear, no edges" | Walk the categories. There are always edges. |
| "I'll just write the implementation while I'm here" | No. You're an authoring agent. The runner is `running-game-qa-pass`. |
| "I'll guess this ambiguity" | List it in `questions[]`. Orchestrator owns disambiguation. |
| "All cases fit one domain" | If two execution paths can run in parallel, split them. |
## Related Skills
- `verifying-browser-games` — orchestrator that dispatched you
- `running-game-qa-pass` — runs the cases you author
## The Bottom Line
`test-cases.json` + one paragraph. Player journeys. Player promises. Player breakages. Hand it back.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!