adopt
Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance…
QA test plan for a sprint — classifies stories by Logic/Integration/Visual/UI, covers automated tests, manual cases, smoke scope.
Claude Code
$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan --agent claude-code
Codex
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan -a codex -y
Cursor
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan -a cursor -y
Gemini CLI
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan -a gemini-cli -y
GitHub Copilot
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan -a github-copilot -y
OpenCode
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan -a opencode -y
Windsurf
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill qa-plan -a windsurf -y
name: qa-plan description: "QA test plan for a sprint — classifies stories by Logic/Integration/Visual/UI, covers automated tests, manual cases, smoke scope." argument-hint: "[sprint | feature: system-name | story: path]" user-invocable: true allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/qa-plan/../../hooks/yaml-helper.sh" resolve_config *) model: sonnet
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,qa.level,system_overrides`
Resolved above — use as-is. No block → defaults in `.claude/docs/config-resolution.md`.
This skill generates a structured QA plan for a sprint, feature, or individual story. It reads all in-scope story files and their referenced GDDs, classifies each story by test type, and produces a plan that tells developers exactly what to automate, what to verify manually, what the smoke test scope is, and when to bring in a playtester.
Run this before a sprint begins so the team knows upfront what testing work is required. A test plan written after implementation is a post-mortem, not a plan.
**Output:** `production/qa/qa-plan-[sprint-slug]-[date].md`
---
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).
**Workflow tier**: resolve per the GDD's system as each is read (per `.claude/docs/workflow-modes.md`): `workflow_overrides.system_overrides.<system>` if the block lists one, else the project value. It sets how many GDD sections the test plan is mined from — see Phase 2.
**`qa.level`**: at `minimal`, produce only a minimal smoke plan — drop the automated-test-required rows and the test-file DoD; at `standard`, a full plan per story type; at `full`, also add per-system coverage targets. Distinct axis from `workflow` (which sets how many GDD sections are mined). No level drops the Visual/Feel and UI screenshot rows — tests are waived at `minimal`, the look is not (`.claude/docs/coding-standards.md`).
**Argument:** `$ARGUMENTS` (blank = ask user via AskUserQuestion)
Determine scope from the argument:
every story file path referenced. If `production/sprint-status.yaml` exists, use it as the primary story list and fall back to the sprint plan for story metadata.
to stories whose file path or title contains the system name. Also check the epic index file (`EPIC.md`) in that system's directory.
"Specific story (enter path)", "Full epic"
After resolving scope, report: "Building QA plan for [N] stories in [scope]."
If a story file path is referenced but the file does not exist, note it as MISSING and continue with the remaining stories. Do not fail the entire plan for one missing file.
> **If the resolved scope contains ZERO stories, stop — do not build a plan.** > Report `NOT ASSESSED — no stories in scope`, naming which scope was searched > and which path was empty, and route: > - no file in `production/sprints/` → "No sprint plan found. Run `/sprint-plan new`." > At `workflow: minimal` there are no sprints by design — route instead to > `/qa-plan feature: [epic-slug]` or `/qa-plan story: [path]`. > - a sprint plan exists but references no stories → "Sprint plan `[path]` lists no > stories. Run `/create-stories [epic-slug]`." > - `feature:`/`story:` scope matched nothing → name the glob that came back empty. > > **The N=0 guard is mandatory.** Without it an empty scope reports "Building QA > plan for 0 stories" and continues into Phase 4, producing a plan document with > empty tables — and **a QA plan for zero stories looks exactly like a completed > QA plan.** This skill gates the hand-off to manual QA, so a false-clean here > sends a build to QA on the strength of a plan that tested nothing. > > The rule at the top of this block still stands: one missing file among several > is MISSING-and-continue. This is the different case where there is no *several*.
---
Establish the denominator first — glob the in-scope story files and count **N** — then collect the fields below with **targeted section greps, not a full read of each story**. A QA plan needs each story's type and acceptance criteria; it does not need its implementation notes, out-of-scope boundaries or ADR rationale, and reading N stories whole to reach two sections is where this phase's cost lives:
Grep pattern="^## Acceptance Criteria" glob="production/epics/**/story-*.md" output_mode="content" -A 15 Grep pattern="^> \*\*(Type|Status|Estimate)\*\*" glob="production/epics/**/story-*.md" output_mode="content" Grep pattern="^## (Context|Dependencies)" glob="production/epics/**/story-*.md" output_mode="content" -A 8
(Scope the globs to the sprint plan's story paths in `sprint` mode.) From those:
test plan actually turns on them; full-read those individual stories
**Never treat an absent section as an absent story.** If a story matched no `## Acceptance Criteria`, full-read that one and say so — a story with no testable criteria is a QA finding in its own
Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.
Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance…
Create an ADR documenting a technical decision: context, alternatives considered, consequences.
Traceability matrix mapping GDD requirements to ADRs. Finds gaps, cross-ADR conflicts, engine compatibility. PASS/CONCERNS/NOT…
Author the Art Bible — visual identity gating asset production. Run before /map-systems.
Audit assets against naming conventions, file size budgets, format standards. Finds orphaned assets, missing references.
Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible.
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration